[INFO] updating cached repository gears-project/gears-cli [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/gears-project/gears-cli [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/gears-project/gears-cli" "work/ex/clippy-test-run/sources/stable/gh/gears-project/gears-cli"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/gears-project/gears-cli'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/gears-project/gears-cli" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/gears-project/gears-cli"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/gears-project/gears-cli'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 011dda7036521a8884adacf053365aacde1a65a8 [INFO] sha for GitHub repo gears-project/gears-cli: 011dda7036521a8884adacf053365aacde1a65a8 [INFO] validating manifest of gears-project/gears-cli 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 gears-project/gears-cli 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 gears-project/gears-cli [INFO] finished frobbing gears-project/gears-cli [INFO] frobbed toml for gears-project/gears-cli written to work/ex/clippy-test-run/sources/stable/gh/gears-project/gears-cli/Cargo.toml [INFO] started frobbing gears-project/gears-cli [INFO] finished frobbing gears-project/gears-cli [INFO] frobbed toml for gears-project/gears-cli written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/gears-project/gears-cli/Cargo.toml [INFO] crate gears-project/gears-cli 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 gears-project/gears-cli against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/gears-project/gears-cli:/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] 2d0b6c346a273c1a24a9c34e62f97b93a1719fc57f298f8867e80f63f4ec17fb [INFO] running `"docker" "start" "-a" "2d0b6c346a273c1a24a9c34e62f97b93a1719fc57f298f8867e80f63f4ec17fb"` [INFO] [stderr] Checking ratel v0.7.0 [INFO] [stderr] Compiling actix-web v0.7.16 [INFO] [stderr] Compiling peg v0.5.7 [INFO] [stderr] Checking crossbeam-epoch v0.6.1 [INFO] [stderr] Checking time v0.1.40 [INFO] [stderr] Checking term_size v0.3.1 [INFO] [stderr] Checking serde_yaml v0.8.8 [INFO] [stderr] Checking backtrace-sys v0.1.24 [INFO] [stderr] Checking bytes v0.4.11 [INFO] [stderr] Checking uuid v0.7.1 [INFO] [stderr] Checking mio v0.6.16 [INFO] [stderr] Checking uuid v0.6.5 [INFO] [stderr] Checking rustyline v2.1.0 [INFO] [stderr] Checking textwrap v0.10.0 [INFO] [stderr] Checking parking_lot_core v0.3.1 [INFO] [stderr] Checking backtrace v0.3.12 [INFO] [stderr] Checking crossbeam-deque v0.6.2 [INFO] [stderr] Checking cookie v0.11.0 [INFO] [stderr] Checking tokio-io v0.1.10 [INFO] [stderr] Checking http v0.1.14 [INFO] [stderr] Checking clap v2.32.0 [INFO] [stderr] Compiling gears v0.1.6 [INFO] [stderr] Compiling gears-cli v0.1.12 (/opt/crater/workdir) [INFO] [stderr] Checking mio-uds v0.6.7 [INFO] [stderr] Checking parking_lot_core v0.4.0 [INFO] [stderr] Checking failure v0.1.3 [INFO] [stderr] Checking tokio-threadpool v0.1.9 [INFO] [stderr] Checking parking_lot v0.6.4 [INFO] [stderr] Checking tokio-codec v0.1.1 [INFO] [stderr] Checking parking_lot v0.7.0 [INFO] [stderr] Checking tokio-reactor v0.1.7 [INFO] [stderr] Checking tokio-fs v0.1.4 [INFO] [stderr] Checking crossbeam-channel v0.3.3 [INFO] [stderr] Checking tokio-udp v0.1.3 [INFO] [stderr] Checking tokio-uds v0.2.4 [INFO] [stderr] Checking tokio-tcp v0.1.2 [INFO] [stderr] Checking tokio-signal v0.2.7 [INFO] [stderr] Checking trust-dns-proto v0.5.0 [INFO] [stderr] Checking tokio v0.1.13 [INFO] [stderr] Checking h2 v0.1.14 [INFO] [stderr] Checking trust-dns-resolver v0.10.0 [INFO] [stderr] Checking actix v0.7.9 [INFO] [stderr] Checking actix-net v0.2.4 [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shell.rs:93:9 [INFO] [stderr] | [INFO] [stderr] 93 | appstate: appstate, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `appstate` [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/shell.rs:94:9 [INFO] [stderr] | [INFO] [stderr] 94 | model: model, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `model` [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/shell.rs:93:9 [INFO] [stderr] | [INFO] [stderr] 93 | appstate: appstate, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `appstate` [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/shell.rs:94:9 [INFO] [stderr] | [INFO] [stderr] 94 | model: model, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `model` [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: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `gears::structure::common::ModelLoadError` [INFO] [stderr] --> src/main.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | use gears::structure::common::ModelLoadError; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this looks like an `else if` but the `else` is missing [INFO] [stderr] --> /opt/crater/target/debug/build/gears-cli-8400750682136da3/out/command_grammar.rs:54:60 [INFO] [stderr] | [INFO] [stderr] 54 | self . max_err_pos = pos ; self . expected . clear ( ) ; } if pos == self . [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::suspicious_else_formatting)] on by default [INFO] [stderr] = note: to remove this lint, add the missing `else` or add a new line before the second `if` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_else_formatting [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/shell.rs:64:36 [INFO] [stderr] | [INFO] [stderr] 64 | pub fn run_command_help(&self) -> () { [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: unneeded unit return type [INFO] [stderr] --> src/shell.rs:90:62 [INFO] [stderr] | [INFO] [stderr] 90 | pub fn shell(model: &mut ModelDocument, appstate: &AppState) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded `()` [INFO] [stderr] --> src/server.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | return () [INFO] [stderr] | ^^ help: remove the `()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unused import: `futures::Future` [INFO] [stderr] --> src/modelstore/filesystem.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use futures::Future; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `futures::Future` [INFO] [stderr] --> src/modelstore/sqlite.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use futures::Future; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `actix::prelude::*` [INFO] [stderr] --> src/modelstore/sqlite.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use actix::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `gears` [INFO] [stderr] --> src/modelstore/sqlite.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use gears; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:56:43 [INFO] [stderr] | [INFO] [stderr] 56 | fn write_file(filename: &str, data: &str) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:78:34 [INFO] [stderr] | [INFO] [stderr] 78 | fn add_project_files(path: &str) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:261:41 [INFO] [stderr] | [INFO] [stderr] 261 | fn subcommand_init(appstate: &AppState) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:267:42 [INFO] [stderr] | [INFO] [stderr] 267 | fn subcommand_shell(appstate: &AppState) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:279:45 [INFO] [stderr] | [INFO] [stderr] 279 | fn subcommand_validate(appstate: &AppState) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:301:46 [INFO] [stderr] | [INFO] [stderr] 301 | fn subcommand_transform(appstate: &AppState) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded `()` [INFO] [stderr] --> src/main.rs:309:24 [INFO] [stderr] | [INFO] [stderr] 309 | return () [INFO] [stderr] | ^^ help: remove the `()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded `()` [INFO] [stderr] --> src/main.rs:316:24 [INFO] [stderr] | [INFO] [stderr] 316 | return () [INFO] [stderr] | ^^ help: remove the `()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:327:42 [INFO] [stderr] | [INFO] [stderr] 327 | fn subcommand_build(appstate: &AppState) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:345:42 [INFO] [stderr] | [INFO] [stderr] 345 | fn subcommand_serve(appstate: &AppState) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:356:47 [INFO] [stderr] | [INFO] [stderr] 356 | fn subcommand_import(appstate: &mut AppState) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded `()` [INFO] [stderr] --> src/main.rs:364:24 [INFO] [stderr] | [INFO] [stderr] 364 | return () [INFO] [stderr] | ^^ help: remove the `()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded `()` [INFO] [stderr] --> src/main.rs:371:24 [INFO] [stderr] | [INFO] [stderr] 371 | return () [INFO] [stderr] | ^^ help: remove the `()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:383:47 [INFO] [stderr] | [INFO] [stderr] 383 | fn subcommand_export(appstate: &mut AppState) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `gears::structure::common::ModelLoadError` [INFO] [stderr] --> src/main.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | use gears::structure::common::ModelLoadError; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this looks like an `else if` but the `else` is missing [INFO] [stderr] --> /opt/crater/target/debug/build/gears-cli-8400750682136da3/out/command_grammar.rs:54:60 [INFO] [stderr] | [INFO] [stderr] 54 | self . max_err_pos = pos ; self . expected . clear ( ) ; } if pos == self . [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::suspicious_else_formatting)] on by default [INFO] [stderr] = note: to remove this lint, add the missing `else` or add a new line before the second `if` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_else_formatting [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/shell.rs:64:36 [INFO] [stderr] | [INFO] [stderr] 64 | pub fn run_command_help(&self) -> () { [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: unneeded unit return type [INFO] [stderr] --> src/shell.rs:90:62 [INFO] [stderr] | [INFO] [stderr] 90 | pub fn shell(model: &mut ModelDocument, appstate: &AppState) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded `()` [INFO] [stderr] --> src/server.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | return () [INFO] [stderr] | ^^ help: remove the `()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unused import: `futures::Future` [INFO] [stderr] --> src/modelstore/filesystem.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use futures::Future; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `futures::Future` [INFO] [stderr] --> src/modelstore/sqlite.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use futures::Future; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `actix::prelude::*` [INFO] [stderr] --> src/modelstore/sqlite.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use actix::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `gears` [INFO] [stderr] --> src/modelstore/sqlite.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use gears; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:56:43 [INFO] [stderr] | [INFO] [stderr] 56 | fn write_file(filename: &str, data: &str) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:78:34 [INFO] [stderr] | [INFO] [stderr] 78 | fn add_project_files(path: &str) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:261:41 [INFO] [stderr] | [INFO] [stderr] 261 | fn subcommand_init(appstate: &AppState) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:267:42 [INFO] [stderr] | [INFO] [stderr] 267 | fn subcommand_shell(appstate: &AppState) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:279:45 [INFO] [stderr] | [INFO] [stderr] 279 | fn subcommand_validate(appstate: &AppState) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:301:46 [INFO] [stderr] | [INFO] [stderr] 301 | fn subcommand_transform(appstate: &AppState) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded `()` [INFO] [stderr] --> src/main.rs:309:24 [INFO] [stderr] | [INFO] [stderr] 309 | return () [INFO] [stderr] | ^^ help: remove the `()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded `()` [INFO] [stderr] --> src/main.rs:316:24 [INFO] [stderr] | [INFO] [stderr] 316 | return () [INFO] [stderr] | ^^ help: remove the `()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:327:42 [INFO] [stderr] | [INFO] [stderr] 327 | fn subcommand_build(appstate: &AppState) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:345:42 [INFO] [stderr] | [INFO] [stderr] 345 | fn subcommand_serve(appstate: &AppState) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:356:47 [INFO] [stderr] | [INFO] [stderr] 356 | fn subcommand_import(appstate: &mut AppState) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded `()` [INFO] [stderr] --> src/main.rs:364:24 [INFO] [stderr] | [INFO] [stderr] 364 | return () [INFO] [stderr] | ^^ help: remove the `()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded `()` [INFO] [stderr] --> src/main.rs:371:24 [INFO] [stderr] | [INFO] [stderr] 371 | return () [INFO] [stderr] | ^^ help: remove the `()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:383:47 [INFO] [stderr] | [INFO] [stderr] 383 | fn subcommand_export(appstate: &mut AppState) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unused import: `actix::prelude` [INFO] [stderr] --> src/server.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use actix::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `model` [INFO] [stderr] --> src/main.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | let model = gears::util::fs::model_from_fs(path).unwrap(); [INFO] [stderr] | ^^^^^ help: consider using `_model` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/modelstore/filesystem.rs:29:17 [INFO] [stderr] | [INFO] [stderr] 29 | Err(err) => Err(ModelLoadError::BadStructure("Unable to init".to_owned())) [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `json` [INFO] [stderr] --> src/modelstore/filesystem.rs:83:22 [INFO] [stderr] | [INFO] [stderr] 83 | fn delete(&self, json: &str) -> Result<(), InputError> { [INFO] [stderr] | ^^^^ help: consider using `_json` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/modelstore/filesystem.rs:91:27 [INFO] [stderr] | [INFO] [stderr] 91 | fn started(&mut self, ctx: &mut SyncContext) { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/modelstore/filesystem.rs:95:27 [INFO] [stderr] | [INFO] [stderr] 95 | fn stopped(&mut self, ctx: &mut SyncContext) { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `msg` [INFO] [stderr] --> src/modelstore/filesystem.rs:109:26 [INFO] [stderr] | [INFO] [stderr] 109 | fn handle(&mut self, msg: ModelStoreList, ctx: &mut SyncContext) -> Self::Result { [INFO] [stderr] | ^^^ help: consider using `_msg` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/modelstore/filesystem.rs:109:47 [INFO] [stderr] | [INFO] [stderr] 109 | fn handle(&mut self, msg: ModelStoreList, ctx: &mut SyncContext) -> Self::Result { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/modelstore/filesystem.rs:125:46 [INFO] [stderr] | [INFO] [stderr] 125 | fn handle(&mut self, msg: ModelStoreGet, ctx: &mut SyncContext) -> Self::Result { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `msg` [INFO] [stderr] --> src/modelstore/filesystem.rs:139:26 [INFO] [stderr] | [INFO] [stderr] 139 | fn handle(&mut self, msg: ModelStoreNew, ctx: &mut SyncContext) -> Self::Result { [INFO] [stderr] | ^^^ help: consider using `_msg` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/modelstore/filesystem.rs:139:46 [INFO] [stderr] | [INFO] [stderr] 139 | fn handle(&mut self, msg: ModelStoreNew, ctx: &mut SyncContext) -> Self::Result { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/modelstore/filesystem.rs:155:49 [INFO] [stderr] | [INFO] [stderr] 155 | fn handle(&mut self, msg: ModelStoreCreate, ctx: &mut SyncContext) -> Self::Result { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/modelstore/filesystem.rs:171:49 [INFO] [stderr] | [INFO] [stderr] 171 | fn handle(&mut self, msg: ModelStoreDelete, ctx: &mut SyncContext) -> Self::Result { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/modelstore/sqlite.rs:15:16 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn new(path: &str) -> Result { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `json` [INFO] [stderr] --> src/modelstore/sqlite.rs:33:22 [INFO] [stderr] | [INFO] [stderr] 33 | fn create(&self, json: &str) -> Result { [INFO] [stderr] | ^^^^ help: consider using `_json` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `json` [INFO] [stderr] --> src/modelstore/sqlite.rs:37:22 [INFO] [stderr] | [INFO] [stderr] 37 | fn update(&self, json: &str) -> Result { [INFO] [stderr] | ^^^^ help: consider using `_json` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `json` [INFO] [stderr] --> src/modelstore/sqlite.rs:41:22 [INFO] [stderr] | [INFO] [stderr] 41 | fn delete(&self, json: &str) -> Result<(), InputError> { [INFO] [stderr] | ^^^^ help: consider using `_json` instead [INFO] [stderr] [INFO] [stderr] warning: unused import: `actix::prelude` [INFO] [stderr] --> src/server.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use actix::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/modelstore/sqlite.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn new(path: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `model` [INFO] [stderr] --> src/main.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | let model = gears::util::fs::model_from_fs(path).unwrap(); [INFO] [stderr] | ^^^^^ help: consider using `_model` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/modelstore/filesystem.rs:29:17 [INFO] [stderr] | [INFO] [stderr] 29 | Err(err) => Err(ModelLoadError::BadStructure("Unable to init".to_owned())) [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `json` [INFO] [stderr] --> src/modelstore/filesystem.rs:83:22 [INFO] [stderr] | [INFO] [stderr] 83 | fn delete(&self, json: &str) -> Result<(), InputError> { [INFO] [stderr] | ^^^^ help: consider using `_json` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/modelstore/filesystem.rs:91:27 [INFO] [stderr] | [INFO] [stderr] 91 | fn started(&mut self, ctx: &mut SyncContext) { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/modelstore/filesystem.rs:95:27 [INFO] [stderr] | [INFO] [stderr] 95 | fn stopped(&mut self, ctx: &mut SyncContext) { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `msg` [INFO] [stderr] --> src/modelstore/filesystem.rs:109:26 [INFO] [stderr] | [INFO] [stderr] 109 | fn handle(&mut self, msg: ModelStoreList, ctx: &mut SyncContext) -> Self::Result { [INFO] [stderr] | ^^^ help: consider using `_msg` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/modelstore/filesystem.rs:109:47 [INFO] [stderr] | [INFO] [stderr] 109 | fn handle(&mut self, msg: ModelStoreList, ctx: &mut SyncContext) -> Self::Result { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/modelstore/filesystem.rs:125:46 [INFO] [stderr] | [INFO] [stderr] 125 | fn handle(&mut self, msg: ModelStoreGet, ctx: &mut SyncContext) -> Self::Result { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `msg` [INFO] [stderr] --> src/modelstore/filesystem.rs:139:26 [INFO] [stderr] | [INFO] [stderr] 139 | fn handle(&mut self, msg: ModelStoreNew, ctx: &mut SyncContext) -> Self::Result { [INFO] [stderr] | ^^^ help: consider using `_msg` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/modelstore/filesystem.rs:139:46 [INFO] [stderr] | [INFO] [stderr] 139 | fn handle(&mut self, msg: ModelStoreNew, ctx: &mut SyncContext) -> Self::Result { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/modelstore/filesystem.rs:155:49 [INFO] [stderr] | [INFO] [stderr] 155 | fn handle(&mut self, msg: ModelStoreCreate, ctx: &mut SyncContext) -> Self::Result { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/modelstore/filesystem.rs:171:49 [INFO] [stderr] | [INFO] [stderr] 171 | fn handle(&mut self, msg: ModelStoreDelete, ctx: &mut SyncContext) -> Self::Result { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/modelstore/sqlite.rs:15:16 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn new(path: &str) -> Result { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `json` [INFO] [stderr] --> src/modelstore/sqlite.rs:33:22 [INFO] [stderr] | [INFO] [stderr] 33 | fn create(&self, json: &str) -> Result { [INFO] [stderr] | ^^^^ help: consider using `_json` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `json` [INFO] [stderr] --> src/modelstore/sqlite.rs:37:22 [INFO] [stderr] | [INFO] [stderr] 37 | fn update(&self, json: &str) -> Result { [INFO] [stderr] | ^^^^ help: consider using `_json` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `json` [INFO] [stderr] --> src/modelstore/sqlite.rs:41:22 [INFO] [stderr] | [INFO] [stderr] 41 | fn delete(&self, json: &str) -> Result<(), InputError> { [INFO] [stderr] | ^^^^ help: consider using `_json` instead [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> /opt/crater/target/debug/build/gears-cli-8400750682136da3/out/command_grammar.rs:14:6 [INFO] [stderr] | [INFO] [stderr] 14 | ; if self . expected . len ( ) == 0 { write ! ( fmt , "EOF" ) ? ; } else if [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self . expected.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: You appear to be counting bytes the naive way [INFO] [stderr] --> /opt/crater/target/debug/build/gears-cli-8400750682136da3/out/command_grammar.rs:46:46 [INFO] [stderr] | [INFO] [stderr] 46 | let before = & input [ .. pos ] ; let line = before . as_bytes ( ) . iter ( [INFO] [stderr] | ______________________________________________^ [INFO] [stderr] 47 | | ) . filter ( | && c | c == b'\n' ) . count ( ) + 1 ; let col = before . chars [INFO] [stderr] | |_______________________________________________^ help: Consider using the bytecount crate: `bytecount::count(before . as_bytes ( ), b'\n')` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::naive_bytecount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#naive_bytecount [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> /opt/crater/target/debug/build/gears-cli-8400750682136da3/out/command_grammar.rs:73:760 [INFO] [stderr] | [INFO] [stderr] 73 | fn __parse_label < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < String > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { 'A' ... 'Z' | 'a' ... 'z' | '0' ... '9' | '_' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z0-9_]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z0-9_]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , label ) => { Matched ( __pos , { [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] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 73 | fn __parse_label < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < String > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { 'A' ... 'Z' | 'a' ... 'z' | '0' ... '9' | '_' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z0-9_]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z0-9_]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( () ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , label ) => { Matched ( __pos , { [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> /opt/crater/target/debug/build/gears-cli-8400750682136da3/out/command_grammar.rs:73:805 [INFO] [stderr] | [INFO] [stderr] 73 | fn __parse_label < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < String > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { 'A' ... 'Z' | 'a' ... 'z' | '0' ... '9' | '_' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z0-9_]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z0-9_]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , label ) => { Matched ( __pos , { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!__repeat_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: passing a unit value to a function [INFO] [stderr] --> /opt/crater/target/debug/build/gears-cli-8400750682136da3/out/command_grammar.rs:81:319 [INFO] [stderr] | [INFO] [stderr] 81 | fn __parse_newline < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = slice_eq ( __input , __state , __pos , "\n" ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = slice_eq ( __input , __state , __pos , "\r" ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => slice_eq ( __input , __state , __pos , "\r\n" ) } } } } } [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] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 81 | fn __parse_newline < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = slice_eq ( __input , __state , __pos , "\n" ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , () ) , Failed => { let __choice_res = slice_eq ( __input , __state , __pos , "\r" ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => slice_eq ( __input , __state , __pos , "\r\n" ) } } } } } [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> /opt/crater/target/debug/build/gears-cli-8400750682136da3/out/command_grammar.rs:81:480 [INFO] [stderr] | [INFO] [stderr] 81 | fn __parse_newline < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = slice_eq ( __input , __state , __pos , "\n" ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = slice_eq ( __input , __state , __pos , "\r" ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => slice_eq ( __input , __state , __pos , "\r\n" ) } } } } } [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] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 81 | fn __parse_newline < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = slice_eq ( __input , __state , __pos , "\n" ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = slice_eq ( __input , __state , __pos , "\r" ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , () ) , Failed => slice_eq ( __input , __state , __pos , "\r\n" ) } } } } } [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> /opt/crater/target/debug/build/gears-cli-8400750682136da3/out/command_grammar.rs:83:2 [INFO] [stderr] | [INFO] [stderr] 83 | pub fn expression < 'input > ( __input : & 'input str ) -> ParseResult < Command > { # ! [ allow ( non_snake_case , unused ) ] let mut __state = ParseState :: new ( ) ; match __parse_expression ( __input , & mut __state , 0 ) { Matched ( __pos , __value ) => { if __pos == __input . len ( ) { return Ok ( __value ) } } _ => { } } let ( __line , __col ) = pos_to_line ( __input , __state . max_err_pos ) ; Err ( ParseError { line : __line , column : __col , offset : __state . max_err_pos , expected : __state . expected , } ) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> /opt/crater/target/debug/build/gears-cli-8400750682136da3/out/command_grammar.rs:83:171 [INFO] [stderr] | [INFO] [stderr] 83 | pub fn expression < 'input > ( __input : & 'input str ) -> ParseResult < Command > { # ! [ allow ( non_snake_case , unused ) ] let mut __state = ParseState :: new ( ) ; match __parse_expression ( __input , & mut __state , 0 ) { Matched ( __pos , __value ) => { if __pos == __input . len ( ) { return Ok ( __value ) } } _ => { } } let ( __line , __col ) = pos_to_line ( __input , __state . max_err_pos ) ; Err ( ParseError { line : __line , column : __col , offset : __state . max_err_pos , expected : __state . expected , } ) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `if let Matched ( __pos , __value ) = __parse_expression ( __input , & mut __state , 0 ) { if __pos == __input . len ( ) { return Ok ( __value ) } }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/shell.rs:99:12 [INFO] [stderr] | [INFO] [stderr] 99 | if let Err(_) = rl.load_history(HISTORY_FILE) { [INFO] [stderr] | _____- ^^^^^^ [INFO] [stderr] 100 | | println!("<< No previous history."); [INFO] [stderr] 101 | | } [INFO] [stderr] | |_____- help: try this: `if rl.load_history(HISTORY_FILE).is_err()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/server.rs:109:22 [INFO] [stderr] | [INFO] [stderr] 109 | .header("LOCATION", format!("api/model/1")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"api/model/1".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] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/server.rs:141:7 [INFO] [stderr] | [INFO] [stderr] 141 | format!("{}", res.to_json_compact()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `res.to_json_compact().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/server.rs:153:8 [INFO] [stderr] | [INFO] [stderr] 153 | .body(format!("{}", model.to_json_compact())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `model.to_json_compact().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/server.rs:171:18 [INFO] [stderr] | [INFO] [stderr] 171 | .body( format!("{}", res.to_json_compact())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `res.to_json_compact().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/server.rs:185:16 [INFO] [stderr] | [INFO] [stderr] 185 | .body(format!("Invalid JSON")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Invalid JSON".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] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/modelstore/filesystem.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | / fn new(&self) -> Result { [INFO] [stderr] 47 | | info!("init: in directory {}", self.root); [INFO] [stderr] 48 | | match gears::util::fs::init_new_model_dir(&self.root) { [INFO] [stderr] 49 | | Ok(_) => load_model(&self.root), [INFO] [stderr] ... | [INFO] [stderr] 54 | | } [INFO] [stderr] 55 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/modelstore/sqlite.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | / fn new(&self) -> Result { [INFO] [stderr] 30 | | unimplemented!() [INFO] [stderr] 31 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/main.rs:132:5 [INFO] [stderr] | [INFO] [stderr] 132 | let _ = env_logger::init(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:285:12 [INFO] [stderr] | [INFO] [stderr] 285 | if errors.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!errors.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: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/main.rs:376:5 [INFO] [stderr] | [INFO] [stderr] 376 | / let _ = gears::util::fs::model_to_fs( [INFO] [stderr] 377 | | &model.as_locale(&appstate.locale).unwrap(), [INFO] [stderr] 378 | | &appstate.path_in, [INFO] [stderr] 379 | | ).unwrap(); [INFO] [stderr] | |_______________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/modelstore/sqlite.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn new(path: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> /opt/crater/target/debug/build/gears-cli-8400750682136da3/out/command_grammar.rs:14:6 [INFO] [stderr] | [INFO] [stderr] 14 | ; if self . expected . len ( ) == 0 { write ! ( fmt , "EOF" ) ? ; } else if [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self . expected.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: You appear to be counting bytes the naive way [INFO] [stderr] --> /opt/crater/target/debug/build/gears-cli-8400750682136da3/out/command_grammar.rs:46:46 [INFO] [stderr] | [INFO] [stderr] 46 | let before = & input [ .. pos ] ; let line = before . as_bytes ( ) . iter ( [INFO] [stderr] | ______________________________________________^ [INFO] [stderr] 47 | | ) . filter ( | && c | c == b'\n' ) . count ( ) + 1 ; let col = before . chars [INFO] [stderr] | |_______________________________________________^ help: Consider using the bytecount crate: `bytecount::count(before . as_bytes ( ), b'\n')` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::naive_bytecount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#naive_bytecount [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> /opt/crater/target/debug/build/gears-cli-8400750682136da3/out/command_grammar.rs:73:760 [INFO] [stderr] | [INFO] [stderr] 73 | fn __parse_label < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < String > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { 'A' ... 'Z' | 'a' ... 'z' | '0' ... '9' | '_' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z0-9_]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z0-9_]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , label ) => { Matched ( __pos , { [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] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 73 | fn __parse_label < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < String > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { 'A' ... 'Z' | 'a' ... 'z' | '0' ... '9' | '_' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z0-9_]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z0-9_]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( () ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , label ) => { Matched ( __pos , { [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> /opt/crater/target/debug/build/gears-cli-8400750682136da3/out/command_grammar.rs:73:805 [INFO] [stderr] | [INFO] [stderr] 73 | fn __parse_label < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < String > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { 'A' ... 'Z' | 'a' ... 'z' | '0' ... '9' | '_' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z0-9_]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z0-9_]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , label ) => { Matched ( __pos , { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!__repeat_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: passing a unit value to a function [INFO] [stderr] --> /opt/crater/target/debug/build/gears-cli-8400750682136da3/out/command_grammar.rs:81:319 [INFO] [stderr] | [INFO] [stderr] 81 | fn __parse_newline < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = slice_eq ( __input , __state , __pos , "\n" ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = slice_eq ( __input , __state , __pos , "\r" ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => slice_eq ( __input , __state , __pos , "\r\n" ) } } } } } [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] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 81 | fn __parse_newline < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = slice_eq ( __input , __state , __pos , "\n" ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , () ) , Failed => { let __choice_res = slice_eq ( __input , __state , __pos , "\r" ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => slice_eq ( __input , __state , __pos , "\r\n" ) } } } } } [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> /opt/crater/target/debug/build/gears-cli-8400750682136da3/out/command_grammar.rs:81:480 [INFO] [stderr] | [INFO] [stderr] 81 | fn __parse_newline < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = slice_eq ( __input , __state , __pos , "\n" ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = slice_eq ( __input , __state , __pos , "\r" ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => slice_eq ( __input , __state , __pos , "\r\n" ) } } } } } [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] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 81 | fn __parse_newline < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = slice_eq ( __input , __state , __pos , "\n" ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = slice_eq ( __input , __state , __pos , "\r" ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , () ) , Failed => slice_eq ( __input , __state , __pos , "\r\n" ) } } } } } [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> /opt/crater/target/debug/build/gears-cli-8400750682136da3/out/command_grammar.rs:83:2 [INFO] [stderr] | [INFO] [stderr] 83 | pub fn expression < 'input > ( __input : & 'input str ) -> ParseResult < Command > { # ! [ allow ( non_snake_case , unused ) ] let mut __state = ParseState :: new ( ) ; match __parse_expression ( __input , & mut __state , 0 ) { Matched ( __pos , __value ) => { if __pos == __input . len ( ) { return Ok ( __value ) } } _ => { } } let ( __line , __col ) = pos_to_line ( __input , __state . max_err_pos ) ; Err ( ParseError { line : __line , column : __col , offset : __state . max_err_pos , expected : __state . expected , } ) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> /opt/crater/target/debug/build/gears-cli-8400750682136da3/out/command_grammar.rs:83:171 [INFO] [stderr] | [INFO] [stderr] 83 | pub fn expression < 'input > ( __input : & 'input str ) -> ParseResult < Command > { # ! [ allow ( non_snake_case , unused ) ] let mut __state = ParseState :: new ( ) ; match __parse_expression ( __input , & mut __state , 0 ) { Matched ( __pos , __value ) => { if __pos == __input . len ( ) { return Ok ( __value ) } } _ => { } } let ( __line , __col ) = pos_to_line ( __input , __state . max_err_pos ) ; Err ( ParseError { line : __line , column : __col , offset : __state . max_err_pos , expected : __state . expected , } ) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `if let Matched ( __pos , __value ) = __parse_expression ( __input , & mut __state , 0 ) { if __pos == __input . len ( ) { return Ok ( __value ) } }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/shell.rs:99:12 [INFO] [stderr] | [INFO] [stderr] 99 | if let Err(_) = rl.load_history(HISTORY_FILE) { [INFO] [stderr] | _____- ^^^^^^ [INFO] [stderr] 100 | | println!("<< No previous history."); [INFO] [stderr] 101 | | } [INFO] [stderr] | |_____- help: try this: `if rl.load_history(HISTORY_FILE).is_err()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/server.rs:109:22 [INFO] [stderr] | [INFO] [stderr] 109 | .header("LOCATION", format!("api/model/1")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"api/model/1".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] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/server.rs:141:7 [INFO] [stderr] | [INFO] [stderr] 141 | format!("{}", res.to_json_compact()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `res.to_json_compact().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/server.rs:153:8 [INFO] [stderr] | [INFO] [stderr] 153 | .body(format!("{}", model.to_json_compact())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `model.to_json_compact().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/server.rs:171:18 [INFO] [stderr] | [INFO] [stderr] 171 | .body( format!("{}", res.to_json_compact())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `res.to_json_compact().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/server.rs:185:16 [INFO] [stderr] | [INFO] [stderr] 185 | .body(format!("Invalid JSON")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Invalid JSON".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] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/modelstore/filesystem.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | / fn new(&self) -> Result { [INFO] [stderr] 47 | | info!("init: in directory {}", self.root); [INFO] [stderr] 48 | | match gears::util::fs::init_new_model_dir(&self.root) { [INFO] [stderr] 49 | | Ok(_) => load_model(&self.root), [INFO] [stderr] ... | [INFO] [stderr] 54 | | } [INFO] [stderr] 55 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/modelstore/sqlite.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | / fn new(&self) -> Result { [INFO] [stderr] 30 | | unimplemented!() [INFO] [stderr] 31 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/main.rs:132:5 [INFO] [stderr] | [INFO] [stderr] 132 | let _ = env_logger::init(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:285:12 [INFO] [stderr] | [INFO] [stderr] 285 | if errors.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!errors.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: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/main.rs:376:5 [INFO] [stderr] | [INFO] [stderr] 376 | / let _ = gears::util::fs::model_to_fs( [INFO] [stderr] 377 | | &model.as_locale(&appstate.locale).unwrap(), [INFO] [stderr] 378 | | &appstate.path_in, [INFO] [stderr] 379 | | ).unwrap(); [INFO] [stderr] | |_______________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 13s [INFO] running `"docker" "inspect" "2d0b6c346a273c1a24a9c34e62f97b93a1719fc57f298f8867e80f63f4ec17fb"` [INFO] running `"docker" "rm" "-f" "2d0b6c346a273c1a24a9c34e62f97b93a1719fc57f298f8867e80f63f4ec17fb"` [INFO] [stdout] 2d0b6c346a273c1a24a9c34e62f97b93a1719fc57f298f8867e80f63f4ec17fb