[INFO] crate gears 0.1.6 is already in cache [INFO] extracting crate gears 0.1.6 into work/ex/clippy-test-run/sources/stable/reg/gears/0.1.6 [INFO] extracting crate gears 0.1.6 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/gears/0.1.6 [INFO] validating manifest of gears-0.1.6 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-0.1.6 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-0.1.6 [INFO] finished frobbing gears-0.1.6 [INFO] frobbed toml for gears-0.1.6 written to work/ex/clippy-test-run/sources/stable/reg/gears/0.1.6/Cargo.toml [INFO] started frobbing gears-0.1.6 [INFO] finished frobbing gears-0.1.6 [INFO] frobbed toml for gears-0.1.6 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/gears/0.1.6/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting gears-0.1.6 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/gears/0.1.6:/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] 9b5462d114f770ed87e5b131419de436825345a3ebcf8f15b1bd052aa9743a7a [INFO] running `"docker" "start" "-a" "9b5462d114f770ed87e5b131419de436825345a3ebcf8f15b1bd052aa9743a7a"` [INFO] [stderr] Checking ratel v0.7.0 [INFO] [stderr] Compiling gears v0.1.6 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structure/xflow.rs:347:13 [INFO] [stderr] | [INFO] [stderr] 347 | requirements: requirements, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `requirements` [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/structure/xflow.rs:353:13 [INFO] [stderr] | [INFO] [stderr] 353 | nodes: nodes, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `nodes` [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/structure/xflow.rs:354:13 [INFO] [stderr] | [INFO] [stderr] 354 | edges: edges, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `edges` [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/runtime/xfrunner.rs:56:21 [INFO] [stderr] | [INFO] [stderr] 56 | xflow: xflow, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `xflow` [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/runtime/xfrunner.rs:57:21 [INFO] [stderr] | [INFO] [stderr] 57 | dispatcher: dispatcher, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `dispatcher` [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/runtime/xfrunner.rs:58:21 [INFO] [stderr] | [INFO] [stderr] 58 | state: state, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `state` [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/runtime/dispatcher.rs:55:22 [INFO] [stderr] | [INFO] [stderr] 55 | Dispatcher { receivers: receivers } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `receivers` [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/runtime/xfstate.rs:58:19 [INFO] [stderr] | [INFO] [stderr] 58 | XFState { store: store } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `store` [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/validation/common.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | code: code, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `code` [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/validation/common.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | message: message, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [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/validation/common.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | paths: paths, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `paths` [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/validation/model.rs:78:25 [INFO] [stderr] | [INFO] [stderr] 78 | message: message, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [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/validation/model.rs:101:21 [INFO] [stderr] | [INFO] [stderr] 101 | message: message, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [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/validation/model.rs:116:21 [INFO] [stderr] | [INFO] [stderr] 116 | message: message, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [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/validation/model.rs:134:21 [INFO] [stderr] | [INFO] [stderr] 134 | message: message, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [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/validation/translation.rs:29:21 [INFO] [stderr] | [INFO] [stderr] 29 | message: message, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [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/validation/translation.rs:47:21 [INFO] [stderr] | [INFO] [stderr] 47 | message: message, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [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/structure/xflow.rs:347:13 [INFO] [stderr] | [INFO] [stderr] 347 | requirements: requirements, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `requirements` [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/structure/xflow.rs:353:13 [INFO] [stderr] | [INFO] [stderr] 353 | nodes: nodes, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `nodes` [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/structure/xflow.rs:354:13 [INFO] [stderr] | [INFO] [stderr] 354 | edges: edges, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `edges` [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/runtime/xfrunner.rs:56:21 [INFO] [stderr] | [INFO] [stderr] 56 | xflow: xflow, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `xflow` [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/runtime/xfrunner.rs:57:21 [INFO] [stderr] | [INFO] [stderr] 57 | dispatcher: dispatcher, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `dispatcher` [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/runtime/xfrunner.rs:58:21 [INFO] [stderr] | [INFO] [stderr] 58 | state: state, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `state` [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/runtime/dispatcher.rs:55:22 [INFO] [stderr] | [INFO] [stderr] 55 | Dispatcher { receivers: receivers } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `receivers` [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/runtime/xfstate.rs:58:19 [INFO] [stderr] | [INFO] [stderr] 58 | XFState { store: store } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `store` [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/validation/common.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | code: code, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `code` [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/validation/common.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | message: message, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [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/validation/common.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | paths: paths, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `paths` [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/validation/model.rs:78:25 [INFO] [stderr] | [INFO] [stderr] 78 | message: message, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [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/validation/model.rs:101:21 [INFO] [stderr] | [INFO] [stderr] 101 | message: message, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [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/validation/model.rs:116:21 [INFO] [stderr] | [INFO] [stderr] 116 | message: message, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [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/validation/model.rs:134:21 [INFO] [stderr] | [INFO] [stderr] 134 | message: message, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [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/validation/translation.rs:29:21 [INFO] [stderr] | [INFO] [stderr] 29 | message: message, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [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/validation/translation.rs:47:21 [INFO] [stderr] | [INFO] [stderr] 47 | message: message, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [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/structure/common.rs:56:59 [INFO] [stderr] | [INFO] [stderr] 56 | pub fn set_header(&mut self, header: &DocumentHeader) -> () { [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/structure/common.rs:201:63 [INFO] [stderr] | [INFO] [stderr] 201 | pub fn translate_self(&mut self, t: &TranslationDocument) -> () { [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/structure/model.rs:37:3 [INFO] [stderr] | [INFO] [stderr] 37 | ) -> () { [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/structure/model.rs:136:44 [INFO] [stderr] | [INFO] [stderr] 136 | pub fn pad_all_translations(&mut self) -> () { [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/structure/model.rs:204:63 [INFO] [stderr] | [INFO] [stderr] 204 | fn translate_in_place(&mut self, t: &TranslationDocument) -> () { [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: `std::fmt` [INFO] [stderr] --> src/structure/domain.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fmt; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/structure/domain.rs:181:63 [INFO] [stderr] | [INFO] [stderr] 181 | fn translate_in_place(&mut self, t: &TranslationDocument) -> () { [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/structure/page.rs:228:68 [INFO] [stderr] | [INFO] [stderr] 228 | fn translate_component(c: &mut Component, t: &TranslationDocument) -> () { [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/structure/page.rs:251:79 [INFO] [stderr] | [INFO] [stderr] 251 | fn translate_components(components: &mut Components, t: &TranslationDocument) -> () { [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/structure/page.rs:258:63 [INFO] [stderr] | [INFO] [stderr] 258 | fn translate_in_place(&mut self, t: &TranslationDocument) -> () { [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/structure/translation.rs:42:51 [INFO] [stderr] | [INFO] [stderr] 42 | pub fn add(&mut self, key: &str, value: &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/structure/translation.rs:52:64 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn add_untranslated_from(&mut self, item: &I18NString) -> () { [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/runtime/xfrunner.rs:124:29 [INFO] [stderr] | [INFO] [stderr] 124 | fn next_node(&mut self) -> () { [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/runtime/actiondispatch/flow.rs:9:67 [INFO] [stderr] | [INFO] [stderr] 9 | fn process_node(&self, node: &XFlowNode, state: &mut XFState) -> () { [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/runtime/actiondispatch/flox.rs:16:67 [INFO] [stderr] | [INFO] [stderr] 16 | fn process_node(&self, node: &XFlowNode, state: &mut XFState) -> () { [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/runtime/dispatcher.rs:18:7 [INFO] [stderr] | [INFO] [stderr] 18 | ) -> () { [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: this looks like an `else if` but the `else` is missing [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_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: this looks like an `else if` but the `else` is missing [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:61:1151 [INFO] [stderr] | [INFO] [stderr] 61 | fn __parse_arithmetic_test < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { fn __infix_parse < 'input > ( __min_prec : i32 , __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { if let Matched ( __pos , mut __infix_result ) = __parse_integer ( __input , __state , __pos , context ) { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; if 0i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_plus ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x + y } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_minus ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x - y } ; __repeat_pos = __pos ; continue ; } } } if 1i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_times ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x * y } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_division ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x / y } ; __repeat_pos = __pos ; continue ; } } } if 2i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_power ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x.pow(y as u32) } ; __repeat_pos = __pos ; continue ; } } } break ; } Matched ( __repeat_pos , __infix_result ) } else { Failed } } __infix_parse ( 0 , __input , __state , __pos , context ) } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_integer ( __input , __state , __pos , context ) } } } [INFO] [stderr] | ^ [INFO] [stderr] | [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: this looks like an `else if` but the `else` is missing [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:61:1728 [INFO] [stderr] | [INFO] [stderr] 61 | fn __parse_arithmetic_test < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { fn __infix_parse < 'input > ( __min_prec : i32 , __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { if let Matched ( __pos , mut __infix_result ) = __parse_integer ( __input , __state , __pos , context ) { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; if 0i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_plus ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x + y } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_minus ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x - y } ; __repeat_pos = __pos ; continue ; } } } if 1i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_times ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x * y } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_division ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x / y } ; __repeat_pos = __pos ; continue ; } } } if 2i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_power ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x.pow(y as u32) } ; __repeat_pos = __pos ; continue ; } } } break ; } Matched ( __repeat_pos , __infix_result ) } else { Failed } } __infix_parse ( 0 , __input , __state , __pos , context ) } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_integer ( __input , __state , __pos , context ) } } } [INFO] [stderr] | ^ [INFO] [stderr] | [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: this looks like an `else if` but the `else` is missing [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:61:875 [INFO] [stderr] | [INFO] [stderr] 61 | fn __parse_arithmetic_test < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { fn __infix_parse < 'input > ( __min_prec : i32 , __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { if let Matched ( __pos , mut __infix_result ) = __parse_integer ( __input , __state , __pos , context ) { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; if 0i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_plus ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x + y } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_minus ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x - y } ; __repeat_pos = __pos ; continue ; } } } if 1i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_times ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x * y } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_division ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x / y } ; __repeat_pos = __pos ; continue ; } } } if 2i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_power ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x.pow(y as u32) } ; __repeat_pos = __pos ; continue ; } } } break ; } Matched ( __repeat_pos , __infix_result ) } else { Failed } } __infix_parse ( 0 , __input , __state , __pos , context ) } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_integer ( __input , __state , __pos , context ) } } } [INFO] [stderr] | ^ [INFO] [stderr] | [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: this looks like an `else if` but the `else` is missing [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:61:1449 [INFO] [stderr] | [INFO] [stderr] 61 | fn __parse_arithmetic_test < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { fn __infix_parse < 'input > ( __min_prec : i32 , __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { if let Matched ( __pos , mut __infix_result ) = __parse_integer ( __input , __state , __pos , context ) { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; if 0i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_plus ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x + y } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_minus ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x - y } ; __repeat_pos = __pos ; continue ; } } } if 1i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_times ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x * y } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_division ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x / y } ; __repeat_pos = __pos ; continue ; } } } if 2i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_power ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x.pow(y as u32) } ; __repeat_pos = __pos ; continue ; } } } break ; } Matched ( __repeat_pos , __infix_result ) } else { Failed } } __infix_parse ( 0 , __input , __state , __pos , context ) } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_integer ( __input , __state , __pos , context ) } } } [INFO] [stderr] | ^ [INFO] [stderr] | [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: this looks like an `else if` but the `else` is missing [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:67:1148 [INFO] [stderr] | [INFO] [stderr] 67 | fn __parse_boolean_infix < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < bool > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { fn __infix_parse < 'input > ( __min_prec : i32 , __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < bool > { if let Matched ( __pos , mut __infix_result ) = __parse_boolean ( __input , __state , __pos , context ) { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; if 0i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_eq ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l == r } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_ne ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l != r } ; __repeat_pos = __pos ; continue ; } } } if 1i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_and ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l && r } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_or ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l || r } ; __repeat_pos = __pos ; continue ; } } } break ; } Matched ( __repeat_pos , __infix_result ) } else { Failed } } __infix_parse ( 0 , __input , __state , __pos , context ) } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_not ( __input , __state , __pos , context ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "(" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_boolean_test ( __input , __state , __pos , context ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ")" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_boolean ( __input , __state , __pos , context ) } } } } } } } [INFO] [stderr] | ^ [INFO] [stderr] | [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: this looks like an `else if` but the `else` is missing [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:67:874 [INFO] [stderr] | [INFO] [stderr] 67 | fn __parse_boolean_infix < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < bool > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { fn __infix_parse < 'input > ( __min_prec : i32 , __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < bool > { if let Matched ( __pos , mut __infix_result ) = __parse_boolean ( __input , __state , __pos , context ) { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; if 0i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_eq ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l == r } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_ne ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l != r } ; __repeat_pos = __pos ; continue ; } } } if 1i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_and ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l && r } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_or ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l || r } ; __repeat_pos = __pos ; continue ; } } } break ; } Matched ( __repeat_pos , __infix_result ) } else { Failed } } __infix_parse ( 0 , __input , __state , __pos , context ) } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_not ( __input , __state , __pos , context ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "(" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_boolean_test ( __input , __state , __pos , context ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ")" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_boolean ( __input , __state , __pos , context ) } } } } } } } [INFO] [stderr] | ^ [INFO] [stderr] | [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: this looks like an `else if` but the `else` is missing [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:67:1445 [INFO] [stderr] | [INFO] [stderr] 67 | fn __parse_boolean_infix < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < bool > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { fn __infix_parse < 'input > ( __min_prec : i32 , __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < bool > { if let Matched ( __pos , mut __infix_result ) = __parse_boolean ( __input , __state , __pos , context ) { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; if 0i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_eq ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l == r } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_ne ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l != r } ; __repeat_pos = __pos ; continue ; } } } if 1i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_and ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l && r } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_or ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l || r } ; __repeat_pos = __pos ; continue ; } } } break ; } Matched ( __repeat_pos , __infix_result ) } else { Failed } } __infix_parse ( 0 , __input , __state , __pos , context ) } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_not ( __input , __state , __pos , context ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "(" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_boolean_test ( __input , __state , __pos , context ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ")" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_boolean ( __input , __state , __pos , context ) } } } } } } } [INFO] [stderr] | ^ [INFO] [stderr] | [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/util/fs.rs:35:43 [INFO] [stderr] | [INFO] [stderr] 35 | 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/util/fs.rs:56:27 [INFO] [stderr] | [INFO] [stderr] 56 | fn create_dir(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/structure/common.rs:56:59 [INFO] [stderr] | [INFO] [stderr] 56 | pub fn set_header(&mut self, header: &DocumentHeader) -> () { [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/structure/common.rs:201:63 [INFO] [stderr] | [INFO] [stderr] 201 | pub fn translate_self(&mut self, t: &TranslationDocument) -> () { [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/structure/model.rs:37:3 [INFO] [stderr] | [INFO] [stderr] 37 | ) -> () { [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/structure/model.rs:136:44 [INFO] [stderr] | [INFO] [stderr] 136 | pub fn pad_all_translations(&mut self) -> () { [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/structure/model.rs:204:63 [INFO] [stderr] | [INFO] [stderr] 204 | fn translate_in_place(&mut self, t: &TranslationDocument) -> () { [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: `std::fmt` [INFO] [stderr] --> src/structure/domain.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fmt; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/structure/domain.rs:181:63 [INFO] [stderr] | [INFO] [stderr] 181 | fn translate_in_place(&mut self, t: &TranslationDocument) -> () { [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/structure/page.rs:228:68 [INFO] [stderr] | [INFO] [stderr] 228 | fn translate_component(c: &mut Component, t: &TranslationDocument) -> () { [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/structure/page.rs:251:79 [INFO] [stderr] | [INFO] [stderr] 251 | fn translate_components(components: &mut Components, t: &TranslationDocument) -> () { [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/structure/page.rs:258:63 [INFO] [stderr] | [INFO] [stderr] 258 | fn translate_in_place(&mut self, t: &TranslationDocument) -> () { [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/structure/translation.rs:42:51 [INFO] [stderr] | [INFO] [stderr] 42 | pub fn add(&mut self, key: &str, value: &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/structure/translation.rs:52:64 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn add_untranslated_from(&mut self, item: &I18NString) -> () { [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/runtime/xfrunner.rs:124:29 [INFO] [stderr] | [INFO] [stderr] 124 | fn next_node(&mut self) -> () { [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/runtime/actiondispatch/flow.rs:9:67 [INFO] [stderr] | [INFO] [stderr] 9 | fn process_node(&self, node: &XFlowNode, state: &mut XFState) -> () { [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/runtime/actiondispatch/flox.rs:16:67 [INFO] [stderr] | [INFO] [stderr] 16 | fn process_node(&self, node: &XFlowNode, state: &mut XFState) -> () { [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/runtime/dispatcher.rs:18:7 [INFO] [stderr] | [INFO] [stderr] 18 | ) -> () { [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: this looks like an `else if` but the `else` is missing [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_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: this looks like an `else if` but the `else` is missing [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:61:1151 [INFO] [stderr] | [INFO] [stderr] 61 | fn __parse_arithmetic_test < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { fn __infix_parse < 'input > ( __min_prec : i32 , __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { if let Matched ( __pos , mut __infix_result ) = __parse_integer ( __input , __state , __pos , context ) { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; if 0i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_plus ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x + y } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_minus ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x - y } ; __repeat_pos = __pos ; continue ; } } } if 1i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_times ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x * y } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_division ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x / y } ; __repeat_pos = __pos ; continue ; } } } if 2i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_power ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x.pow(y as u32) } ; __repeat_pos = __pos ; continue ; } } } break ; } Matched ( __repeat_pos , __infix_result ) } else { Failed } } __infix_parse ( 0 , __input , __state , __pos , context ) } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_integer ( __input , __state , __pos , context ) } } } [INFO] [stderr] | ^ [INFO] [stderr] | [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: this looks like an `else if` but the `else` is missing [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:61:1728 [INFO] [stderr] | [INFO] [stderr] 61 | fn __parse_arithmetic_test < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { fn __infix_parse < 'input > ( __min_prec : i32 , __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { if let Matched ( __pos , mut __infix_result ) = __parse_integer ( __input , __state , __pos , context ) { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; if 0i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_plus ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x + y } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_minus ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x - y } ; __repeat_pos = __pos ; continue ; } } } if 1i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_times ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x * y } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_division ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x / y } ; __repeat_pos = __pos ; continue ; } } } if 2i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_power ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x.pow(y as u32) } ; __repeat_pos = __pos ; continue ; } } } break ; } Matched ( __repeat_pos , __infix_result ) } else { Failed } } __infix_parse ( 0 , __input , __state , __pos , context ) } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_integer ( __input , __state , __pos , context ) } } } [INFO] [stderr] | ^ [INFO] [stderr] | [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: this looks like an `else if` but the `else` is missing [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:61:875 [INFO] [stderr] | [INFO] [stderr] 61 | fn __parse_arithmetic_test < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { fn __infix_parse < 'input > ( __min_prec : i32 , __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { if let Matched ( __pos , mut __infix_result ) = __parse_integer ( __input , __state , __pos , context ) { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; if 0i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_plus ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x + y } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_minus ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x - y } ; __repeat_pos = __pos ; continue ; } } } if 1i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_times ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x * y } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_division ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x / y } ; __repeat_pos = __pos ; continue ; } } } if 2i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_power ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x.pow(y as u32) } ; __repeat_pos = __pos ; continue ; } } } break ; } Matched ( __repeat_pos , __infix_result ) } else { Failed } } __infix_parse ( 0 , __input , __state , __pos , context ) } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_integer ( __input , __state , __pos , context ) } } } [INFO] [stderr] | ^ [INFO] [stderr] | [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: this looks like an `else if` but the `else` is missing [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:61:1449 [INFO] [stderr] | [INFO] [stderr] 61 | fn __parse_arithmetic_test < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { fn __infix_parse < 'input > ( __min_prec : i32 , __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { if let Matched ( __pos , mut __infix_result ) = __parse_integer ( __input , __state , __pos , context ) { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; if 0i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_plus ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x + y } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_minus ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x - y } ; __repeat_pos = __pos ; continue ; } } } if 1i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_times ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x * y } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_division ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x / y } ; __repeat_pos = __pos ; continue ; } } } if 2i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_power ( __input , __state , __pos , context ) { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos , context ) { let x = __infix_result ; __infix_result = { x.pow(y as u32) } ; __repeat_pos = __pos ; continue ; } } } break ; } Matched ( __repeat_pos , __infix_result ) } else { Failed } } __infix_parse ( 0 , __input , __state , __pos , context ) } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_integer ( __input , __state , __pos , context ) } } } [INFO] [stderr] | ^ [INFO] [stderr] | [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: this looks like an `else if` but the `else` is missing [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:67:1148 [INFO] [stderr] | [INFO] [stderr] 67 | fn __parse_boolean_infix < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < bool > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { fn __infix_parse < 'input > ( __min_prec : i32 , __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < bool > { if let Matched ( __pos , mut __infix_result ) = __parse_boolean ( __input , __state , __pos , context ) { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; if 0i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_eq ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l == r } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_ne ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l != r } ; __repeat_pos = __pos ; continue ; } } } if 1i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_and ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l && r } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_or ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l || r } ; __repeat_pos = __pos ; continue ; } } } break ; } Matched ( __repeat_pos , __infix_result ) } else { Failed } } __infix_parse ( 0 , __input , __state , __pos , context ) } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_not ( __input , __state , __pos , context ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "(" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_boolean_test ( __input , __state , __pos , context ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ")" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_boolean ( __input , __state , __pos , context ) } } } } } } } [INFO] [stderr] | ^ [INFO] [stderr] | [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: this looks like an `else if` but the `else` is missing [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:67:874 [INFO] [stderr] | [INFO] [stderr] 67 | fn __parse_boolean_infix < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < bool > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { fn __infix_parse < 'input > ( __min_prec : i32 , __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < bool > { if let Matched ( __pos , mut __infix_result ) = __parse_boolean ( __input , __state , __pos , context ) { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; if 0i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_eq ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l == r } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_ne ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l != r } ; __repeat_pos = __pos ; continue ; } } } if 1i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_and ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l && r } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_or ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l || r } ; __repeat_pos = __pos ; continue ; } } } break ; } Matched ( __repeat_pos , __infix_result ) } else { Failed } } __infix_parse ( 0 , __input , __state , __pos , context ) } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_not ( __input , __state , __pos , context ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "(" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_boolean_test ( __input , __state , __pos , context ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ")" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_boolean ( __input , __state , __pos , context ) } } } } } } } [INFO] [stderr] | ^ [INFO] [stderr] | [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: this looks like an `else if` but the `else` is missing [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:67:1445 [INFO] [stderr] | [INFO] [stderr] 67 | fn __parse_boolean_infix < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < bool > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { fn __infix_parse < 'input > ( __min_prec : i32 , __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < bool > { if let Matched ( __pos , mut __infix_result ) = __parse_boolean ( __input , __state , __pos , context ) { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; if 0i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_eq ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l == r } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_ne ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l != r } ; __repeat_pos = __pos ; continue ; } } } if 1i32 >= __min_prec { if let Matched ( __pos , _ ) = __parse_and ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l && r } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = __parse_or ( __input , __state , __pos , context ) { if let Matched ( __pos , r ) = __infix_parse ( 1i32 , __input , __state , __pos , context ) { let l = __infix_result ; __infix_result = { l || r } ; __repeat_pos = __pos ; continue ; } } } break ; } Matched ( __repeat_pos , __infix_result ) } else { Failed } } __infix_parse ( 0 , __input , __state , __pos , context ) } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_not ( __input , __state , __pos , context ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "(" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_boolean_test ( __input , __state , __pos , context ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ")" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_boolean ( __input , __state , __pos , context ) } } } } } } } [INFO] [stderr] | ^ [INFO] [stderr] | [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/util/fs.rs:35:43 [INFO] [stderr] | [INFO] [stderr] 35 | 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/util/fs.rs:56:27 [INFO] [stderr] | [INFO] [stderr] 56 | fn create_dir(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: function is never used: `pad_translation_doc` [INFO] [stderr] --> src/structure/model.rs:34:1 [INFO] [stderr] | [INFO] [stderr] 34 | / fn pad_translation_doc( [INFO] [stderr] 35 | | t: &mut TranslationDocument, [INFO] [stderr] 36 | | strings_in_model: &HashMap, [INFO] [stderr] 37 | | ) -> () { [INFO] [stderr] ... | [INFO] [stderr] 47 | | } [INFO] [stderr] 48 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/structure/common.rs:37:17 [INFO] [stderr] | [INFO] [stderr] 37 | id: header.id.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `header.id` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/structure/common.rs:40:30 [INFO] [stderr] | [INFO] [stderr] 40 | doctype_version: header.doctype_version.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `header.doctype_version` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/structure/common.rs:41:22 [INFO] [stderr] | [INFO] [stderr] 41 | version: header.version.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `header.version` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/structure/common.rs:48:17 [INFO] [stderr] | [INFO] [stderr] 48 | id: self.id.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/structure/common.rs:51:30 [INFO] [stderr] | [INFO] [stderr] 51 | doctype_version: self.doctype_version.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.doctype_version` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/structure/common.rs:52:22 [INFO] [stderr] | [INFO] [stderr] 52 | version: self.version.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.version` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/structure/common.rs:57:19 [INFO] [stderr] | [INFO] [stderr] 57 | self.id = header.id.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `header.id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/structure/common.rs:60:32 [INFO] [stderr] | [INFO] [stderr] 60 | self.doctype_version = header.doctype_version.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `header.doctype_version` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/structure/common.rs:61:24 [INFO] [stderr] | [INFO] [stderr] 61 | self.version = header.version.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `header.version` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/structure/model.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | / match self.get_translation(&locale) { [INFO] [stderr] 77 | | Ok(_) => true, [INFO] [stderr] 78 | | Err(_) => false, [INFO] [stderr] 79 | | } [INFO] [stderr] | |_________^ help: try this: `self.get_translation(&locale).is_ok()` [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: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/structure/model.rs:173:9 [INFO] [stderr] | [INFO] [stderr] 173 | / match self.get_page(id) { [INFO] [stderr] 174 | | None => false, [INFO] [stderr] 175 | | Some(_) => true, [INFO] [stderr] 176 | | } [INFO] [stderr] | |_________^ help: try this: `self.get_page(id).is_some()` [INFO] [stderr] | [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: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/structure/model.rs:195:9 [INFO] [stderr] | [INFO] [stderr] 195 | / match self.get_xflow(id) { [INFO] [stderr] 196 | | None => false, [INFO] [stderr] 197 | | Some(_) => true, [INFO] [stderr] 198 | | } [INFO] [stderr] | |_________^ help: try this: `self.get_xflow(id).is_some()` [INFO] [stderr] | [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/structure/model.rs:205:13 [INFO] [stderr] | [INFO] [stderr] 205 | for ref mut page in &mut self.body.pages { [INFO] [stderr] | ^^^^^^^^^^^^ -------------------- help: try: `let page = &mut &mut self.body.pages;` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/structure/model.rs:220:13 [INFO] [stderr] | [INFO] [stderr] 220 | for ref page in &self.body.pages { [INFO] [stderr] | ^^^^^^^^ ---------------- help: try: `let page = &&self.body.pages;` [INFO] [stderr] | [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: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/structure/domain.rs:89:9 [INFO] [stderr] | [INFO] [stderr] 89 | / match self.get_entity(name) { [INFO] [stderr] 90 | | Ok(_) => true, [INFO] [stderr] 91 | | Err(_) => false, [INFO] [stderr] 92 | | } [INFO] [stderr] | |_________^ help: try this: `self.get_entity(name).is_ok()` [INFO] [stderr] | [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: The function/method `Ok` doesn't need a mutable reference [INFO] [stderr] --> src/structure/domain.rs:103:16 [INFO] [stderr] | [INFO] [stderr] 103 | Ok(&mut res[0]) [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/structure/page.rs:181:35 [INFO] [stderr] | [INFO] [stderr] 181 | for (_, ref xflow) in &c.config.eventbindings { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 181 | for ref xflow in c.config.eventbindings.values() { [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/structure/page.rs:193:41 [INFO] [stderr] | [INFO] [stderr] 193 | fn collect_xflow_references(components: &Components) -> Vec<&Uuid> { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/structure/page.rs:220:36 [INFO] [stderr] | [INFO] [stderr] 220 | fn collect_i18nstrings(components: &Components) -> Vec<&I18NString> { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/structure/page.rs:252:9 [INFO] [stderr] | [INFO] [stderr] 252 | for ref mut component in components { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ ---------- help: try: `let component = &mut components;` [INFO] [stderr] | [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: function is never used: `pad_translation_doc` [INFO] [stderr] --> src/structure/model.rs:34:1 [INFO] [stderr] | [INFO] [stderr] 34 | / fn pad_translation_doc( [INFO] [stderr] 35 | | t: &mut TranslationDocument, [INFO] [stderr] 36 | | strings_in_model: &HashMap, [INFO] [stderr] 37 | | ) -> () { [INFO] [stderr] ... | [INFO] [stderr] 47 | | } [INFO] [stderr] 48 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/structure/common.rs:37:17 [INFO] [stderr] | [INFO] [stderr] 37 | id: header.id.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `header.id` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/structure/common.rs:40:30 [INFO] [stderr] | [INFO] [stderr] 40 | doctype_version: header.doctype_version.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `header.doctype_version` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/structure/common.rs:41:22 [INFO] [stderr] | [INFO] [stderr] 41 | version: header.version.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `header.version` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/structure/common.rs:48:17 [INFO] [stderr] | [INFO] [stderr] 48 | id: self.id.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/structure/common.rs:51:30 [INFO] [stderr] | [INFO] [stderr] 51 | doctype_version: self.doctype_version.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.doctype_version` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/structure/common.rs:52:22 [INFO] [stderr] | [INFO] [stderr] 52 | version: self.version.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.version` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/structure/common.rs:57:19 [INFO] [stderr] | [INFO] [stderr] 57 | self.id = header.id.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `header.id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/structure/common.rs:60:32 [INFO] [stderr] | [INFO] [stderr] 60 | self.doctype_version = header.doctype_version.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `header.doctype_version` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/structure/common.rs:61:24 [INFO] [stderr] | [INFO] [stderr] 61 | self.version = header.version.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `header.version` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/structure/model.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | / match self.get_translation(&locale) { [INFO] [stderr] 77 | | Ok(_) => true, [INFO] [stderr] 78 | | Err(_) => false, [INFO] [stderr] 79 | | } [INFO] [stderr] | |_________^ help: try this: `self.get_translation(&locale).is_ok()` [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: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/structure/model.rs:173:9 [INFO] [stderr] | [INFO] [stderr] 173 | / match self.get_page(id) { [INFO] [stderr] 174 | | None => false, [INFO] [stderr] 175 | | Some(_) => true, [INFO] [stderr] 176 | | } [INFO] [stderr] | |_________^ help: try this: `self.get_page(id).is_some()` [INFO] [stderr] | [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: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/structure/model.rs:195:9 [INFO] [stderr] | [INFO] [stderr] 195 | / match self.get_xflow(id) { [INFO] [stderr] 196 | | None => false, [INFO] [stderr] 197 | | Some(_) => true, [INFO] [stderr] 198 | | } [INFO] [stderr] | |_________^ help: try this: `self.get_xflow(id).is_some()` [INFO] [stderr] | [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/structure/model.rs:205:13 [INFO] [stderr] | [INFO] [stderr] 205 | for ref mut page in &mut self.body.pages { [INFO] [stderr] | ^^^^^^^^^^^^ -------------------- help: try: `let page = &mut &mut self.body.pages;` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/structure/model.rs:220:13 [INFO] [stderr] | [INFO] [stderr] 220 | for ref page in &self.body.pages { [INFO] [stderr] | ^^^^^^^^ ---------------- help: try: `let page = &&self.body.pages;` [INFO] [stderr] | [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/structure/xflow.rs:229:42 [INFO] [stderr] | [INFO] [stderr] 229 | pub fn get_branches_for(&self, edge: &XFlowEdge) -> Vec<&XFlowBranch> { [INFO] [stderr] | ^^^^^^^^^^ help: consider passing by value instead: `XFlowEdge` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/structure/domain.rs:89:9 [INFO] [stderr] | [INFO] [stderr] 89 | / match self.get_entity(name) { [INFO] [stderr] 90 | | Ok(_) => true, [INFO] [stderr] 91 | | Err(_) => false, [INFO] [stderr] 92 | | } [INFO] [stderr] | |_________^ help: try this: `self.get_entity(name).is_ok()` [INFO] [stderr] | [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: The function/method `Ok` doesn't need a mutable reference [INFO] [stderr] --> src/structure/domain.rs:103:16 [INFO] [stderr] | [INFO] [stderr] 103 | Ok(&mut res[0]) [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/generation/page_to_react_component.rs:13:19 [INFO] [stderr] | [INFO] [stderr] 13 | let res = match component { [INFO] [stderr] | ___________________^ [INFO] [stderr] 14 | | &Component::Row(ref c) => render_row(c), [INFO] [stderr] 15 | | &Component::Header1(ref c) => render_header1(c), [INFO] [stderr] 16 | | &Component::Header2(ref c) => render_header2(c), [INFO] [stderr] ... | [INFO] [stderr] 26 | | &Component::FormControlGroup(ref c) => render_form_control_group(c), [INFO] [stderr] 27 | | }; [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] 13 | let res = match *component { [INFO] [stderr] 14 | Component::Row(ref c) => render_row(c), [INFO] [stderr] 15 | Component::Header1(ref c) => render_header1(c), [INFO] [stderr] 16 | Component::Header2(ref c) => render_header2(c), [INFO] [stderr] 17 | Component::Header3(ref c) => render_header3(c), [INFO] [stderr] 18 | Component::Column3(ref c) => render_column3(c), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/generation/xflow_to_es5.rs:75:32 [INFO] [stderr] | [INFO] [stderr] 75 | fn method_name_for_node_id(id: &i32) -> String { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/generation/xflow_to_es5.rs:134:18 [INFO] [stderr] | [INFO] [stderr] 134 | "end" => format!("this.finalize(); this.callback(this.output_vars);"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"this.finalize(); this.callback(this.output_vars);".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/generation/xflow_to_es5.rs:136:14 [INFO] [stderr] | [INFO] [stderr] 136 | _ => format!("unimplemented();"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"unimplemented();".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: useless use of `format!` [INFO] [stderr] --> src/generation/xflow_to_es5.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | format!("") [INFO] [stderr] | ^^^^^^^^^^^ help: consider using .to_string(): `"".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: useless use of `format!` [INFO] [stderr] --> src/generation/xflow_to_es5.rs:168:13 [INFO] [stderr] | [INFO] [stderr] 168 | format!("") [INFO] [stderr] | ^^^^^^^^^^^ help: consider using .to_string(): `"".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: useless use of `format!` [INFO] [stderr] --> src/generation/xflow_to_es5.rs:178:13 [INFO] [stderr] | [INFO] [stderr] 178 | format!("") [INFO] [stderr] | ^^^^^^^^^^^ help: consider using .to_string(): `"".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: useless use of `format!` [INFO] [stderr] --> src/generation/xflow_to_es5.rs:206:22 [INFO] [stderr] | [INFO] [stderr] 206 | res.push(format!("throw new Error('Unhandled branch');")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"throw new Error('Unhandled branch');".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: length comparison to zero [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_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-c65d667852cb8fd1/out/flox_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: you seem to want to iterate on a map's values [INFO] [stderr] --> src/structure/page.rs:181:35 [INFO] [stderr] | [INFO] [stderr] 181 | for (_, ref xflow) in &c.config.eventbindings { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 181 | for ref xflow in c.config.eventbindings.values() { [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/structure/page.rs:193:41 [INFO] [stderr] | [INFO] [stderr] 193 | fn collect_xflow_references(components: &Components) -> Vec<&Uuid> { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/structure/page.rs:220:36 [INFO] [stderr] | [INFO] [stderr] 220 | fn collect_i18nstrings(components: &Components) -> Vec<&I18NString> { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/structure/page.rs:252:9 [INFO] [stderr] | [INFO] [stderr] 252 | for ref mut component in components { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ ---------- help: try: `let component = &mut components;` [INFO] [stderr] | [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] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:99:753 [INFO] [stderr] | [INFO] [stderr] 99 | fn __parse_integer < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { 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 { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-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 , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_integer_variable ( __input , __state , __pos , context ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "(" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_integer ( __input , __state , __pos , context ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ")" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __seq_res = slice_eq ( __input , __state , __pos , "(" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_arithmetic_test ( __input , __state , __pos , context ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ")" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } } } } } } } [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] 99 | fn __parse_integer < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { 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 { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-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 , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_integer_variable ( __input , __state , __pos , context ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "(" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_integer ( __input , __state , __pos , context ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ")" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __seq_res = slice_eq ( __input , __state , __pos , "(" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_arithmetic_test ( __input , __state , __pos , context ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ")" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } } } } } } } [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:99:798 [INFO] [stderr] | [INFO] [stderr] 99 | fn __parse_integer < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { 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 { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-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 , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_integer_variable ( __input , __state , __pos , context ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "(" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_integer ( __input , __state , __pos , context ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ")" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __seq_res = slice_eq ( __input , __state , __pos , "(" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_arithmetic_test ( __input , __state , __pos , context ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ")" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } } } } } } } [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-c65d667852cb8fd1/out/flox_grammar.rs:103:872 [INFO] [stderr] | [INFO] [stderr] 103 | fn __parse_boolean_variable < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < bool > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = slice_eq ( __input , __state , __pos , "$" ) ; match __seq_res { Matched ( __pos , _ ) => { { 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' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z]" ) } ; 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 , s ) => { match { [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] 103 | fn __parse_boolean_variable < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < bool > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = slice_eq ( __input , __state , __pos , "$" ) ; match __seq_res { Matched ( __pos , _ ) => { { 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' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z]" ) } ; 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 , s ) => { match { [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:103:917 [INFO] [stderr] | [INFO] [stderr] 103 | fn __parse_boolean_variable < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < bool > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = slice_eq ( __input , __state , __pos , "$" ) ; match __seq_res { Matched ( __pos , _ ) => { { 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' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z]" ) } ; 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 , s ) => { match { [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-c65d667852cb8fd1/out/flox_grammar.rs:115:871 [INFO] [stderr] | [INFO] [stderr] 115 | fn __parse_integer_variable < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = slice_eq ( __input , __state , __pos , "$" ) ; match __seq_res { Matched ( __pos , _ ) => { { 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' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z]" ) } ; 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 , s ) => { match { [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] 115 | fn __parse_integer_variable < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = slice_eq ( __input , __state , __pos , "$" ) ; match __seq_res { Matched ( __pos , _ ) => { { 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' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z]" ) } ; 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 , s ) => { match { [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:115:916 [INFO] [stderr] | [INFO] [stderr] 115 | fn __parse_integer_variable < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = slice_eq ( __input , __state , __pos , "$" ) ; match __seq_res { Matched ( __pos , _ ) => { { 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' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z]" ) } ; 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 , s ) => { match { [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-c65d667852cb8fd1/out/flox_grammar.rs:127:337 [INFO] [stderr] | [INFO] [stderr] 127 | fn __parse_space < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = slice_eq ( __input , __state , __pos , " " ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_newline ( __input , __state , __pos , context ) } } } [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] 127 | fn __parse_space < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = slice_eq ( __input , __state , __pos , " " ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , () ) , Failed => __parse_newline ( __input , __state , __pos , context ) } } } [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:129:340 [INFO] [stderr] | [INFO] [stderr] 129 | fn __parse_newline < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> 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] 129 | fn __parse_newline < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> 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-c65d667852cb8fd1/out/flox_grammar.rs:129:501 [INFO] [stderr] | [INFO] [stderr] 129 | fn __parse_newline < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> 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] 129 | fn __parse_newline < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> 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: passing a unit value to a function [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:137:1228 [INFO] [stderr] | [INFO] [stderr] 137 | fn __parse_var_name < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < &'input str > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; let __step_res = __parse_non_var_start ( __input , __state , __pos , context ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; } , Failed => { break ; } } } Matched ( __repeat_pos , ( ) ) } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "$" ) ; match __seq_res { Matched ( __pos , _ ) => { { 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' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z]" ) } ; 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 , s ) => { { let __seq_res = { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; let __step_res = __parse_non_var_start ( __input , __state , __pos , context ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; } , Failed => { break ; } } } Matched ( __repeat_pos , ( ) ) } ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } [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] 137 | fn __parse_var_name < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < &'input str > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; let __step_res = __parse_non_var_start ( __input , __state , __pos , context ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; } , Failed => { break ; } } } Matched ( __repeat_pos , ( ) ) } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "$" ) ; match __seq_res { Matched ( __pos , _ ) => { { 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' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z]" ) } ; 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 , s ) => { { let __seq_res = { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; let __step_res = __parse_non_var_start ( __input , __state , __pos , context ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; } , Failed => { break ; } } } Matched ( __repeat_pos , ( ) ) } ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:137:1273 [INFO] [stderr] | [INFO] [stderr] 137 | fn __parse_var_name < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < &'input str > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; let __step_res = __parse_non_var_start ( __input , __state , __pos , context ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; } , Failed => { break ; } } } Matched ( __repeat_pos , ( ) ) } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "$" ) ; match __seq_res { Matched ( __pos , _ ) => { { 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' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z]" ) } ; 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 , s ) => { { let __seq_res = { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; let __step_res = __parse_non_var_start ( __input , __state , __pos , context ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; } , Failed => { break ; } } } Matched ( __repeat_pos , ( ) ) } ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } [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-c65d667852cb8fd1/out/flox_grammar.rs:139:682 [INFO] [stderr] | [INFO] [stderr] 139 | fn __parse_non_var_start < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '$' => __state . mark_failure ( __pos , "[^$]" ) , _ => Matched ( __next , ( ) ) , } } else { __state . mark_failure ( __pos , "[^$]" ) } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { } ) } Failed => Failed , } } } [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] 139 | fn __parse_non_var_start < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '$' => __state . mark_failure ( __pos , "[^$]" ) , _ => Matched ( __next , ( ) ) , } } else { __state . mark_failure ( __pos , "[^$]" ) } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , () ) } Failed => Failed , } } } [INFO] [stderr] | ^^ [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-c65d667852cb8fd1/out/flox_grammar.rs:141:195 [INFO] [stderr] | [INFO] [stderr] 141 | pub fn expression < 'input > ( __input : & 'input str , context : &XFState ) -> ParseResult < XFlowValue > { # ! [ allow ( non_snake_case , unused ) ] let mut __state = ParseState :: new ( ) ; match __parse_expression ( __input , & mut __state , 0 , context ) { 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 , context ) { 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: 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-c65d667852cb8fd1/out/flox_grammar.rs:143:206 [INFO] [stderr] | [INFO] [stderr] 143 | pub fn arithmetic_expression < 'input > ( __input : & 'input str , context : &XFState ) -> ParseResult < XFlowValue > { # ! [ allow ( non_snake_case , unused ) ] let mut __state = ParseState :: new ( ) ; match __parse_arithmetic_expression ( __input , & mut __state , 0 , context ) { 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_arithmetic_expression ( __input , & mut __state , 0 , context ) { if __pos == __input . len ( ) { return Ok ( __value ) } }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [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-c65d667852cb8fd1/out/flox_grammar.rs:145:203 [INFO] [stderr] | [INFO] [stderr] 145 | pub fn boolean_expression < 'input > ( __input : & 'input str , context : &XFState ) -> ParseResult < XFlowValue > { # ! [ allow ( non_snake_case , unused ) ] let mut __state = ParseState :: new ( ) ; match __parse_boolean_expression ( __input , & mut __state , 0 , context ) { 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_boolean_expression ( __input , & mut __state , 0 , context ) { if __pos == __input . len ( ) { return Ok ( __value ) } }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [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-c65d667852cb8fd1/out/flox_grammar.rs:147:205 [INFO] [stderr] | [INFO] [stderr] 147 | pub fn variable_names < 'input > ( __input : & 'input str , context : &XFState ) -> ParseResult < Vec<&'input str> > { # ! [ allow ( non_snake_case , unused ) ] let mut __state = ParseState :: new ( ) ; match __parse_variable_names ( __input , & mut __state , 0 , context ) { 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_variable_names ( __input , & mut __state , 0 , context ) { if __pos == __input . len ( ) { return Ok ( __value ) } }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/util/fs.rs:298:5 [INFO] [stderr] | [INFO] [stderr] 298 | model.add_locale(&default_locale); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/util/fs.rs:304:5 [INFO] [stderr] | [INFO] [stderr] 304 | / match model_from_fs(path) { [INFO] [stderr] 305 | | Ok(_) => true, [INFO] [stderr] 306 | | Err(_) => false, [INFO] [stderr] 307 | | } [INFO] [stderr] | |_____^ help: try this: `model_from_fs(path).is_ok()` [INFO] [stderr] | [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/structure/xflow.rs:229:42 [INFO] [stderr] | [INFO] [stderr] 229 | pub fn get_branches_for(&self, edge: &XFlowEdge) -> Vec<&XFlowBranch> { [INFO] [stderr] | ^^^^^^^^^^ help: consider passing by value instead: `XFlowEdge` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/generation/page_to_react_component.rs:13:19 [INFO] [stderr] | [INFO] [stderr] 13 | let res = match component { [INFO] [stderr] | ___________________^ [INFO] [stderr] 14 | | &Component::Row(ref c) => render_row(c), [INFO] [stderr] 15 | | &Component::Header1(ref c) => render_header1(c), [INFO] [stderr] 16 | | &Component::Header2(ref c) => render_header2(c), [INFO] [stderr] ... | [INFO] [stderr] 26 | | &Component::FormControlGroup(ref c) => render_form_control_group(c), [INFO] [stderr] 27 | | }; [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] 13 | let res = match *component { [INFO] [stderr] 14 | Component::Row(ref c) => render_row(c), [INFO] [stderr] 15 | Component::Header1(ref c) => render_header1(c), [INFO] [stderr] 16 | Component::Header2(ref c) => render_header2(c), [INFO] [stderr] 17 | Component::Header3(ref c) => render_header3(c), [INFO] [stderr] 18 | Component::Column3(ref c) => render_column3(c), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/generation/xflow_to_es5.rs:75:32 [INFO] [stderr] | [INFO] [stderr] 75 | fn method_name_for_node_id(id: &i32) -> String { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/generation/xflow_to_es5.rs:134:18 [INFO] [stderr] | [INFO] [stderr] 134 | "end" => format!("this.finalize(); this.callback(this.output_vars);"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"this.finalize(); this.callback(this.output_vars);".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/generation/xflow_to_es5.rs:136:14 [INFO] [stderr] | [INFO] [stderr] 136 | _ => format!("unimplemented();"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"unimplemented();".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: useless use of `format!` [INFO] [stderr] --> src/generation/xflow_to_es5.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | format!("") [INFO] [stderr] | ^^^^^^^^^^^ help: consider using .to_string(): `"".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: useless use of `format!` [INFO] [stderr] --> src/generation/xflow_to_es5.rs:168:13 [INFO] [stderr] | [INFO] [stderr] 168 | format!("") [INFO] [stderr] | ^^^^^^^^^^^ help: consider using .to_string(): `"".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: useless use of `format!` [INFO] [stderr] --> src/generation/xflow_to_es5.rs:178:13 [INFO] [stderr] | [INFO] [stderr] 178 | format!("") [INFO] [stderr] | ^^^^^^^^^^^ help: consider using .to_string(): `"".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: useless use of `format!` [INFO] [stderr] --> src/generation/xflow_to_es5.rs:206:22 [INFO] [stderr] | [INFO] [stderr] 206 | res.push(format!("throw new Error('Unhandled branch');")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"throw new Error('Unhandled branch');".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: redundant field names in struct initialization [INFO] [stderr] --> tests/xflow_load.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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: length comparison to zero [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_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-c65d667852cb8fd1/out/flox_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-c65d667852cb8fd1/out/flox_grammar.rs:99:753 [INFO] [stderr] | [INFO] [stderr] 99 | fn __parse_integer < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { 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 { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-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 , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_integer_variable ( __input , __state , __pos , context ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "(" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_integer ( __input , __state , __pos , context ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ")" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __seq_res = slice_eq ( __input , __state , __pos , "(" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_arithmetic_test ( __input , __state , __pos , context ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ")" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } } } } } } } [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] 99 | fn __parse_integer < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { 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 { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-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 , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_integer_variable ( __input , __state , __pos , context ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "(" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_integer ( __input , __state , __pos , context ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ")" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __seq_res = slice_eq ( __input , __state , __pos , "(" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_arithmetic_test ( __input , __state , __pos , context ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ")" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } } } } } } } [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:99:798 [INFO] [stderr] | [INFO] [stderr] 99 | fn __parse_integer < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { 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 { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-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 , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_integer_variable ( __input , __state , __pos , context ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "(" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_integer ( __input , __state , __pos , context ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ")" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __seq_res = slice_eq ( __input , __state , __pos , "(" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_arithmetic_test ( __input , __state , __pos , context ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ")" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } } } } } } } [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-c65d667852cb8fd1/out/flox_grammar.rs:103:872 [INFO] [stderr] | [INFO] [stderr] 103 | fn __parse_boolean_variable < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < bool > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = slice_eq ( __input , __state , __pos , "$" ) ; match __seq_res { Matched ( __pos , _ ) => { { 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' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z]" ) } ; 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 , s ) => { match { [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] 103 | fn __parse_boolean_variable < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < bool > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = slice_eq ( __input , __state , __pos , "$" ) ; match __seq_res { Matched ( __pos , _ ) => { { 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' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z]" ) } ; 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 , s ) => { match { [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:103:917 [INFO] [stderr] | [INFO] [stderr] 103 | fn __parse_boolean_variable < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < bool > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = slice_eq ( __input , __state , __pos , "$" ) ; match __seq_res { Matched ( __pos , _ ) => { { 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' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z]" ) } ; 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 , s ) => { match { [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-c65d667852cb8fd1/out/flox_grammar.rs:115:871 [INFO] [stderr] | [INFO] [stderr] 115 | fn __parse_integer_variable < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = slice_eq ( __input , __state , __pos , "$" ) ; match __seq_res { Matched ( __pos , _ ) => { { 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' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z]" ) } ; 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 , s ) => { match { [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] 115 | fn __parse_integer_variable < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = slice_eq ( __input , __state , __pos , "$" ) ; match __seq_res { Matched ( __pos , _ ) => { { 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' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z]" ) } ; 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 , s ) => { match { [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:115:916 [INFO] [stderr] | [INFO] [stderr] 115 | fn __parse_integer_variable < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < i64 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = slice_eq ( __input , __state , __pos , "$" ) ; match __seq_res { Matched ( __pos , _ ) => { { 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' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z]" ) } ; 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 , s ) => { match { [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-c65d667852cb8fd1/out/flox_grammar.rs:127:337 [INFO] [stderr] | [INFO] [stderr] 127 | fn __parse_space < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = slice_eq ( __input , __state , __pos , " " ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_newline ( __input , __state , __pos , context ) } } } [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] 127 | fn __parse_space < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = slice_eq ( __input , __state , __pos , " " ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , () ) , Failed => __parse_newline ( __input , __state , __pos , context ) } } } [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:129:340 [INFO] [stderr] | [INFO] [stderr] 129 | fn __parse_newline < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> 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] 129 | fn __parse_newline < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> 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-c65d667852cb8fd1/out/flox_grammar.rs:129:501 [INFO] [stderr] | [INFO] [stderr] 129 | fn __parse_newline < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> 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] 129 | fn __parse_newline < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> 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: passing a unit value to a function [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:137:1228 [INFO] [stderr] | [INFO] [stderr] 137 | fn __parse_var_name < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < &'input str > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; let __step_res = __parse_non_var_start ( __input , __state , __pos , context ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; } , Failed => { break ; } } } Matched ( __repeat_pos , ( ) ) } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "$" ) ; match __seq_res { Matched ( __pos , _ ) => { { 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' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z]" ) } ; 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 , s ) => { { let __seq_res = { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; let __step_res = __parse_non_var_start ( __input , __state , __pos , context ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; } , Failed => { break ; } } } Matched ( __repeat_pos , ( ) ) } ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } [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] 137 | fn __parse_var_name < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < &'input str > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; let __step_res = __parse_non_var_start ( __input , __state , __pos , context ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; } , Failed => { break ; } } } Matched ( __repeat_pos , ( ) ) } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "$" ) ; match __seq_res { Matched ( __pos , _ ) => { { 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' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z]" ) } ; 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 , s ) => { { let __seq_res = { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; let __step_res = __parse_non_var_start ( __input , __state , __pos , context ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; } , Failed => { break ; } } } Matched ( __repeat_pos , ( ) ) } ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> /opt/crater/target/debug/build/gears-c65d667852cb8fd1/out/flox_grammar.rs:137:1273 [INFO] [stderr] | [INFO] [stderr] 137 | fn __parse_var_name < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < &'input str > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; let __step_res = __parse_non_var_start ( __input , __state , __pos , context ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; } , Failed => { break ; } } } Matched ( __repeat_pos , ( ) ) } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "$" ) ; match __seq_res { Matched ( __pos , _ ) => { { 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' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[A-Za-z]" ) , } } else { __state . mark_failure ( __pos , "[A-Za-z]" ) } ; 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 , s ) => { { let __seq_res = { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; let __step_res = __parse_non_var_start ( __input , __state , __pos , context ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; } , Failed => { break ; } } } Matched ( __repeat_pos , ( ) ) } ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { s } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } [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-c65d667852cb8fd1/out/flox_grammar.rs:139:682 [INFO] [stderr] | [INFO] [stderr] 139 | fn __parse_non_var_start < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '$' => __state . mark_failure ( __pos , "[^$]" ) , _ => Matched ( __next , ( ) ) , } } else { __state . mark_failure ( __pos , "[^$]" ) } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { } ) } Failed => Failed , } } } [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] 139 | fn __parse_non_var_start < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize , context : &XFState ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '$' => __state . mark_failure ( __pos , "[^$]" ) , _ => Matched ( __next , ( ) ) , } } else { __state . mark_failure ( __pos , "[^$]" ) } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , () ) } Failed => Failed , } } } [INFO] [stderr] | ^^ [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-c65d667852cb8fd1/out/flox_grammar.rs:141:195 [INFO] [stderr] | [INFO] [stderr] 141 | pub fn expression < 'input > ( __input : & 'input str , context : &XFState ) -> ParseResult < XFlowValue > { # ! [ allow ( non_snake_case , unused ) ] let mut __state = ParseState :: new ( ) ; match __parse_expression ( __input , & mut __state , 0 , context ) { 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 , context ) { 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: 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-c65d667852cb8fd1/out/flox_grammar.rs:143:206 [INFO] [stderr] | [INFO] [stderr] 143 | pub fn arithmetic_expression < 'input > ( __input : & 'input str , context : &XFState ) -> ParseResult < XFlowValue > { # ! [ allow ( non_snake_case , unused ) ] let mut __state = ParseState :: new ( ) ; match __parse_arithmetic_expression ( __input , & mut __state , 0 , context ) { 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_arithmetic_expression ( __input , & mut __state , 0 , context ) { if __pos == __input . len ( ) { return Ok ( __value ) } }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [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-c65d667852cb8fd1/out/flox_grammar.rs:145:203 [INFO] [stderr] | [INFO] [stderr] 145 | pub fn boolean_expression < 'input > ( __input : & 'input str , context : &XFState ) -> ParseResult < XFlowValue > { # ! [ allow ( non_snake_case , unused ) ] let mut __state = ParseState :: new ( ) ; match __parse_boolean_expression ( __input , & mut __state , 0 , context ) { 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_boolean_expression ( __input , & mut __state , 0 , context ) { if __pos == __input . len ( ) { return Ok ( __value ) } }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [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-c65d667852cb8fd1/out/flox_grammar.rs:147:205 [INFO] [stderr] | [INFO] [stderr] 147 | pub fn variable_names < 'input > ( __input : & 'input str , context : &XFState ) -> ParseResult < Vec<&'input str> > { # ! [ allow ( non_snake_case , unused ) ] let mut __state = ParseState :: new ( ) ; match __parse_variable_names ( __input , & mut __state , 0 , context ) { 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_variable_names ( __input , & mut __state , 0 , context ) { if __pos == __input . len ( ) { return Ok ( __value ) } }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/util/fs.rs:298:5 [INFO] [stderr] | [INFO] [stderr] 298 | model.add_locale(&default_locale); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/util/fs.rs:304:5 [INFO] [stderr] | [INFO] [stderr] 304 | / match model_from_fs(path) { [INFO] [stderr] 305 | | Ok(_) => true, [INFO] [stderr] 306 | | Err(_) => false, [INFO] [stderr] 307 | | } [INFO] [stderr] | |_____^ help: try this: `model_from_fs(path).is_ok()` [INFO] [stderr] | [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: unneeded `()` [INFO] [stderr] --> tests/test_structure_model.rs:22:20 [INFO] [stderr] | [INFO] [stderr] 22 | return () [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 `()` [INFO] [stderr] --> tests/test_structure_model.rs:30:20 [INFO] [stderr] | [INFO] [stderr] 30 | 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: `gears::*` [INFO] [stderr] --> tests/flox_test.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use gears::*; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> tests/flox_test.rs:9:74 [INFO] [stderr] | [INFO] [stderr] 9 | fn expect_context_integer(input: &str, context: &XFState, expected: i64) -> () { [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] --> tests/flox_test.rs:25:47 [INFO] [stderr] | [INFO] [stderr] 25 | fn expect_integer(input: &str, expected: i64) -> () { [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] --> tests/flox_test.rs:41:75 [INFO] [stderr] | [INFO] [stderr] 41 | fn expect_context_boolean(input: &str, context: &XFState, expected: bool) -> () { [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] --> tests/flox_test.rs:57:48 [INFO] [stderr] | [INFO] [stderr] 57 | fn expect_boolean(input: &str, expected: bool) -> () { [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: using `clone` on a `Copy` type [INFO] [stderr] --> tests/test_structure_form.rs:53:48 [INFO] [stderr] | [INFO] [stderr] 53 | dtc_a.eventbindings.insert("1".to_owned(), uuid_1.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `uuid_1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> tests/test_structure_form.rs:54:48 [INFO] [stderr] | [INFO] [stderr] 54 | dtc_a.eventbindings.insert("2".to_owned(), uuid_2.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `uuid_2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> tests/test_structure_form.rs:55:48 [INFO] [stderr] | [INFO] [stderr] 55 | dtc_a.eventbindings.insert("3".to_owned(), uuid_3.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `uuid_3` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> tests/test_structure_form.rs:56:48 [INFO] [stderr] | [INFO] [stderr] 56 | dtc_a.eventbindings.insert("4".to_owned(), uuid_4.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `uuid_4` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> tests/test_structure_form.rs:58:48 [INFO] [stderr] | [INFO] [stderr] 58 | dtc_b.eventbindings.insert("4".to_owned(), uuid_4.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `uuid_4` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> tests/test_structure_form.rs:59:48 [INFO] [stderr] | [INFO] [stderr] 59 | dtc_b.eventbindings.insert("3".to_owned(), uuid_3.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `uuid_3` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> tests/test_structure_form.rs:60:48 [INFO] [stderr] | [INFO] [stderr] 60 | dtc_b.eventbindings.insert("2".to_owned(), uuid_2.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `uuid_2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> tests/test_structure_form.rs:61:48 [INFO] [stderr] | [INFO] [stderr] 61 | dtc_b.eventbindings.insert("1".to_owned(), uuid_1.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `uuid_1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> tests/test_structure_form.rs:77:48 [INFO] [stderr] | [INFO] [stderr] 77 | dtc_a.eventbindings.insert("5".to_owned(), uuid_5.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `uuid_5` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> tests/xflow_run_001.rs:23:39 [INFO] [stderr] | [INFO] [stderr] 23 | fn fail_and_report_error(err: String) -> () { [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: unused `std::result::Result` that must be used [INFO] [stderr] --> tests/xflow_run_001.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | xfrunner.run(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> tests/xflow_run_001.rs:72:17 [INFO] [stderr] | [INFO] [stderr] 72 | xfrunner.step(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> tests/xflow_run_001.rs:116:13 [INFO] [stderr] | [INFO] [stderr] 116 | xfrunner.run(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 34.75s [INFO] running `"docker" "inspect" "9b5462d114f770ed87e5b131419de436825345a3ebcf8f15b1bd052aa9743a7a"` [INFO] running `"docker" "rm" "-f" "9b5462d114f770ed87e5b131419de436825345a3ebcf8f15b1bd052aa9743a7a"` [INFO] [stdout] 9b5462d114f770ed87e5b131419de436825345a3ebcf8f15b1bd052aa9743a7a