[INFO] updating cached repository ProtoDef-io/protodefc [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/ProtoDef-io/protodefc [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/ProtoDef-io/protodefc" "work/ex/clippy-test-run/sources/stable/gh/ProtoDef-io/protodefc"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/ProtoDef-io/protodefc'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/ProtoDef-io/protodefc" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ProtoDef-io/protodefc"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ProtoDef-io/protodefc'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] a17214e3c27f5438241b8ef3a82bfffd955e6dd6 [INFO] sha for GitHub repo ProtoDef-io/protodefc: a17214e3c27f5438241b8ef3a82bfffd955e6dd6 [INFO] validating manifest of ProtoDef-io/protodefc 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 ProtoDef-io/protodefc 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 ProtoDef-io/protodefc [INFO] finished frobbing ProtoDef-io/protodefc [INFO] frobbed toml for ProtoDef-io/protodefc written to work/ex/clippy-test-run/sources/stable/gh/ProtoDef-io/protodefc/Cargo.toml [INFO] started frobbing ProtoDef-io/protodefc [INFO] finished frobbing ProtoDef-io/protodefc [INFO] frobbed toml for ProtoDef-io/protodefc written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ProtoDef-io/protodefc/Cargo.toml [INFO] crate ProtoDef-io/protodefc has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting ProtoDef-io/protodefc against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/ProtoDef-io/protodefc:/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] 4ed91f47af411490eb54ab9ef2bcce1abfe101926916061ffac1081de646d542 [INFO] running `"docker" "start" "-a" "4ed91f47af411490eb54ab9ef2bcce1abfe101926916061ffac1081de646d542"` [INFO] [stderr] Checking Inflector v0.10.0 [INFO] [stderr] Checking error-chain v0.10.0 [INFO] [stderr] Checking nom v2.2.1 [INFO] [stderr] Compiling peg v0.5.2 [INFO] [stderr] Checking itertools v0.5.10 [INFO] [stderr] Checking num-integer v0.1.38 [INFO] [stderr] Checking num-bigint v0.2.0 [INFO] [stderr] Compiling protodefc v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/ir/compilation_unit/path.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/ir/compilation_unit/mod.rs:145:13 [INFO] [stderr] | [INFO] [stderr] 145 | path: path, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `path` [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/ir/compilation_unit/path.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/ir/compilation_unit/mod.rs:145:13 [INFO] [stderr] | [INFO] [stderr] 145 | path: path, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `path` [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/ir/compilation_unit/mod.rs:168:13 [INFO] [stderr] | [INFO] [stderr] 168 | path: path, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `path` [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/ir/spec/variant/union.rs:105:17 [INFO] [stderr] | [INFO] [stderr] 105 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/ir/spec/variant/union.rs:107:21 [INFO] [stderr] | [INFO] [stderr] 107 | union_name: union_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `union_name` [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/ir/spec/variant/union.rs:109:21 [INFO] [stderr] | [INFO] [stderr] 109 | match_target_handle: match_target_handle, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `match_target_handle` [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/ir/spec/variant/union.rs:124:21 [INFO] [stderr] | [INFO] [stderr] 124 | match_val_str: match_val_str, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `match_val_str` [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/ir/spec/variant/union.rs:126:21 [INFO] [stderr] | [INFO] [stderr] 126 | case_name: case_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `case_name` [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/ir/spec/variant/union.rs:144:21 [INFO] [stderr] | [INFO] [stderr] 144 | case_name: case_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `case_name` [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/ir/spec/variant/container.rs:121:13 [INFO] [stderr] | [INFO] [stderr] 121 | virt: virt, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `virt` [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/ir/spec/variant/container.rs:117:21 [INFO] [stderr] | [INFO] [stderr] 117 | virt: virt, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `virt` [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/ir/spec/variant/container.rs:148:21 [INFO] [stderr] | [INFO] [stderr] 148 | child_handle: child_handle, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `child_handle` [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/ir/spec/variant/array.rs:75:13 [INFO] [stderr] | [INFO] [stderr] 75 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/ir/spec/variant/array.rs:73:17 [INFO] [stderr] | [INFO] [stderr] 73 | child_handle: child_handle, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `child_handle` [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/ir/spec/variant/simple_scalar.rs:105:17 [INFO] [stderr] | [INFO] [stderr] 105 | reference: reference, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `reference` [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/ir/spec/variant/simple_scalar.rs:111:13 [INFO] [stderr] | [INFO] [stderr] 111 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/ir/spec/variant/simple_scalar.rs:116:17 [INFO] [stderr] | [INFO] [stderr] 116 | target_type: target_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `target_type` [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/ir/spec/variant/simple_scalar.rs:117:17 [INFO] [stderr] | [INFO] [stderr] 117 | arguments: arguments, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `arguments` [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/ir/spec/reference/mod.rs:112:9 [INFO] [stderr] | [INFO] [stderr] 112 | up: up, [INFO] [stderr] | ^^^^^^ help: replace it with: `up` [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/ir/spec/data.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | reference: reference, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `reference` [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/ir/spec/data.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | access_time: access_time, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `access_time` [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/backend/imperative_base/size_of.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | arguments: arguments, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `arguments` [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/backend/imperative_base/size_of.rs:143:17 [INFO] [stderr] | [INFO] [stderr] 143 | cases: cases, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `cases` [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/backend/imperative_base/serialize.rs:42:13 [INFO] [stderr] | [INFO] [stderr] 42 | arguments: arguments, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `arguments` [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/backend/imperative_base/serialize.rs:134:17 [INFO] [stderr] | [INFO] [stderr] 134 | cases: cases, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `cases` [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/backend/imperative_base/deserialize.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | arguments: arguments, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `arguments` [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/backend/imperative_base/deserialize.rs:87:21 [INFO] [stderr] | [INFO] [stderr] 87 | fields: fields, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `fields` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/backend/imperative_base/deserialize.rs:180:17 [INFO] [stderr] | [INFO] [stderr] 180 | cases: cases, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `cases` [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/backend/imperative_base/reference.rs:107:41 [INFO] [stderr] | [INFO] [stderr] 107 | block: block, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/backend/imperative_base/reference.rs:116:41 [INFO] [stderr] | [INFO] [stderr] 116 | cases: cases, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `cases` [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/backend/imperative_base/reference.rs:165:9 [INFO] [stderr] | [INFO] [stderr] 165 | output_var: output_var, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `output_var` [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/backend/javascript/builder.rs:62:41 [INFO] [stderr] | [INFO] [stderr] 62 | name: name, expr: expr, }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/backend/javascript/builder.rs:62:53 [INFO] [stderr] | [INFO] [stderr] 62 | name: name, expr: expr, }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [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/backend/javascript/builder.rs:66:41 [INFO] [stderr] | [INFO] [stderr] 66 | name: name, expr: expr, }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/backend/javascript/builder.rs:66:53 [INFO] [stderr] | [INFO] [stderr] 66 | name: name, expr: expr, }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [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/backend/javascript/builder.rs:75:39 [INFO] [stderr] | [INFO] [stderr] 75 | self.0.push(Statement::Expr { expr: expr, }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [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/backend/javascript/builder.rs:80:13 [INFO] [stderr] | [INFO] [stderr] 80 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/backend/javascript/builder.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | args: args, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `args` [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/backend/javascript/builder.rs:82:13 [INFO] [stderr] | [INFO] [stderr] 82 | block: block, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/backend/javascript/builder.rs:87:40 [INFO] [stderr] | [INFO] [stderr] 87 | self.0.push(Statement::Scope { block: block }); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/backend/javascript/builder.rs:91:40 [INFO] [stderr] | [INFO] [stderr] 91 | self.0.push(Statement::Block { block: block }); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/backend/javascript/builder.rs:95:41 [INFO] [stderr] | [INFO] [stderr] 95 | self.0.push(Statement::Return { expr: expr }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [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/backend/javascript/builder.rs:99:42 [INFO] [stderr] | [INFO] [stderr] 99 | self.0.push(Statement::Comment { text: text }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `text` [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/backend/javascript/builder.rs:104:13 [INFO] [stderr] | [INFO] [stderr] 104 | init: init, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `init` [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/backend/javascript/builder.rs:105:13 [INFO] [stderr] | [INFO] [stderr] 105 | cond: cond, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `cond` [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/backend/javascript/builder.rs:106:13 [INFO] [stderr] | [INFO] [stderr] 106 | incr: incr, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `incr` [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/backend/javascript/builder.rs:107:13 [INFO] [stderr] | [INFO] [stderr] 107 | block: block, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/backend/javascript/builder.rs:113:13 [INFO] [stderr] | [INFO] [stderr] 113 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [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/backend/javascript/builder.rs:114:13 [INFO] [stderr] | [INFO] [stderr] 114 | cases: cases, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `cases` [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/backend/rust/builder.rs:54:56 [INFO] [stderr] | [INFO] [stderr] 54 | self.0.push(Statement::Assign { is_let: false, lhs: lhs, rhs: rhs }); [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/backend/rust/builder.rs:54:66 [INFO] [stderr] | [INFO] [stderr] 54 | self.0.push(Statement::Assign { is_let: false, lhs: lhs, rhs: rhs }); [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/backend/rust/builder.rs:57:55 [INFO] [stderr] | [INFO] [stderr] 57 | self.0.push(Statement::Assign { is_let: true, lhs: lhs, rhs: rhs }); [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/backend/rust/builder.rs:57:65 [INFO] [stderr] | [INFO] [stderr] 57 | self.0.push(Statement::Assign { is_let: true, lhs: lhs, rhs: rhs }); [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/backend/rust/builder.rs:65:40 [INFO] [stderr] | [INFO] [stderr] 65 | self.0.push(Statement::Block { block: block }); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/backend/rust/builder.rs:69:41 [INFO] [stderr] | [INFO] [stderr] 69 | self.0.push(Statement::Inline { block: block }); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/backend/rust/builder.rs:73:49 [INFO] [stderr] | [INFO] [stderr] 73 | self.0.push(Statement::DefineFunction { signature: signature, block: block }); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `signature` [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/backend/rust/builder.rs:73:71 [INFO] [stderr] | [INFO] [stderr] 73 | self.0.push(Statement::DefineFunction { signature: signature, block: block }); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/backend/rust/builder.rs:77:55 [INFO] [stderr] | [INFO] [stderr] 77 | self.0.push(Statement::For { condition: cond, block: block }); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/backend/rust/builder.rs:81:40 [INFO] [stderr] | [INFO] [stderr] 81 | self.0.push(Statement::Match { input: input, cases: cases }); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [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/backend/rust/builder.rs:81:54 [INFO] [stderr] | [INFO] [stderr] 81 | self.0.push(Statement::Match { input: input, cases: cases }); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `cases` [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/backend/python/builder.rs:45:41 [INFO] [stderr] | [INFO] [stderr] 45 | self.0.push(Statement::Assign { name: name, expr: expr, }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/backend/python/builder.rs:45:53 [INFO] [stderr] | [INFO] [stderr] 45 | self.0.push(Statement::Assign { name: name, expr: expr, }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [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/backend/python/builder.rs:59:55 [INFO] [stderr] | [INFO] [stderr] 59 | self.0.push(Statement::If { conds: chain, else_: else_ }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `else_` [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/backend/python/builder.rs:64:39 [INFO] [stderr] | [INFO] [stderr] 64 | self.0.push(Statement::Expr { expr: expr, }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [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/backend/python/builder.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/backend/python/builder.rs:70:13 [INFO] [stderr] | [INFO] [stderr] 70 | args: args, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `args` [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/backend/python/builder.rs:71:13 [INFO] [stderr] | [INFO] [stderr] 71 | block: block, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/backend/python/builder.rs:76:40 [INFO] [stderr] | [INFO] [stderr] 76 | self.0.push(Statement::Block { block: block }); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/backend/python/builder.rs:80:41 [INFO] [stderr] | [INFO] [stderr] 80 | self.0.push(Statement::Return { expr: expr }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [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/backend/python/builder.rs:84:42 [INFO] [stderr] | [INFO] [stderr] 84 | self.0.push(Statement::Comment { text: text }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `text` [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/backend/python/builder.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | expr: expr, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [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/backend/python/builder.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | block: block, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/ir/compilation_unit/mod.rs:168:13 [INFO] [stderr] | [INFO] [stderr] 168 | path: path, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `path` [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/ir/spec/variant/union.rs:105:17 [INFO] [stderr] | [INFO] [stderr] 105 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/ir/spec/variant/union.rs:107:21 [INFO] [stderr] | [INFO] [stderr] 107 | union_name: union_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `union_name` [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/ir/spec/variant/union.rs:109:21 [INFO] [stderr] | [INFO] [stderr] 109 | match_target_handle: match_target_handle, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `match_target_handle` [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/ir/spec/variant/union.rs:124:21 [INFO] [stderr] | [INFO] [stderr] 124 | match_val_str: match_val_str, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `match_val_str` [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/ir/spec/variant/union.rs:126:21 [INFO] [stderr] | [INFO] [stderr] 126 | case_name: case_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `case_name` [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/ir/spec/variant/union.rs:144:21 [INFO] [stderr] | [INFO] [stderr] 144 | case_name: case_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `case_name` [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/ir/spec/variant/container.rs:121:13 [INFO] [stderr] | [INFO] [stderr] 121 | virt: virt, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `virt` [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/ir/spec/variant/container.rs:117:21 [INFO] [stderr] | [INFO] [stderr] 117 | virt: virt, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `virt` [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/ir/spec/variant/container.rs:148:21 [INFO] [stderr] | [INFO] [stderr] 148 | child_handle: child_handle, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `child_handle` [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/ir/spec/variant/array.rs:75:13 [INFO] [stderr] | [INFO] [stderr] 75 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/ir/spec/variant/array.rs:73:17 [INFO] [stderr] | [INFO] [stderr] 73 | child_handle: child_handle, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `child_handle` [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/ir/spec/variant/simple_scalar.rs:105:17 [INFO] [stderr] | [INFO] [stderr] 105 | reference: reference, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `reference` [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/ir/spec/variant/simple_scalar.rs:111:13 [INFO] [stderr] | [INFO] [stderr] 111 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/ir/spec/variant/simple_scalar.rs:116:17 [INFO] [stderr] | [INFO] [stderr] 116 | target_type: target_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `target_type` [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/ir/spec/variant/simple_scalar.rs:117:17 [INFO] [stderr] | [INFO] [stderr] 117 | arguments: arguments, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `arguments` [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/ir/spec/reference/mod.rs:112:9 [INFO] [stderr] | [INFO] [stderr] 112 | up: up, [INFO] [stderr] | ^^^^^^ help: replace it with: `up` [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/ir/spec/data.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | reference: reference, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `reference` [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/ir/spec/data.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | access_time: access_time, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `access_time` [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/backend/imperative_base/size_of.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | arguments: arguments, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `arguments` [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/backend/imperative_base/size_of.rs:143:17 [INFO] [stderr] | [INFO] [stderr] 143 | cases: cases, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `cases` [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/backend/imperative_base/serialize.rs:42:13 [INFO] [stderr] | [INFO] [stderr] 42 | arguments: arguments, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `arguments` [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/backend/imperative_base/serialize.rs:134:17 [INFO] [stderr] | [INFO] [stderr] 134 | cases: cases, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `cases` [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/backend/imperative_base/deserialize.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | arguments: arguments, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `arguments` [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/backend/imperative_base/deserialize.rs:87:21 [INFO] [stderr] | [INFO] [stderr] 87 | fields: fields, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `fields` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/backend/imperative_base/deserialize.rs:180:17 [INFO] [stderr] | [INFO] [stderr] 180 | cases: cases, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `cases` [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/backend/imperative_base/reference.rs:107:41 [INFO] [stderr] | [INFO] [stderr] 107 | block: block, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/backend/imperative_base/reference.rs:116:41 [INFO] [stderr] | [INFO] [stderr] 116 | cases: cases, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `cases` [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/backend/imperative_base/reference.rs:165:9 [INFO] [stderr] | [INFO] [stderr] 165 | output_var: output_var, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `output_var` [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/backend/javascript/builder.rs:62:41 [INFO] [stderr] | [INFO] [stderr] 62 | name: name, expr: expr, }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/backend/javascript/builder.rs:62:53 [INFO] [stderr] | [INFO] [stderr] 62 | name: name, expr: expr, }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [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/backend/javascript/builder.rs:66:41 [INFO] [stderr] | [INFO] [stderr] 66 | name: name, expr: expr, }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/backend/javascript/builder.rs:66:53 [INFO] [stderr] | [INFO] [stderr] 66 | name: name, expr: expr, }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [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/backend/javascript/builder.rs:75:39 [INFO] [stderr] | [INFO] [stderr] 75 | self.0.push(Statement::Expr { expr: expr, }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [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/backend/javascript/builder.rs:80:13 [INFO] [stderr] | [INFO] [stderr] 80 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/backend/javascript/builder.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | args: args, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `args` [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/backend/javascript/builder.rs:82:13 [INFO] [stderr] | [INFO] [stderr] 82 | block: block, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/backend/javascript/builder.rs:87:40 [INFO] [stderr] | [INFO] [stderr] 87 | self.0.push(Statement::Scope { block: block }); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/backend/javascript/builder.rs:91:40 [INFO] [stderr] | [INFO] [stderr] 91 | self.0.push(Statement::Block { block: block }); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/backend/javascript/builder.rs:95:41 [INFO] [stderr] | [INFO] [stderr] 95 | self.0.push(Statement::Return { expr: expr }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [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/backend/javascript/builder.rs:99:42 [INFO] [stderr] | [INFO] [stderr] 99 | self.0.push(Statement::Comment { text: text }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `text` [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/backend/javascript/builder.rs:104:13 [INFO] [stderr] | [INFO] [stderr] 104 | init: init, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `init` [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/backend/javascript/builder.rs:105:13 [INFO] [stderr] | [INFO] [stderr] 105 | cond: cond, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `cond` [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/backend/javascript/builder.rs:106:13 [INFO] [stderr] | [INFO] [stderr] 106 | incr: incr, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `incr` [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/backend/javascript/builder.rs:107:13 [INFO] [stderr] | [INFO] [stderr] 107 | block: block, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/backend/javascript/builder.rs:113:13 [INFO] [stderr] | [INFO] [stderr] 113 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [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/backend/javascript/builder.rs:114:13 [INFO] [stderr] | [INFO] [stderr] 114 | cases: cases, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `cases` [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/backend/rust/builder.rs:54:56 [INFO] [stderr] | [INFO] [stderr] 54 | self.0.push(Statement::Assign { is_let: false, lhs: lhs, rhs: rhs }); [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/backend/rust/builder.rs:54:66 [INFO] [stderr] | [INFO] [stderr] 54 | self.0.push(Statement::Assign { is_let: false, lhs: lhs, rhs: rhs }); [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/backend/rust/builder.rs:57:55 [INFO] [stderr] | [INFO] [stderr] 57 | self.0.push(Statement::Assign { is_let: true, lhs: lhs, rhs: rhs }); [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/backend/rust/builder.rs:57:65 [INFO] [stderr] | [INFO] [stderr] 57 | self.0.push(Statement::Assign { is_let: true, lhs: lhs, rhs: rhs }); [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/backend/rust/builder.rs:65:40 [INFO] [stderr] | [INFO] [stderr] 65 | self.0.push(Statement::Block { block: block }); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/backend/rust/builder.rs:69:41 [INFO] [stderr] | [INFO] [stderr] 69 | self.0.push(Statement::Inline { block: block }); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/backend/rust/builder.rs:73:49 [INFO] [stderr] | [INFO] [stderr] 73 | self.0.push(Statement::DefineFunction { signature: signature, block: block }); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `signature` [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/backend/rust/builder.rs:73:71 [INFO] [stderr] | [INFO] [stderr] 73 | self.0.push(Statement::DefineFunction { signature: signature, block: block }); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/backend/rust/builder.rs:77:55 [INFO] [stderr] | [INFO] [stderr] 77 | self.0.push(Statement::For { condition: cond, block: block }); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/backend/rust/builder.rs:81:40 [INFO] [stderr] | [INFO] [stderr] 81 | self.0.push(Statement::Match { input: input, cases: cases }); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [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/backend/rust/builder.rs:81:54 [INFO] [stderr] | [INFO] [stderr] 81 | self.0.push(Statement::Match { input: input, cases: cases }); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `cases` [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/backend/python/builder.rs:45:41 [INFO] [stderr] | [INFO] [stderr] 45 | self.0.push(Statement::Assign { name: name, expr: expr, }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/backend/python/builder.rs:45:53 [INFO] [stderr] | [INFO] [stderr] 45 | self.0.push(Statement::Assign { name: name, expr: expr, }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [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/backend/python/builder.rs:59:55 [INFO] [stderr] | [INFO] [stderr] 59 | self.0.push(Statement::If { conds: chain, else_: else_ }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `else_` [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/backend/python/builder.rs:64:39 [INFO] [stderr] | [INFO] [stderr] 64 | self.0.push(Statement::Expr { expr: expr, }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [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/backend/python/builder.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/backend/python/builder.rs:70:13 [INFO] [stderr] | [INFO] [stderr] 70 | args: args, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `args` [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/backend/python/builder.rs:71:13 [INFO] [stderr] | [INFO] [stderr] 71 | block: block, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/backend/python/builder.rs:76:40 [INFO] [stderr] | [INFO] [stderr] 76 | self.0.push(Statement::Block { block: block }); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/backend/python/builder.rs:80:41 [INFO] [stderr] | [INFO] [stderr] 80 | self.0.push(Statement::Return { expr: expr }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [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/backend/python/builder.rs:84:42 [INFO] [stderr] | [INFO] [stderr] 84 | self.0.push(Statement::Comment { text: text }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `text` [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/backend/python/builder.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | expr: expr, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [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/backend/python/builder.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | block: block, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/frontend/protocol_spec/ast/mod.rs:83:13 [INFO] [stderr] | [INFO] [stderr] 83 | string: string, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `string` [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/frontend/protocol_spec/to_ir/type_spec.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | encoding: encoding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `encoding` [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/frontend/protocol_spec/to_ir/type_spec.rs:65:9 [INFO] [stderr] | [INFO] [stderr] 65 | signed: signed, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `signed` [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/frontend/protocol_spec/to_ir/type_spec.rs:66:9 [INFO] [stderr] | [INFO] [stderr] 66 | size: size, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `size` [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/frontend/protocol_spec/to_ir/compilation_unit.rs:82:21 [INFO] [stderr] | [INFO] [stderr] 82 | export: export, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `export` [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/frontend/protocol_spec/to_ir/compilation_unit.rs:84:21 [INFO] [stderr] | [INFO] [stderr] 84 | docstring: docstring, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `docstring` [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/frontend/protocol_spec/to_ir/compilation_unit.rs:116:21 [INFO] [stderr] | [INFO] [stderr] 116 | docstring: docstring, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `docstring` [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/frontend/protocol_spec/to_ir/native_type.rs:35:21 [INFO] [stderr] | [INFO] [stderr] 35 | access_time: access_time, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `access_time` [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/frontend/protocol_spec/to_ir/native_type.rs:36:21 [INFO] [stderr] | [INFO] [stderr] 36 | type_spec: type_spec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `type_spec` [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/test_harness.rs:66:13 [INFO] [stderr] | [INFO] [stderr] 66 | json_value: json_value, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `json_value` [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/test_harness.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/test_harness.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | values: values, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `values` [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/old_protocol_json_to_pds/namespace.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | items: items, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `items` [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/old_protocol_json_to_pds/typ.rs:54:9 [INFO] [stderr] | [INFO] [stderr] 54 | block: block, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/old_protocol_json_to_pds/typ.rs:74:9 [INFO] [stderr] | [INFO] [stderr] 74 | args: args, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `args` [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/old_protocol_json_to_pds/typ.rs:110:13 [INFO] [stderr] | [INFO] [stderr] 110 | items: items, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `items` [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/old_protocol_json_to_pds/typ.rs:117:9 [INFO] [stderr] | [INFO] [stderr] 117 | block: block, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/frontend/protocol_spec/ast/mod.rs:83:13 [INFO] [stderr] | [INFO] [stderr] 83 | string: string, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `string` [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/frontend/protocol_spec/to_ir/type_spec.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | encoding: encoding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `encoding` [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/frontend/protocol_spec/to_ir/type_spec.rs:65:9 [INFO] [stderr] | [INFO] [stderr] 65 | signed: signed, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `signed` [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/frontend/protocol_spec/to_ir/type_spec.rs:66:9 [INFO] [stderr] | [INFO] [stderr] 66 | size: size, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `size` [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/frontend/protocol_spec/to_ir/compilation_unit.rs:82:21 [INFO] [stderr] | [INFO] [stderr] 82 | export: export, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `export` [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/frontend/protocol_spec/to_ir/compilation_unit.rs:84:21 [INFO] [stderr] | [INFO] [stderr] 84 | docstring: docstring, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `docstring` [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/frontend/protocol_spec/to_ir/compilation_unit.rs:116:21 [INFO] [stderr] | [INFO] [stderr] 116 | docstring: docstring, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `docstring` [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/frontend/protocol_spec/to_ir/native_type.rs:35:21 [INFO] [stderr] | [INFO] [stderr] 35 | access_time: access_time, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `access_time` [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/frontend/protocol_spec/to_ir/native_type.rs:36:21 [INFO] [stderr] | [INFO] [stderr] 36 | type_spec: type_spec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `type_spec` [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/test_harness.rs:66:13 [INFO] [stderr] | [INFO] [stderr] 66 | json_value: json_value, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `json_value` [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/test_harness.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/test_harness.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | values: values, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `values` [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/old_protocol_json_to_pds/namespace.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | items: items, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `items` [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/old_protocol_json_to_pds/typ.rs:54:9 [INFO] [stderr] | [INFO] [stderr] 54 | block: block, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/old_protocol_json_to_pds/typ.rs:74:9 [INFO] [stderr] | [INFO] [stderr] 74 | args: args, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `args` [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/old_protocol_json_to_pds/typ.rs:110:13 [INFO] [stderr] | [INFO] [stderr] 110 | items: items, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `items` [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/old_protocol_json_to_pds/typ.rs:117:9 [INFO] [stderr] | [INFO] [stderr] 117 | block: block, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/lib.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | #[macro_use] extern crate lazy_static; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/lib.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | #[macro_use] extern crate matches; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Container`, `WeakContainer` [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:5:22 [INFO] [stderr] | [INFO] [stderr] 5 | use ::rc_container::{Container, WeakContainer}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::ir::spec::data::ReferenceAccessTime` [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use ::ir::spec::data::ReferenceAccessTime; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `IntegerSize`, `IntegerSpec`, `TypeSpecContainer` [INFO] [stderr] --> src/ir/spec/variant/array.rs:6:23 [INFO] [stderr] | [INFO] [stderr] 6 | use ::ir::type_spec::{TypeSpecContainer, WeakTypeSpecContainer, TypeSpecVariant, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] 7 | ArraySpec, ArraySize, IntegerSpec, IntegerSize}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::ir::compilation_unit::TypePath` [INFO] [stderr] --> src/ir/spec/variant/array.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use ::ir::compilation_unit::TypePath; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `CanonicalNSPath`, `TypeKind` [INFO] [stderr] --> src/ir/spec/variant/simple_scalar.rs:9:60 [INFO] [stderr] | [INFO] [stderr] 9 | use ::ir::compilation_unit::{TypePath, NamedTypeContainer, TypeKind, RelativeNSPath, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 10 | CanonicalNSPath}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `CanonicalNSPath`, `RelativeNSPath`, `TypePath` [INFO] [stderr] --> src/ir/spec/data.rs:1:30 [INFO] [stderr] | [INFO] [stderr] 1 | use ::ir::compilation_unit::{TypePath, RelativeNSPath, CanonicalNSPath}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `EnumSpec` [INFO] [stderr] --> src/ir/type_spec/literal.rs:5:13 [INFO] [stderr] | [INFO] [stderr] 5 | EnumSpec}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::std::marker::PhantomData` [INFO] [stderr] --> src/ir/name.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use ::std::marker::PhantomData; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::nom::IResult` [INFO] [stderr] --> src/ir/name.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use ::nom::IResult; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/backend/common/formatter.rs:41:1 [INFO] [stderr] | [INFO] [stderr] 41 | / macro_rules! pf_push { [INFO] [stderr] 42 | | ($f:expr, $fmt:expr) => ($f.push($fmt)); [INFO] [stderr] 43 | | ($f:expr, $fmt:expr, $($arg:tt)*) => ($f.push(&format!($fmt, $($arg)*))); [INFO] [stderr] 44 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/backend/common/formatter.rs:46:1 [INFO] [stderr] | [INFO] [stderr] 46 | / macro_rules! pf_push_line { [INFO] [stderr] 47 | | ($f:expr, $fmt:expr) => { [INFO] [stderr] 48 | | pf_push!($f, $fmt); [INFO] [stderr] 49 | | $f.line(); [INFO] [stderr] ... | [INFO] [stderr] 54 | | }; [INFO] [stderr] 55 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::ir::spec::data::ReferenceAccessTime` [INFO] [stderr] --> src/backend/imperative_base/deserialize.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use ::ir::spec::data::ReferenceAccessTime; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `EnumSpec`, `TypeSpecVariant` [INFO] [stderr] --> src/backend/imperative_base/reference.rs:6:23 [INFO] [stderr] | [INFO] [stderr] 6 | use ::ir::type_spec::{TypeSpecVariant, EnumSpec}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ir::compilation_unit::TypePath` [INFO] [stderr] --> src/backend/javascript/cu_to_js.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use ir::compilation_unit::TypePath; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `to_value` [INFO] [stderr] --> src/backend/json_spec/mod.rs:6:27 [INFO] [stderr] | [INFO] [stderr] 6 | use ::serde_json::{Value, to_value}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `TypePath` [INFO] [stderr] --> src/frontend/protocol_json/mod.rs:5:30 [INFO] [stderr] | [INFO] [stderr] 5 | use ::ir::compilation_unit::{TypePath, RelativeNSPath}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `TypePath` [INFO] [stderr] --> src/frontend/protocol_json/variants/mod.rs:6:30 [INFO] [stderr] | [INFO] [stderr] 6 | use ::ir::compilation_unit::{TypePath, RelativeNSPath}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `TypePath` [INFO] [stderr] --> src/frontend/protocol_json/variants/array.rs:2:30 [INFO] [stderr] | [INFO] [stderr] 2 | use ::ir::compilation_unit::{TypePath, RelativeNSPath}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `TypePath` [INFO] [stderr] --> src/frontend/protocol_json/variants/union.rs:4:30 [INFO] [stderr] | [INFO] [stderr] 4 | use ::ir::compilation_unit::{TypePath, RelativeNSPath}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `TypePath` [INFO] [stderr] --> src/frontend/protocol_json/variants/container.rs:7:30 [INFO] [stderr] | [INFO] [stderr] 7 | use ::ir::compilation_unit::{TypePath, RelativeNSPath}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `CanonicalNSPath`, `TypePath` [INFO] [stderr] --> src/frontend/protocol_spec/ast/mod.rs:4:30 [INFO] [stderr] | [INFO] [stderr] 4 | use ::ir::compilation_unit::{TypePath, CanonicalNSPath}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this looks like an `else if` but the `else` is missing [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:58:60 [INFO] [stderr] | [INFO] [stderr] 58 | 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: unused import: `Ident` [INFO] [stderr] --> src/frontend/protocol_spec/to_ir/spec.rs:7:25 [INFO] [stderr] | [INFO] [stderr] 7 | use super::super::ast::{Ident, Statement, Value}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `RelativeNSPath` [INFO] [stderr] --> src/frontend/protocol_spec/to_ir/compilation_unit.rs:3:47 [INFO] [stderr] | [INFO] [stderr] 3 | use ::ir::compilation_unit::{CompilationUnit, RelativeNSPath, CanonicalNSPath, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `IntegerSize`, `IntegerSpec` [INFO] [stderr] --> src/frontend/protocol_spec/to_ir/compilation_unit.rs:6:40 [INFO] [stderr] | [INFO] [stderr] 6 | use ::ir::type_spec::{TypeSpecVariant, IntegerSpec, IntegerSize}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/pass/resolve_reference.rs:171:13 [INFO] [stderr] | [INFO] [stderr] 171 | return Ok(ResolveItemResult::Ok((type_next, node_next))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ResolveItemResult::Ok((type_next, node_next)))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/pass/resolve_reference.rs:207:13 [INFO] [stderr] | [INFO] [stderr] 207 | return Ok(ResolveItemResult::Ok((type_next, node_next))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ResolveItemResult::Ok((type_next, node_next)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/lib.rs:48:1 [INFO] [stderr] | [INFO] [stderr] 48 | / macro_rules! unwrap_ok { [INFO] [stderr] 49 | | ($e:expr) => { [INFO] [stderr] 50 | | match $e { [INFO] [stderr] 51 | | Ok(inner) => inner, [INFO] [stderr] ... | [INFO] [stderr] 57 | | } [INFO] [stderr] 58 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/lib.rs:60:1 [INFO] [stderr] | [INFO] [stderr] 60 | / macro_rules! unwrap_error { [INFO] [stderr] 61 | | ($e:expr) => { [INFO] [stderr] 62 | | match $e { [INFO] [stderr] 63 | | Ok(inner) => { [INFO] [stderr] ... | [INFO] [stderr] 68 | | } [INFO] [stderr] 69 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/lib.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | #[macro_use] extern crate lazy_static; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/lib.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | #[macro_use] extern crate matches; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Container`, `WeakContainer` [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:5:22 [INFO] [stderr] | [INFO] [stderr] 5 | use ::rc_container::{Container, WeakContainer}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::ir::spec::data::ReferenceAccessTime` [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use ::ir::spec::data::ReferenceAccessTime; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `IntegerSize`, `IntegerSpec`, `TypeSpecContainer` [INFO] [stderr] --> src/ir/spec/variant/array.rs:6:23 [INFO] [stderr] | [INFO] [stderr] 6 | use ::ir::type_spec::{TypeSpecContainer, WeakTypeSpecContainer, TypeSpecVariant, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] 7 | ArraySpec, ArraySize, IntegerSpec, IntegerSize}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::ir::compilation_unit::TypePath` [INFO] [stderr] --> src/ir/spec/variant/array.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use ::ir::compilation_unit::TypePath; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `CanonicalNSPath`, `TypeKind` [INFO] [stderr] --> src/ir/spec/variant/simple_scalar.rs:9:60 [INFO] [stderr] | [INFO] [stderr] 9 | use ::ir::compilation_unit::{TypePath, NamedTypeContainer, TypeKind, RelativeNSPath, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 10 | CanonicalNSPath}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `CanonicalNSPath`, `RelativeNSPath`, `TypePath` [INFO] [stderr] --> src/ir/spec/data.rs:1:30 [INFO] [stderr] | [INFO] [stderr] 1 | use ::ir::compilation_unit::{TypePath, RelativeNSPath, CanonicalNSPath}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `EnumSpec` [INFO] [stderr] --> src/ir/type_spec/literal.rs:5:13 [INFO] [stderr] | [INFO] [stderr] 5 | EnumSpec}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::std::marker::PhantomData` [INFO] [stderr] --> src/ir/name.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use ::std::marker::PhantomData; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::nom::IResult` [INFO] [stderr] --> src/ir/name.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use ::nom::IResult; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/backend/common/formatter.rs:41:1 [INFO] [stderr] | [INFO] [stderr] 41 | / macro_rules! pf_push { [INFO] [stderr] 42 | | ($f:expr, $fmt:expr) => ($f.push($fmt)); [INFO] [stderr] 43 | | ($f:expr, $fmt:expr, $($arg:tt)*) => ($f.push(&format!($fmt, $($arg)*))); [INFO] [stderr] 44 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/backend/common/formatter.rs:46:1 [INFO] [stderr] | [INFO] [stderr] 46 | / macro_rules! pf_push_line { [INFO] [stderr] 47 | | ($f:expr, $fmt:expr) => { [INFO] [stderr] 48 | | pf_push!($f, $fmt); [INFO] [stderr] 49 | | $f.line(); [INFO] [stderr] ... | [INFO] [stderr] 54 | | }; [INFO] [stderr] 55 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::ir::spec::data::ReferenceAccessTime` [INFO] [stderr] --> src/backend/imperative_base/deserialize.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use ::ir::spec::data::ReferenceAccessTime; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `EnumSpec`, `TypeSpecVariant` [INFO] [stderr] --> src/backend/imperative_base/reference.rs:6:23 [INFO] [stderr] | [INFO] [stderr] 6 | use ::ir::type_spec::{TypeSpecVariant, EnumSpec}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ir::compilation_unit::TypePath` [INFO] [stderr] --> src/backend/javascript/cu_to_js.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use ir::compilation_unit::TypePath; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `to_value` [INFO] [stderr] --> src/backend/json_spec/mod.rs:6:27 [INFO] [stderr] | [INFO] [stderr] 6 | use ::serde_json::{Value, to_value}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `TypePath` [INFO] [stderr] --> src/frontend/protocol_json/mod.rs:5:30 [INFO] [stderr] | [INFO] [stderr] 5 | use ::ir::compilation_unit::{TypePath, RelativeNSPath}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `TypePath` [INFO] [stderr] --> src/frontend/protocol_json/variants/mod.rs:6:30 [INFO] [stderr] | [INFO] [stderr] 6 | use ::ir::compilation_unit::{TypePath, RelativeNSPath}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `TypePath` [INFO] [stderr] --> src/frontend/protocol_json/variants/array.rs:2:30 [INFO] [stderr] | [INFO] [stderr] 2 | use ::ir::compilation_unit::{TypePath, RelativeNSPath}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `TypePath` [INFO] [stderr] --> src/frontend/protocol_json/variants/union.rs:4:30 [INFO] [stderr] | [INFO] [stderr] 4 | use ::ir::compilation_unit::{TypePath, RelativeNSPath}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `TypePath` [INFO] [stderr] --> src/frontend/protocol_json/variants/container.rs:7:30 [INFO] [stderr] | [INFO] [stderr] 7 | use ::ir::compilation_unit::{TypePath, RelativeNSPath}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `CanonicalNSPath`, `TypePath` [INFO] [stderr] --> src/frontend/protocol_spec/ast/mod.rs:4:30 [INFO] [stderr] | [INFO] [stderr] 4 | use ::ir::compilation_unit::{TypePath, CanonicalNSPath}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this looks like an `else if` but the `else` is missing [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:58:60 [INFO] [stderr] | [INFO] [stderr] 58 | 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: unused import: `super::ir_to_spec` [INFO] [stderr] --> src/frontend/protocol_spec/from_ir.rs:94:9 [INFO] [stderr] | [INFO] [stderr] 94 | use super::ir_to_spec; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `self::protocol_spec::ast::printer::print` [INFO] [stderr] --> src/frontend/protocol_spec/from_ir.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | use self::protocol_spec::ast::printer::print; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `self::protocol_spec::ast::Block` [INFO] [stderr] --> src/frontend/protocol_spec/from_ir.rs:98:9 [INFO] [stderr] | [INFO] [stderr] 98 | use self::protocol_spec::ast::Block; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Ident` [INFO] [stderr] --> src/frontend/protocol_spec/to_ir/spec.rs:7:25 [INFO] [stderr] | [INFO] [stderr] 7 | use super::super::ast::{Ident, Statement, Value}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `RelativeNSPath` [INFO] [stderr] --> src/frontend/protocol_spec/to_ir/compilation_unit.rs:3:47 [INFO] [stderr] | [INFO] [stderr] 3 | use ::ir::compilation_unit::{CompilationUnit, RelativeNSPath, CanonicalNSPath, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `IntegerSize`, `IntegerSpec` [INFO] [stderr] --> src/frontend/protocol_spec/to_ir/compilation_unit.rs:6:40 [INFO] [stderr] | [INFO] [stderr] 6 | use ::ir::type_spec::{TypeSpecVariant, IntegerSpec, IntegerSize}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/pass/resolve_reference.rs:171:13 [INFO] [stderr] | [INFO] [stderr] 171 | return Ok(ResolveItemResult::Ok((type_next, node_next))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ResolveItemResult::Ok((type_next, node_next)))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/pass/resolve_reference.rs:207:13 [INFO] [stderr] | [INFO] [stderr] 207 | return Ok(ResolveItemResult::Ok((type_next, node_next))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ResolveItemResult::Ok((type_next, node_next)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/lib.rs:48:1 [INFO] [stderr] | [INFO] [stderr] 48 | / macro_rules! unwrap_ok { [INFO] [stderr] 49 | | ($e:expr) => { [INFO] [stderr] 50 | | match $e { [INFO] [stderr] 51 | | Ok(inner) => inner, [INFO] [stderr] ... | [INFO] [stderr] 57 | | } [INFO] [stderr] 58 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/lib.rs:60:1 [INFO] [stderr] | [INFO] [stderr] 60 | / macro_rules! unwrap_error { [INFO] [stderr] 61 | | ($e:expr) => { [INFO] [stderr] 62 | | match $e { [INFO] [stderr] 63 | | Ok(inner) => { [INFO] [stderr] ... | [INFO] [stderr] 68 | | } [INFO] [stderr] 69 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/backend/imperative_base/mod.rs:199:9 [INFO] [stderr] | [INFO] [stderr] 199 | _ => unimplemented!(), [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_patterns)] on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:276:9 [INFO] [stderr] | [INFO] [stderr] 276 | _ => unimplemented!(), [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/backend/python/ib_to_py.rs:253:9 [INFO] [stderr] | [INFO] [stderr] 253 | _ => unimplemented!(), [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | _ => None, [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:126:17 [INFO] [stderr] | [INFO] [stderr] 126 | _ => (), [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:179:17 [INFO] [stderr] | [INFO] [stderr] 179 | _ => panic!(), [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/ir/type_spec/literal.rs:90:17 [INFO] [stderr] | [INFO] [stderr] 90 | fn parse_binary(data: &BinarySpec, input_str: &str) -> Result { [INFO] [stderr] | ^^^^ help: consider using `_data` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `type_spec` [INFO] [stderr] --> src/backend/imperative_base/reference.rs:81:31 [INFO] [stderr] | [INFO] [stderr] 81 | ref node, ref type_spec, .. }) => { [INFO] [stderr] | ^^^^^^^^^ help: try ignoring the field: `type_spec: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `type_spec` [INFO] [stderr] --> src/backend/imperative_base/reference.rs:134:21 [INFO] [stderr] | [INFO] [stderr] 134 | ref type_spec, .. }) => { [INFO] [stderr] | ^^^^^^^^^ help: try ignoring the field: `type_spec: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `type_name` [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:126:58 [INFO] [stderr] | [INFO] [stderr] 126 | ib::Operation::TypeCall { ref input_var, ref type_name, [INFO] [stderr] | ^^^^^^^^^ help: try ignoring the field: `type_name: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `default` [INFO] [stderr] --> src/backend/rust/ib_to_rs.rs:39:57 [INFO] [stderr] | [INFO] [stderr] 39 | ref cases, ref default, ref enum_type } } => { [INFO] [stderr] | ^^^^^^^ help: consider using `_default` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `enum_type` [INFO] [stderr] --> src/backend/rust/ib_to_rs.rs:39:70 [INFO] [stderr] | [INFO] [stderr] 39 | ref cases, ref default, ref enum_type } } => { [INFO] [stderr] | ^^^^^^^^^ help: consider using `_enum_type` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `typ_name_size_of` [INFO] [stderr] --> src/backend/rust/cu_to_rs.rs:33:13 [INFO] [stderr] | [INFO] [stderr] 33 | let typ_name_size_of = format!("{}_size_of", typ_base_name); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using `_typ_name_size_of` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `typ_name_deserialize` [INFO] [stderr] --> src/backend/rust/cu_to_rs.rs:35:13 [INFO] [stderr] | [INFO] [stderr] 35 | let typ_name_deserialize = format!("{}_deserialize", typ_base_name); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `_typ_name_deserialize` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `length_var` [INFO] [stderr] --> src/backend/python/ib_to_py.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | let length_var = format!("{}_length", index_var); [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_length_var` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `type_name` [INFO] [stderr] --> src/backend/python/ib_to_py.rs:113:58 [INFO] [stderr] | [INFO] [stderr] 113 | ib::Operation::TypeCall { ref input_var, ref type_name, [INFO] [stderr] | ^^^^^^^^^ help: try ignoring the field: `type_name: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `native` [INFO] [stderr] --> src/backend/json_spec/mod.rs:34:34 [INFO] [stderr] | [INFO] [stderr] 34 | TypeKind::Native(ref native) => { [INFO] [stderr] | ^^^^^^ help: consider using `_native` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `typ_data` [INFO] [stderr] --> src/frontend/protocol_spec/from_ir.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | let typ_data = &typ_inner.data; [INFO] [stderr] | ^^^^^^^^ help: consider using `_typ_data` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `target` [INFO] [stderr] --> src/pass/resolve_reference.rs:213:23 [INFO] [stderr] | [INFO] [stderr] 213 | fn validate_causality(target: &mut ReferenceData) -> Result<()> { [INFO] [stderr] | ^^^^^^ help: consider using `_target` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/ir/spec/variant/simple_scalar.rs:39:24 [INFO] [stderr] | [INFO] [stderr] 39 | fn get_type(&self, data: &TypeData) -> VariantType { [INFO] [stderr] | ^^^^ help: consider using `_data` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/ir/spec/variant/simple_scalar.rs:56:53 [INFO] [stderr] | [INFO] [stderr] 56 | CompilePass::ResolveReferencedTypes(ref path, ref cu) => { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/ir/spec/variant/mod.rs:64:28 [INFO] [stderr] | [INFO] [stderr] 64 | pub fn get_type(&self, data: &TypeData) -> VariantType { [INFO] [stderr] | ^^^^ help: consider using `_data` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `count_root_node` [INFO] [stderr] --> src/backend/imperative_base/deserialize.rs:101:13 [INFO] [stderr] | [INFO] [stderr] 101 | let count_root_node = data.get_reference_root(self.count_handle).upgrade(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using `_count_root_node` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `item_var` [INFO] [stderr] --> src/backend/imperative_base/deserialize.rs:109:13 [INFO] [stderr] | [INFO] [stderr] 109 | let item_var = format!("array_{}_index", ident); [INFO] [stderr] | ^^^^^^^^ help: consider using `_item_var` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ir/spec/variant/simple_scalar.rs:100:13 [INFO] [stderr] | [INFO] [stderr] 100 | let mut data = TypeData::default(); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/backend/imperative_base/mod.rs:199:9 [INFO] [stderr] | [INFO] [stderr] 199 | _ => unimplemented!(), [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_patterns)] on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:276:9 [INFO] [stderr] | [INFO] [stderr] 276 | _ => unimplemented!(), [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/backend/python/ib_to_py.rs:253:9 [INFO] [stderr] | [INFO] [stderr] 253 | _ => unimplemented!(), [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | _ => None, [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:126:17 [INFO] [stderr] | [INFO] [stderr] 126 | _ => (), [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:179:17 [INFO] [stderr] | [INFO] [stderr] 179 | _ => panic!(), [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/ir/type_spec/literal.rs:90:17 [INFO] [stderr] | [INFO] [stderr] 90 | fn parse_binary(data: &BinarySpec, input_str: &str) -> Result { [INFO] [stderr] | ^^^^ help: consider using `_data` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `type_spec` [INFO] [stderr] --> src/backend/imperative_base/reference.rs:81:31 [INFO] [stderr] | [INFO] [stderr] 81 | ref node, ref type_spec, .. }) => { [INFO] [stderr] | ^^^^^^^^^ help: try ignoring the field: `type_spec: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `type_spec` [INFO] [stderr] --> src/backend/imperative_base/reference.rs:134:21 [INFO] [stderr] | [INFO] [stderr] 134 | ref type_spec, .. }) => { [INFO] [stderr] | ^^^^^^^^^ help: try ignoring the field: `type_spec: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `type_name` [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:126:58 [INFO] [stderr] | [INFO] [stderr] 126 | ib::Operation::TypeCall { ref input_var, ref type_name, [INFO] [stderr] | ^^^^^^^^^ help: try ignoring the field: `type_name: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `default` [INFO] [stderr] --> src/backend/rust/ib_to_rs.rs:39:57 [INFO] [stderr] | [INFO] [stderr] 39 | ref cases, ref default, ref enum_type } } => { [INFO] [stderr] | ^^^^^^^ help: consider using `_default` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `enum_type` [INFO] [stderr] --> src/backend/rust/ib_to_rs.rs:39:70 [INFO] [stderr] | [INFO] [stderr] 39 | ref cases, ref default, ref enum_type } } => { [INFO] [stderr] | ^^^^^^^^^ help: consider using `_enum_type` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `typ_name_size_of` [INFO] [stderr] --> src/backend/rust/cu_to_rs.rs:33:13 [INFO] [stderr] | [INFO] [stderr] 33 | let typ_name_size_of = format!("{}_size_of", typ_base_name); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using `_typ_name_size_of` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `typ_name_deserialize` [INFO] [stderr] --> src/backend/rust/cu_to_rs.rs:35:13 [INFO] [stderr] | [INFO] [stderr] 35 | let typ_name_deserialize = format!("{}_deserialize", typ_base_name); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `_typ_name_deserialize` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `length_var` [INFO] [stderr] --> src/backend/python/ib_to_py.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | let length_var = format!("{}_length", index_var); [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_length_var` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `type_name` [INFO] [stderr] --> src/backend/python/ib_to_py.rs:113:58 [INFO] [stderr] | [INFO] [stderr] 113 | ib::Operation::TypeCall { ref input_var, ref type_name, [INFO] [stderr] | ^^^^^^^^^ help: try ignoring the field: `type_name: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `native` [INFO] [stderr] --> src/backend/json_spec/mod.rs:34:34 [INFO] [stderr] | [INFO] [stderr] 34 | TypeKind::Native(ref native) => { [INFO] [stderr] | ^^^^^^ help: consider using `_native` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `typ_data` [INFO] [stderr] --> src/frontend/protocol_spec/from_ir.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | let typ_data = &typ_inner.data; [INFO] [stderr] | ^^^^^^^^ help: consider using `_typ_data` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `target` [INFO] [stderr] --> src/pass/resolve_reference.rs:213:23 [INFO] [stderr] | [INFO] [stderr] 213 | fn validate_causality(target: &mut ReferenceData) -> Result<()> { [INFO] [stderr] | ^^^^^^ help: consider using `_target` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/ir/spec/variant/simple_scalar.rs:39:24 [INFO] [stderr] | [INFO] [stderr] 39 | fn get_type(&self, data: &TypeData) -> VariantType { [INFO] [stderr] | ^^^^ help: consider using `_data` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/ir/spec/variant/simple_scalar.rs:56:53 [INFO] [stderr] | [INFO] [stderr] 56 | CompilePass::ResolveReferencedTypes(ref path, ref cu) => { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/ir/spec/variant/mod.rs:64:28 [INFO] [stderr] | [INFO] [stderr] 64 | pub fn get_type(&self, data: &TypeData) -> VariantType { [INFO] [stderr] | ^^^^ help: consider using `_data` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `count_root_node` [INFO] [stderr] --> src/backend/imperative_base/deserialize.rs:101:13 [INFO] [stderr] | [INFO] [stderr] 101 | let count_root_node = data.get_reference_root(self.count_handle).upgrade(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using `_count_root_node` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `item_var` [INFO] [stderr] --> src/backend/imperative_base/deserialize.rs:109:13 [INFO] [stderr] | [INFO] [stderr] 109 | let item_var = format!("array_{}_index", ident); [INFO] [stderr] | ^^^^^^^^ help: consider using `_item_var` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ir/spec/variant/simple_scalar.rs:100:13 [INFO] [stderr] | [INFO] [stderr] 100 | let mut data = TypeData::default(); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `WeakDefinedTypeSpecContainer` [INFO] [stderr] --> src/ir/compilation_unit/defined_type_spec.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | pub type WeakDefinedTypeSpecContainer = WeakContainer; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `HexOne` [INFO] [stderr] --> src/ir/type_spec/literal.rs:86:5 [INFO] [stderr] | [INFO] [stderr] 86 | HexOne(bool), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `HexTwo` [INFO] [stderr] --> src/ir/type_spec/literal.rs:87:5 [INFO] [stderr] | [INFO] [stderr] 87 | HexTwo(u8, bool), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `parse` [INFO] [stderr] --> src/ir/target_type.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | fn parse(&self, raw: &str) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Integer` [INFO] [stderr] --> src/ir/target_type.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | Integer(u64), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Bytes` [INFO] [stderr] --> src/ir/target_type.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | Bytes(Vec), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Enum` [INFO] [stderr] --> src/ir/target_type.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | Enum(String), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_type` [INFO] [stderr] --> src/ir/target_type.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | fn get_type(&self) -> TargetType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `test_compile` [INFO] [stderr] --> src/backend/imperative_base/tests/mod.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | fn test_compile(spec: &str) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `AssignBlock` [INFO] [stderr] --> src/backend/rust/builder.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | / AssignBlock { [INFO] [stderr] 11 | | is_let: bool, [INFO] [stderr] 12 | | lhs: String, [INFO] [stderr] 13 | | rhs: Block, [INFO] [stderr] 14 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Block` [INFO] [stderr] --> src/backend/rust/builder.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | / Block { [INFO] [stderr] 19 | | block: Block, [INFO] [stderr] 20 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Module` [INFO] [stderr] --> src/backend/rust/builder.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | / Module { [INFO] [stderr] 25 | | name: String, [INFO] [stderr] 26 | | block: Block, [INFO] [stderr] 27 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `block` [INFO] [stderr] --> src/backend/rust/builder.rs:64:5 [INFO] [stderr] | [INFO] [stderr] 64 | pub fn block(&mut self, block: Block) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `format_error` [INFO] [stderr] --> src/frontend/protocol_spec/ast/parser.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | fn format_error(input: &str, error: pds::ParseError) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `ir_to_spec` [INFO] [stderr] --> src/frontend/protocol_spec/from_ir.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | fn ir_to_spec(type_name: String, typ: TypeContainer) -> Statement { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `ir_to_spec_inner` [INFO] [stderr] --> src/frontend/protocol_spec/from_ir.rs:26:1 [INFO] [stderr] | [INFO] [stderr] 26 | fn ir_to_spec_inner(typ: TypeContainer) -> Statement { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ir/compilation_unit/path.rs:115:5 [INFO] [stderr] | [INFO] [stderr] 115 | / pub fn elements<'a>(&'a self) -> &'a [String] { [INFO] [stderr] 116 | | match *self { [INFO] [stderr] 117 | | RelativeNSPath::Absolute(ref inner) => inner, [INFO] [stderr] 118 | | RelativeNSPath::Relative(ref inner) => inner, [INFO] [stderr] 119 | | } [INFO] [stderr] 120 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `WeakDefinedTypeSpecContainer` [INFO] [stderr] --> src/ir/compilation_unit/defined_type_spec.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | pub type WeakDefinedTypeSpecContainer = WeakContainer; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `HexOne` [INFO] [stderr] --> src/ir/type_spec/literal.rs:86:5 [INFO] [stderr] | [INFO] [stderr] 86 | HexOne(bool), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `HexTwo` [INFO] [stderr] --> src/ir/type_spec/literal.rs:87:5 [INFO] [stderr] | [INFO] [stderr] 87 | HexTwo(u8, bool), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `parse` [INFO] [stderr] --> src/ir/target_type.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | fn parse(&self, raw: &str) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Integer` [INFO] [stderr] --> src/ir/target_type.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | Integer(u64), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Bytes` [INFO] [stderr] --> src/ir/target_type.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | Bytes(Vec), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Enum` [INFO] [stderr] --> src/ir/target_type.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | Enum(String), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ir/compilation_unit/path.rs:161:5 [INFO] [stderr] | [INFO] [stderr] 161 | / pub fn simple_str<'a>(&'a self) -> Option<&'a str> { [INFO] [stderr] 162 | | match *self { [INFO] [stderr] 163 | | RelativeNSPath::Absolute(_) => None, [INFO] [stderr] 164 | | //bail!("absolute path cannot be used as simple string"), [INFO] [stderr] ... | [INFO] [stderr] 173 | | } [INFO] [stderr] 174 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_type` [INFO] [stderr] --> src/ir/target_type.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | fn get_type(&self) -> TargetType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `AssignBlock` [INFO] [stderr] --> src/backend/rust/builder.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | / AssignBlock { [INFO] [stderr] 11 | | is_let: bool, [INFO] [stderr] 12 | | lhs: String, [INFO] [stderr] 13 | | rhs: Block, [INFO] [stderr] 14 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Block` [INFO] [stderr] --> src/backend/rust/builder.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | / Block { [INFO] [stderr] 19 | | block: Block, [INFO] [stderr] 20 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Module` [INFO] [stderr] --> src/backend/rust/builder.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | / Module { [INFO] [stderr] 25 | | name: String, [INFO] [stderr] 26 | | block: Block, [INFO] [stderr] 27 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `block` [INFO] [stderr] --> src/backend/rust/builder.rs:64:5 [INFO] [stderr] | [INFO] [stderr] 64 | pub fn block(&mut self, block: Block) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `format_error` [INFO] [stderr] --> src/frontend/protocol_spec/ast/parser.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | fn format_error(input: &str, error: pds::ParseError) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `ir_to_spec` [INFO] [stderr] --> src/frontend/protocol_spec/from_ir.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | fn ir_to_spec(type_name: String, typ: TypeContainer) -> Statement { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `ir_to_spec_inner` [INFO] [stderr] --> src/frontend/protocol_spec/from_ir.rs:26:1 [INFO] [stderr] | [INFO] [stderr] 26 | fn ir_to_spec_inner(typ: TypeContainer) -> Statement { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | / pub fn as_spec<'a>(&'a self) -> Option<&'a NamedTypeContainer> { [INFO] [stderr] 44 | | match self { [INFO] [stderr] 45 | | &DefinedItemType::Spec(ref inner) => Some(inner), [INFO] [stderr] 46 | | _ => None, [INFO] [stderr] 47 | | } [INFO] [stderr] 48 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | / match self { [INFO] [stderr] 45 | | &DefinedItemType::Spec(ref inner) => Some(inner), [INFO] [stderr] 46 | | _ => None, [INFO] [stderr] 47 | | } [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] 44 | match *self { [INFO] [stderr] 45 | DefinedItemType::Spec(ref inner) => Some(inner), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `ir::compilation_unit::CompilationUnit` [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | / pub fn new() -> CompilationUnit { [INFO] [stderr] 54 | | CompilationUnit { [INFO] [stderr] 55 | | namespaces: Vec::new(), [INFO] [stderr] 56 | | exports: HashMap::new(), [INFO] [stderr] 57 | | } [INFO] [stderr] 58 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 19 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ir/compilation_unit/path.rs:115:5 [INFO] [stderr] | [INFO] [stderr] 115 | / pub fn elements<'a>(&'a self) -> &'a [String] { [INFO] [stderr] 116 | | match *self { [INFO] [stderr] 117 | | RelativeNSPath::Absolute(ref inner) => inner, [INFO] [stderr] 118 | | RelativeNSPath::Relative(ref inner) => inner, [INFO] [stderr] 119 | | } [INFO] [stderr] 120 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:74:16 [INFO] [stderr] | [INFO] [stderr] 74 | if let Some(_) = self.namespaces.iter().find(|t| t.path == ns.path) { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 75 | | bail!("duplicate namespace '{:?}'", ns.path); [INFO] [stderr] 76 | | } [INFO] [stderr] | |_________- help: try this: `if self.namespaces.iter().find(|t| t.path == ns.path).is_some()` [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ir/compilation_unit/path.rs:161:5 [INFO] [stderr] | [INFO] [stderr] 161 | / pub fn simple_str<'a>(&'a self) -> Option<&'a str> { [INFO] [stderr] 162 | | match *self { [INFO] [stderr] 163 | | RelativeNSPath::Absolute(_) => None, [INFO] [stderr] 164 | | //bail!("absolute path cannot be used as simple string"), [INFO] [stderr] ... | [INFO] [stderr] 173 | | } [INFO] [stderr] 174 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:116:13 [INFO] [stderr] | [INFO] [stderr] 116 | / match typ.item { [INFO] [stderr] 117 | | DefinedItemType::Spec(ref inner) => { [INFO] [stderr] 118 | | let root = { [INFO] [stderr] 119 | | inner.borrow().typ.clone() [INFO] [stderr] ... | [INFO] [stderr] 126 | | _ => (), [INFO] [stderr] 127 | | } [INFO] [stderr] | |_____________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 116 | if let DefinedItemType::Spec(ref inner) = typ.item { [INFO] [stderr] 117 | let root = { [INFO] [stderr] 118 | inner.borrow().typ.clone() [INFO] [stderr] 119 | }; [INFO] [stderr] 120 | [INFO] [stderr] 121 | if let TypeKind::Type(ref container) = root { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | / pub fn as_spec<'a>(&'a self) -> Option<&'a NamedTypeContainer> { [INFO] [stderr] 44 | | match self { [INFO] [stderr] 45 | | &DefinedItemType::Spec(ref inner) => Some(inner), [INFO] [stderr] 46 | | _ => None, [INFO] [stderr] 47 | | } [INFO] [stderr] 48 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | / match self { [INFO] [stderr] 45 | | &DefinedItemType::Spec(ref inner) => Some(inner), [INFO] [stderr] 46 | | _ => None, [INFO] [stderr] 47 | | } [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] 44 | match *self { [INFO] [stderr] 45 | DefinedItemType::Spec(ref inner) => Some(inner), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `ir::compilation_unit::CompilationUnit` [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | / pub fn new() -> CompilationUnit { [INFO] [stderr] 54 | | CompilationUnit { [INFO] [stderr] 55 | | namespaces: Vec::new(), [INFO] [stderr] 56 | | exports: HashMap::new(), [INFO] [stderr] 57 | | } [INFO] [stderr] 58 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 19 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:152:16 [INFO] [stderr] | [INFO] [stderr] 152 | if let Some(_) = self.defines.iter().find(|t| t.path == typ.path) { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 153 | | bail!("duplicate named type '{:?}'", [INFO] [stderr] 154 | | typ.path); [INFO] [stderr] 155 | | } [INFO] [stderr] | |_________- help: try this: `if self.defines.iter().find(|t| t.path == typ.path).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/ir/compilation_unit/mod.rs:74:16 [INFO] [stderr] | [INFO] [stderr] 74 | if let Some(_) = self.namespaces.iter().find(|t| t.path == ns.path) { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 75 | | bail!("duplicate namespace '{:?}'", ns.path); [INFO] [stderr] 76 | | } [INFO] [stderr] | |_________- help: try this: `if self.namespaces.iter().find(|t| t.path == ns.path).is_some()` [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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:189:14 [INFO] [stderr] | [INFO] [stderr] 189 | .ok_or(format!("type '{}' not found", path).into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format!("type '{}' not found", path).into())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:190:22 [INFO] [stderr] | [INFO] [stderr] 190 | .map(|t| t.clone()) [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 190 | .map(|t| &(*t).clone()) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 190 | .map(|t| &ir::compilation_unit::DefinedItem::clone(t)) [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] --> src/ir/compilation_unit/mod.rs:116:13 [INFO] [stderr] | [INFO] [stderr] 116 | / match typ.item { [INFO] [stderr] 117 | | DefinedItemType::Spec(ref inner) => { [INFO] [stderr] 118 | | let root = { [INFO] [stderr] 119 | | inner.borrow().typ.clone() [INFO] [stderr] ... | [INFO] [stderr] 126 | | _ => (), [INFO] [stderr] 127 | | } [INFO] [stderr] | |_____________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 116 | if let DefinedItemType::Spec(ref inner) = typ.item { [INFO] [stderr] 117 | let root = { [INFO] [stderr] 118 | inner.borrow().typ.clone() [INFO] [stderr] 119 | }; [INFO] [stderr] 120 | [INFO] [stderr] 121 | if let TypeKind::Type(ref container) = root { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:152:16 [INFO] [stderr] | [INFO] [stderr] 152 | if let Some(_) = self.defines.iter().find(|t| t.path == typ.path) { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 153 | | bail!("duplicate named type '{:?}'", [INFO] [stderr] 154 | | typ.path); [INFO] [stderr] 155 | | } [INFO] [stderr] | |_________- help: try this: `if self.defines.iter().find(|t| t.path == typ.path).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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:189:14 [INFO] [stderr] | [INFO] [stderr] 189 | .ok_or(format!("type '{}' not found", path).into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format!("type '{}' not found", path).into())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ir/spec/variant/union.rs:54:27 [INFO] [stderr] | [INFO] [stderr] 54 | name: self.union_name.clone().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `self.union_name.clone()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/ir/compilation_unit/mod.rs:190:22 [INFO] [stderr] | [INFO] [stderr] 190 | .map(|t| t.clone()) [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 190 | .map(|t| &(*t).clone()) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 190 | .map(|t| &ir::compilation_unit::DefinedItem::clone(t)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ir/spec/variant/union.rs:59:35 [INFO] [stderr] | [INFO] [stderr] 59 | name: c.case_name.clone().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `c.case_name.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ir/spec/variant/union.rs:54:27 [INFO] [stderr] | [INFO] [stderr] 54 | name: self.union_name.clone().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `self.union_name.clone()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ir/spec/variant/union.rs:59:35 [INFO] [stderr] | [INFO] [stderr] 59 | name: c.case_name.clone().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `c.case_name.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ir/spec/variant/container.rs:50:39 [INFO] [stderr] | [INFO] [stderr] 50 | name: f.name.clone().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `f.name.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ir/spec/variant/container.rs:50:39 [INFO] [stderr] | [INFO] [stderr] 50 | name: f.name.clone().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `f.name.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/ir/spec/variant/array.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | / pub fn new(count_ref: Reference, child: TypeContainer) -> TypeContainer { [INFO] [stderr] 61 | | let mut data = TypeData::default(); [INFO] [stderr] 62 | | [INFO] [stderr] 63 | | let child_handle = data.add_child(child.clone()); [INFO] [stderr] ... | [INFO] [stderr] 76 | | }) [INFO] [stderr] 77 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/ir/spec/variant/array.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | / pub fn new(count_ref: Reference, child: TypeContainer) -> TypeContainer { [INFO] [stderr] 61 | | let mut data = TypeData::default(); [INFO] [stderr] 62 | | [INFO] [stderr] 63 | | let child_handle = data.add_child(child.clone()); [INFO] [stderr] ... | [INFO] [stderr] 76 | | }) [INFO] [stderr] 77 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/ir/spec/variant/simple_scalar.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | / pub fn new(path: RelativeNSPath, [INFO] [stderr] 93 | | references: Vec<(String, Reference)>) -> TypeContainer { [INFO] [stderr] 94 | | SimpleScalarVariant::with_target_type(path, references, None) [INFO] [stderr] 95 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/ir/spec/variant/mod.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | Union(UnionVariant), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 39 | Union(Box), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ir/spec/variant/mod.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | / pub fn to_variant<'a>(&'a self) -> &'a TypeVariant { [INFO] [stderr] 47 | | match *self { [INFO] [stderr] 48 | | Variant::Container(ref inner) => inner, [INFO] [stderr] 49 | | Variant::Array(ref inner) => inner, [INFO] [stderr] ... | [INFO] [stderr] 52 | | } [INFO] [stderr] 53 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/ir/spec/variant/simple_scalar.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | / pub fn new(path: RelativeNSPath, [INFO] [stderr] 93 | | references: Vec<(String, Reference)>) -> TypeContainer { [INFO] [stderr] 94 | | SimpleScalarVariant::with_target_type(path, references, None) [INFO] [stderr] 95 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/ir/spec/variant/mod.rs:55:31 [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] 55 | pub fn to_variant_mut<'a>(&'a mut self) -> &'a mut TypeVariant { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ir/spec/variant/mod.rs:55:5 [INFO] [stderr] | [INFO] [stderr] 55 | / pub fn to_variant_mut<'a>(&'a mut self) -> &'a mut TypeVariant { [INFO] [stderr] 56 | | match *self { [INFO] [stderr] 57 | | Variant::Container(ref mut inner) => inner, [INFO] [stderr] 58 | | Variant::Array(ref mut inner) => inner, [INFO] [stderr] ... | [INFO] [stderr] 61 | | } [INFO] [stderr] 62 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/ir/spec/variant/mod.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | Union(UnionVariant), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 39 | Union(Box), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ir/spec/variant/mod.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | / pub fn to_variant<'a>(&'a self) -> &'a TypeVariant { [INFO] [stderr] 47 | | match *self { [INFO] [stderr] 48 | | Variant::Container(ref inner) => inner, [INFO] [stderr] 49 | | Variant::Array(ref inner) => inner, [INFO] [stderr] ... | [INFO] [stderr] 52 | | } [INFO] [stderr] 53 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/ir/spec/variant/mod.rs:55:31 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn to_variant_mut<'a>(&'a mut self) -> &'a mut TypeVariant { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ir/spec/variant/mod.rs:55:5 [INFO] [stderr] | [INFO] [stderr] 55 | / pub fn to_variant_mut<'a>(&'a mut self) -> &'a mut TypeVariant { [INFO] [stderr] 56 | | match *self { [INFO] [stderr] 57 | | Variant::Container(ref mut inner) => inner, [INFO] [stderr] 58 | | Variant::Array(ref mut inner) => inner, [INFO] [stderr] ... | [INFO] [stderr] 61 | | } [INFO] [stderr] 62 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ir/spec/reference/mod.rs:40:28 [INFO] [stderr] | [INFO] [stderr] 40 | if self.up != 0 && self.items.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.items.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: redundant closure found [INFO] [stderr] --> src/ir/spec/reference/mod.rs:44:43 [INFO] [stderr] | [INFO] [stderr] 44 | for item in self.items.iter().map(|i| Some(i)).intersperse(None) { [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ir/spec/reference/mod.rs:40:28 [INFO] [stderr] | [INFO] [stderr] 40 | if self.up != 0 && self.items.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.items.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: redundant closure found [INFO] [stderr] --> src/ir/spec/reference/mod.rs:44:43 [INFO] [stderr] | [INFO] [stderr] 44 | for item in self.items.iter().map(|i| Some(i)).intersperse(None) { [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ir/spec/data.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | / pub fn get_children<'a>(&'a self) -> &'a [TypeContainer] { [INFO] [stderr] 69 | | &self.children [INFO] [stderr] 70 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ir/spec/data.rs:87:5 [INFO] [stderr] | [INFO] [stderr] 87 | / pub fn get_reference<'a>(&'a self, handle: SpecReferenceHandle) -> &'a Reference { [INFO] [stderr] 88 | | &self.references[handle.0].reference [INFO] [stderr] 89 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ir/spec/data.rs:93:5 [INFO] [stderr] | [INFO] [stderr] 93 | / pub fn get_reference_data<'a>(&'a self, handle: SpecReferenceHandle) [INFO] [stderr] 94 | | -> &'a ReferenceData { [INFO] [stderr] 95 | | &self.references[handle.0] [INFO] [stderr] 96 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ir/spec/data.rs:116:5 [INFO] [stderr] | [INFO] [stderr] 116 | / pub fn get_path<'a>(&'a self) -> &'a [ReferencePathEntryData] { [INFO] [stderr] 117 | | self.path.as_ref().unwrap() [INFO] [stderr] 118 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ir/spec/data.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | / pub fn get_children<'a>(&'a self) -> &'a [TypeContainer] { [INFO] [stderr] 69 | | &self.children [INFO] [stderr] 70 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ir/spec/data.rs:87:5 [INFO] [stderr] | [INFO] [stderr] 87 | / pub fn get_reference<'a>(&'a self, handle: SpecReferenceHandle) -> &'a Reference { [INFO] [stderr] 88 | | &self.references[handle.0].reference [INFO] [stderr] 89 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ir/spec/data.rs:93:5 [INFO] [stderr] | [INFO] [stderr] 93 | / pub fn get_reference_data<'a>(&'a self, handle: SpecReferenceHandle) [INFO] [stderr] 94 | | -> &'a ReferenceData { [INFO] [stderr] 95 | | &self.references[handle.0] [INFO] [stderr] 96 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ir/spec/data.rs:116:5 [INFO] [stderr] | [INFO] [stderr] 116 | / pub fn get_path<'a>(&'a self) -> &'a [ReferencePathEntryData] { [INFO] [stderr] 117 | | self.path.as_ref().unwrap() [INFO] [stderr] 118 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ir/spec/debug_printer.rs:16:8 [INFO] [stderr] | [INFO] [stderr] 16 | if typ.data.get_children().len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `typ.data.get_children().is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ir/spec/debug_printer.rs:16:8 [INFO] [stderr] | [INFO] [stderr] 16 | if typ.data.get_children().len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `typ.data.get_children().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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/ir/type_spec/mod.rs:118:9 [INFO] [stderr] | [INFO] [stderr] 118 | / match &self.borrow().variant { [INFO] [stderr] 119 | | &TypeSpecVariant::Referenced(ref inner) => [INFO] [stderr] 120 | | return inner.clone().unwrap().upgrade(), [INFO] [stderr] 121 | | _ => (), [INFO] [stderr] 122 | | } [INFO] [stderr] | |_________^ help: try this: `if let &TypeSpecVariant::Referenced(ref inner) = &self.borrow().variant { return inner.clone().unwrap().upgrade() }` [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 don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/ir/type_spec/mod.rs:118:9 [INFO] [stderr] | [INFO] [stderr] 118 | / match &self.borrow().variant { [INFO] [stderr] 119 | | &TypeSpecVariant::Referenced(ref inner) => [INFO] [stderr] 120 | | return inner.clone().unwrap().upgrade(), [INFO] [stderr] 121 | | _ => (), [INFO] [stderr] 122 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 118 | match self.borrow().variant { [INFO] [stderr] 119 | TypeSpecVariant::Referenced(ref inner) => [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] --> src/ir/type_spec/mod.rs:118:9 [INFO] [stderr] | [INFO] [stderr] 118 | / match &self.borrow().variant { [INFO] [stderr] 119 | | &TypeSpecVariant::Referenced(ref inner) => [INFO] [stderr] 120 | | return inner.clone().unwrap().upgrade(), [INFO] [stderr] 121 | | _ => (), [INFO] [stderr] 122 | | } [INFO] [stderr] | |_________^ help: try this: `if let &TypeSpecVariant::Referenced(ref inner) = &self.borrow().variant { return inner.clone().unwrap().upgrade() }` [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 don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/ir/type_spec/mod.rs:118:9 [INFO] [stderr] | [INFO] [stderr] 118 | / match &self.borrow().variant { [INFO] [stderr] 119 | | &TypeSpecVariant::Referenced(ref inner) => [INFO] [stderr] 120 | | return inner.clone().unwrap().upgrade(), [INFO] [stderr] 121 | | _ => (), [INFO] [stderr] 122 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 118 | match self.borrow().variant { [INFO] [stderr] 119 | TypeSpecVariant::Referenced(ref inner) => [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `ir::id_generator::IdGenerator` [INFO] [stderr] --> src/ir/id_generator.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | / pub fn new() -> IdGenerator { [INFO] [stderr] 7 | | IdGenerator { [INFO] [stderr] 8 | | id: 0, [INFO] [stderr] 9 | | } [INFO] [stderr] 10 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1 | #[derive(Default)] [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/ir/target_type.rs:18:14 [INFO] [stderr] | [INFO] [stderr] 18 | fn parse(&self, raw: &str) -> Option { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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 should consider deriving a `Default` implementation for `ir::id_generator::IdGenerator` [INFO] [stderr] --> src/ir/id_generator.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | / pub fn new() -> IdGenerator { [INFO] [stderr] 7 | | IdGenerator { [INFO] [stderr] 8 | | id: 0, [INFO] [stderr] 9 | | } [INFO] [stderr] 10 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1 | #[derive(Default)] [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/ir/target_type.rs:18:14 [INFO] [stderr] | [INFO] [stderr] 18 | fn parse(&self, raw: &str) -> Option { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: identical conversion [INFO] [stderr] --> src/backend/imperative_base/size_of.rs:41:24 [INFO] [stderr] | [INFO] [stderr] 41 | type_name: self.path.clone().unwrap().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `self.path.clone().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/backend/imperative_base/size_of.rs:41:24 [INFO] [stderr] | [INFO] [stderr] 41 | type_name: self.path.clone().unwrap().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `self.path.clone().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/backend/imperative_base/serialize.rs:40:24 [INFO] [stderr] | [INFO] [stderr] 40 | type_name: self.path.clone().unwrap().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `self.path.clone().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/backend/imperative_base/serialize.rs:40:24 [INFO] [stderr] | [INFO] [stderr] 40 | type_name: self.path.clone().unwrap().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `self.path.clone().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/backend/imperative_base/deserialize.rs:38:24 [INFO] [stderr] | [INFO] [stderr] 38 | type_name: self.path.clone().unwrap().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `self.path.clone().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/backend/imperative_base/deserialize.rs:38:24 [INFO] [stderr] | [INFO] [stderr] 38 | type_name: self.path.clone().unwrap().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `self.path.clone().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/backend/imperative_base/mod.rs:164:5 [INFO] [stderr] | [INFO] [stderr] 164 | / pub fn str<'a>(&'a self) -> &'a str { [INFO] [stderr] 165 | | &self.0 [INFO] [stderr] 166 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/backend/imperative_base/mod.rs:192:1 [INFO] [stderr] | [INFO] [stderr] 192 | / fn codegen_for_type<'a>(typ: &'a ::ir::spec::Type) -> &'a BaseCodegen { [INFO] [stderr] 193 | | use ::ir::spec::variant::Variant; [INFO] [stderr] 194 | | match typ.variant { [INFO] [stderr] 195 | | Variant::SimpleScalar(ref inner) => inner, [INFO] [stderr] ... | [INFO] [stderr] 200 | | } [INFO] [stderr] 201 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/backend/imperative_base/mod.rs:164:5 [INFO] [stderr] | [INFO] [stderr] 164 | / pub fn str<'a>(&'a self) -> &'a str { [INFO] [stderr] 165 | | &self.0 [INFO] [stderr] 166 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `backend::javascript::builder::Block` [INFO] [stderr] --> src/backend/javascript/builder.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | / pub fn new() -> Block { [INFO] [stderr] 57 | | Block(Vec::new()) [INFO] [stderr] 58 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 2 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/backend/imperative_base/mod.rs:192:1 [INFO] [stderr] | [INFO] [stderr] 192 | / fn codegen_for_type<'a>(typ: &'a ::ir::spec::Type) -> &'a BaseCodegen { [INFO] [stderr] 193 | | use ::ir::spec::variant::Variant; [INFO] [stderr] 194 | | match typ.variant { [INFO] [stderr] 195 | | Variant::SimpleScalar(ref inner) => inner, [INFO] [stderr] ... | [INFO] [stderr] 200 | | } [INFO] [stderr] 201 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `backend::javascript::builder::Block` [INFO] [stderr] --> src/backend/javascript/builder.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | / pub fn new() -> Block { [INFO] [stderr] 57 | | Block(Vec::new()) [INFO] [stderr] 58 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 2 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/backend/javascript/builder.rs:164:25 [INFO] [stderr] | [INFO] [stderr] 164 | assert!(conds.len() >= 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!conds.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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/backend/javascript/builder.rs:187:17 [INFO] [stderr] | [INFO] [stderr] 187 | / if let &Some(ref block) = else_ { [INFO] [stderr] 188 | | out.push_str(" else {\n"); [INFO] [stderr] 189 | | block.to_javascript(out, level+1); [INFO] [stderr] 190 | | [INFO] [stderr] 191 | | pad_level(out, level); [INFO] [stderr] 192 | | out.push_str("}"); [INFO] [stderr] 193 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [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] 187 | if let Some(ref block) = *else_ { [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/backend/javascript/builder.rs:203:20 [INFO] [stderr] | [INFO] [stderr] 203 | if args.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: the loop variable `num` is only used to index `args`. [INFO] [stderr] --> src/backend/javascript/builder.rs:204:32 [INFO] [stderr] | [INFO] [stderr] 204 | for num in 0..args.len()-1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 204 | for in args.iter().take(args.len()-1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/backend/javascript/builder.rs:164:25 [INFO] [stderr] | [INFO] [stderr] 164 | assert!(conds.len() >= 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!conds.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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/backend/javascript/builder.rs:187:17 [INFO] [stderr] | [INFO] [stderr] 187 | / if let &Some(ref block) = else_ { [INFO] [stderr] 188 | | out.push_str(" else {\n"); [INFO] [stderr] 189 | | block.to_javascript(out, level+1); [INFO] [stderr] 190 | | [INFO] [stderr] 191 | | pad_level(out, level); [INFO] [stderr] 192 | | out.push_str("}"); [INFO] [stderr] 193 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [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] 187 | if let Some(ref block) = *else_ { [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/backend/javascript/builder.rs:203:20 [INFO] [stderr] | [INFO] [stderr] 203 | if args.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: the loop variable `num` is only used to index `args`. [INFO] [stderr] --> src/backend/javascript/builder.rs:204:32 [INFO] [stderr] | [INFO] [stderr] 204 | for num in 0..args.len()-1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 204 | for in args.iter().take(args.len()-1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:14:24 [INFO] [stderr] | [INFO] [stderr] 14 | b.expr(format!("throw new Error(\"protodef error\")").into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"throw new Error(\"protodef error\")".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: identical conversion [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:17:51 [INFO] [stderr] | [INFO] [stderr] 17 | b.var_assign(output_var.string(), build_expr(value)?.into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `build_expr(value)?` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:55:29 [INFO] [stderr] | [INFO] [stderr] 55 | / if let &Some(ref variant_var_inner) = variant_var { [INFO] [stderr] 56 | | iib.var_assign( [INFO] [stderr] 57 | | variant_var_inner.string(), [INFO] [stderr] 58 | | format!("{}.data", input_var).into() [INFO] [stderr] 59 | | ); [INFO] [stderr] 60 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [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] 55 | if let Some(ref variant_var_inner) = *variant_var { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:14:24 [INFO] [stderr] | [INFO] [stderr] 14 | b.expr(format!("throw new Error(\"protodef error\")").into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"throw new Error(\"protodef error\")".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: identical conversion [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:17:51 [INFO] [stderr] | [INFO] [stderr] 17 | b.var_assign(output_var.string(), build_expr(value)?.into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `build_expr(value)?` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:76:21 [INFO] [stderr] | [INFO] [stderr] 76 | format!("default").into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"default".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/backend/javascript/ib_to_js.rs:139:38 [INFO] [stderr] | [INFO] [stderr] 139 | b.var_assign(format!("offset"), call.into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"offset".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/backend/javascript/ib_to_js.rs:142:38 [INFO] [stderr] | [INFO] [stderr] 142 | b.var_assign(format!("call_out"), call.into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"call_out".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/backend/javascript/ib_to_js.rs:143:61 [INFO] [stderr] | [INFO] [stderr] 143 | b.var_assign(format!("{}", output), format!("call_out.value").into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"call_out.value".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:144:38 [INFO] [stderr] | [INFO] [stderr] 144 | b.var_assign(format!("offset"), format!("call_out.size").into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"offset".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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:55:29 [INFO] [stderr] | [INFO] [stderr] 55 | / if let &Some(ref variant_var_inner) = variant_var { [INFO] [stderr] 56 | | iib.var_assign( [INFO] [stderr] 57 | | variant_var_inner.string(), [INFO] [stderr] 58 | | format!("{}.data", input_var).into() [INFO] [stderr] 59 | | ); [INFO] [stderr] 60 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:144:57 [INFO] [stderr] | [INFO] [stderr] 144 | b.var_assign(format!("offset"), format!("call_out.size").into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"call_out.size".to_string()` [INFO] [stderr] | [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:155:30 [INFO] [stderr] | [INFO] [stderr] 155 | cases: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `&[ib::MatchCase]` [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] = 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] 55 | if let Some(ref variant_var_inner) = *variant_var { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:76:21 [INFO] [stderr] | [INFO] [stderr] 76 | format!("default").into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"default".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/backend/javascript/ib_to_js.rs:179:17 [INFO] [stderr] | [INFO] [stderr] 179 | format!("default").into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"default".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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:195:25 [INFO] [stderr] | [INFO] [stderr] 195 | / if let &Some(ref variant_var_inner) = inner_value_var { [INFO] [stderr] 196 | | iib.var_assign( [INFO] [stderr] 197 | | variant_var_inner.string(), [INFO] [stderr] 198 | | format!("{}.data", input_var).into() [INFO] [stderr] 199 | | ); [INFO] [stderr] 200 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:139:38 [INFO] [stderr] | [INFO] [stderr] 139 | b.var_assign(format!("offset"), call.into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"offset".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] | [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] 195 | if let Some(ref variant_var_inner) = *inner_value_var { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:142:38 [INFO] [stderr] | [INFO] [stderr] 142 | b.var_assign(format!("call_out"), call.into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"call_out".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/backend/javascript/ib_to_js.rs:143:61 [INFO] [stderr] | [INFO] [stderr] 143 | b.var_assign(format!("{}", output), format!("call_out.value").into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"call_out.value".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:144:38 [INFO] [stderr] | [INFO] [stderr] 144 | b.var_assign(format!("offset"), format!("call_out.size").into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"offset".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/backend/javascript/ib_to_js.rs:144:57 [INFO] [stderr] | [INFO] [stderr] 144 | b.var_assign(format!("offset"), format!("call_out.size").into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"call_out.size".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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:155:30 [INFO] [stderr] | [INFO] [stderr] 155 | cases: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `&[ib::MatchCase]` [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: useless use of `format!` [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:216:17 [INFO] [stderr] | [INFO] [stderr] 216 | format!("default").into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"default".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] --> src/backend/javascript/ib_to_js.rs:232:28 [INFO] [stderr] | [INFO] [stderr] 232 | let arguments_str = if arguments.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!arguments.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:235:9 [INFO] [stderr] | [INFO] [stderr] 235 | 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/backend/javascript/ib_to_js.rs:179:17 [INFO] [stderr] | [INFO] [stderr] 179 | format!("default").into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"default".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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:195:25 [INFO] [stderr] | [INFO] [stderr] 195 | / if let &Some(ref variant_var_inner) = inner_value_var { [INFO] [stderr] 196 | | iib.var_assign( [INFO] [stderr] 197 | | variant_var_inner.string(), [INFO] [stderr] 198 | | format!("{}.data", input_var).into() [INFO] [stderr] 199 | | ); [INFO] [stderr] 200 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [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] 195 | if let Some(ref variant_var_inner) = *inner_value_var { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:253:32 [INFO] [stderr] | [INFO] [stderr] 253 | ib::Expr::InputData => format!("input").into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `format!("input")` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:253:32 [INFO] [stderr] | [INFO] [stderr] 253 | ib::Expr::InputData => format!("input").into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"input".to_string()` [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:216:17 [INFO] [stderr] | [INFO] [stderr] 216 | format!("default").into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"default".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] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:254:35 [INFO] [stderr] | [INFO] [stderr] 254 | ib::Expr::Var(ref var) => var.0.clone().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `var.0.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:232:28 [INFO] [stderr] | [INFO] [stderr] 232 | let arguments_str = if arguments.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!arguments.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:235:9 [INFO] [stderr] | [INFO] [stderr] 235 | 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: identical conversion [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:253:32 [INFO] [stderr] | [INFO] [stderr] 253 | ib::Expr::InputData => format!("input").into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `format!("input")` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:253:32 [INFO] [stderr] | [INFO] [stderr] 253 | ib::Expr::InputData => format!("input").into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"input".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: identical conversion [INFO] [stderr] --> src/backend/javascript/ib_to_js.rs:254:35 [INFO] [stderr] | [INFO] [stderr] 254 | ib::Expr::Var(ref var) => var.0.clone().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `var.0.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/backend/rust/ib_to_rs.rs:20:43 [INFO] [stderr] | [INFO] [stderr] 20 | b.assign(output_var.string(), build_expr(value)?.into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `build_expr(value)?` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/backend/rust/ib_to_rs.rs:22:47 [INFO] [stderr] | [INFO] [stderr] 22 | b.let_assign(output_var.string(), build_expr(value)?.into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `build_expr(value)?` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/backend/rust/ib_to_rs.rs:20:43 [INFO] [stderr] | [INFO] [stderr] 20 | b.assign(output_var.string(), build_expr(value)?.into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `build_expr(value)?` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/backend/rust/ib_to_rs.rs:22:47 [INFO] [stderr] | [INFO] [stderr] 22 | b.let_assign(output_var.string(), build_expr(value)?.into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `build_expr(value)?` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/backend/rust/cu_to_rs.rs:37:9 [INFO] [stderr] | [INFO] [stderr] 37 | / match typ_inner.typ { [INFO] [stderr] 38 | | TypeKind::Type(ref type_container) => { [INFO] [stderr] 39 | | b.inline(generate_serialize( [INFO] [stderr] 40 | | typ_name_serialize.clone(), [INFO] [stderr] ... | [INFO] [stderr] 44 | | _ => (), [INFO] [stderr] 45 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 37 | if let TypeKind::Type(ref type_container) = typ_inner.typ { [INFO] [stderr] 38 | b.inline(generate_serialize( [INFO] [stderr] 39 | typ_name_serialize.clone(), [INFO] [stderr] 40 | type_container.clone() [INFO] [stderr] 41 | )?); [INFO] [stderr] 42 | } [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] --> src/backend/rust/cu_to_rs.rs:37:9 [INFO] [stderr] | [INFO] [stderr] 37 | / match typ_inner.typ { [INFO] [stderr] 38 | | TypeKind::Type(ref type_container) => { [INFO] [stderr] 39 | | b.inline(generate_serialize( [INFO] [stderr] 40 | | typ_name_serialize.clone(), [INFO] [stderr] ... | [INFO] [stderr] 44 | | _ => (), [INFO] [stderr] 45 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 37 | if let TypeKind::Type(ref type_container) = typ_inner.typ { [INFO] [stderr] 38 | b.inline(generate_serialize( [INFO] [stderr] 39 | typ_name_serialize.clone(), [INFO] [stderr] 40 | type_container.clone() [INFO] [stderr] 41 | )?); [INFO] [stderr] 42 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `backend::python::builder::Block` [INFO] [stderr] --> src/backend/python/builder.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | / pub fn new() -> Block { [INFO] [stderr] 41 | | Block(Vec::new()) [INFO] [stderr] 42 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 2 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `backend::python::builder::Block` [INFO] [stderr] --> src/backend/python/builder.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | / pub fn new() -> Block { [INFO] [stderr] 41 | | Block(Vec::new()) [INFO] [stderr] 42 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 2 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/backend/python/builder.rs:54:12 [INFO] [stderr] | [INFO] [stderr] 54 | if chain.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `chain.is_empty()` [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/backend/python/builder.rs:54:12 [INFO] [stderr] | [INFO] [stderr] 54 | if chain.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `chain.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] [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/backend/python/builder.rs:128:25 [INFO] [stderr] | [INFO] [stderr] 128 | assert!(conds.len() >= 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!conds.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/backend/python/builder.rs:128:25 [INFO] [stderr] | [INFO] [stderr] 128 | assert!(conds.len() >= 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!conds.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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/backend/python/builder.rs:146:17 [INFO] [stderr] | [INFO] [stderr] 146 | / if let &Some(ref block) = else_ { [INFO] [stderr] 147 | | pad_level(out, level); [INFO] [stderr] 148 | | out.push_str("else:\n"); [INFO] [stderr] 149 | | block.to_python(out, level+1); [INFO] [stderr] 150 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [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] 146 | if let Some(ref block) = *else_ { [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/backend/python/builder.rs:158:20 [INFO] [stderr] | [INFO] [stderr] 158 | if args.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!args.is_empty()` [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/backend/python/builder.rs:146:17 [INFO] [stderr] | [INFO] [stderr] 146 | / if let &Some(ref block) = else_ { [INFO] [stderr] 147 | | pad_level(out, level); [INFO] [stderr] 148 | | out.push_str("else:\n"); [INFO] [stderr] 149 | | block.to_python(out, level+1); [INFO] [stderr] 150 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] | [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] | [INFO] [stderr] 146 | if let Some(ref block) = *else_ { [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: the loop variable `num` is only used to index `args`. [INFO] [stderr] --> src/backend/python/builder.rs:159:32 [INFO] [stderr] | [INFO] [stderr] 159 | for num in 0..args.len()-1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 159 | for in args.iter().take(args.len()-1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/backend/python/builder.rs:158:20 [INFO] [stderr] | [INFO] [stderr] 158 | if args.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: the loop variable `num` is only used to index `args`. [INFO] [stderr] --> src/backend/python/builder.rs:159:32 [INFO] [stderr] | [INFO] [stderr] 159 | for num in 0..args.len()-1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 159 | for in args.iter().take(args.len()-1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/backend/python/ib_to_py.rs:14:24 [INFO] [stderr] | [INFO] [stderr] 14 | b.expr(format!("raise Exception(\"error\")").into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"raise Exception(\"error\")".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/backend/python/ib_to_py.rs:14:24 [INFO] [stderr] | [INFO] [stderr] 14 | b.expr(format!("raise Exception(\"error\")").into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"raise Exception(\"error\")".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: identical conversion [INFO] [stderr] --> src/backend/python/ib_to_py.rs:17:47 [INFO] [stderr] | [INFO] [stderr] 17 | b.assign(output_var.string(), build_expr(value)?.into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `build_expr(value)?` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/backend/python/ib_to_py.rs:17:47 [INFO] [stderr] | [INFO] [stderr] 17 | b.assign(output_var.string(), build_expr(value)?.into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `build_expr(value)?` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/backend/python/ib_to_py.rs:47:29 [INFO] [stderr] | [INFO] [stderr] 47 | / if let &Some(ref variant_var_inner) = variant_var { [INFO] [stderr] 48 | | iib.assign( [INFO] [stderr] 49 | | variant_var_inner.string(), [INFO] [stderr] 50 | | format!("{}.data", input_var).into() [INFO] [stderr] 51 | | ); [INFO] [stderr] 52 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [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] 47 | if let Some(ref variant_var_inner) = *variant_var { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/backend/python/ib_to_py.rs:47:29 [INFO] [stderr] | [INFO] [stderr] 47 | / if let &Some(ref variant_var_inner) = variant_var { [INFO] [stderr] 48 | | iib.assign( [INFO] [stderr] 49 | | variant_var_inner.string(), [INFO] [stderr] 50 | | format!("{}.data", input_var).into() [INFO] [stderr] 51 | | ); [INFO] [stderr] 52 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [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] 47 | if let Some(ref variant_var_inner) = *variant_var { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/backend/python/ib_to_py.rs:126:34 [INFO] [stderr] | [INFO] [stderr] 126 | b.assign(format!("offset"), call.into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"offset".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/backend/python/ib_to_py.rs:126:34 [INFO] [stderr] | [INFO] [stderr] 126 | b.assign(format!("offset"), call.into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"offset".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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/backend/python/ib_to_py.rs:140:30 [INFO] [stderr] | [INFO] [stderr] 140 | cases: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `&[ib::MatchCase]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/backend/python/ib_to_py.rs:140:30 [INFO] [stderr] | [INFO] [stderr] 140 | cases: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `&[ib::MatchCase]` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/backend/python/ib_to_py.rs:175:25 [INFO] [stderr] | [INFO] [stderr] 175 | / if let &Some(ref variant_var_inner) = inner_value_var { [INFO] [stderr] 176 | | iib.assign( [INFO] [stderr] 177 | | variant_var_inner.string(), [INFO] [stderr] 178 | | format!("{}.data", input_var).into() [INFO] [stderr] 179 | | ); [INFO] [stderr] 180 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [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] 175 | if let Some(ref variant_var_inner) = *inner_value_var { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/backend/python/ib_to_py.rs:175:25 [INFO] [stderr] | [INFO] [stderr] 175 | / if let &Some(ref variant_var_inner) = inner_value_var { [INFO] [stderr] 176 | | iib.assign( [INFO] [stderr] 177 | | variant_var_inner.string(), [INFO] [stderr] 178 | | format!("{}.data", input_var).into() [INFO] [stderr] 179 | | ); [INFO] [stderr] 180 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [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] 175 | if let Some(ref variant_var_inner) = *inner_value_var { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/backend/python/ib_to_py.rs:209:28 [INFO] [stderr] | [INFO] [stderr] 209 | let arguments_str = if arguments.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!arguments.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/backend/python/ib_to_py.rs:209:28 [INFO] [stderr] | [INFO] [stderr] 209 | let arguments_str = if arguments.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!arguments.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/backend/python/ib_to_py.rs:212:9 [INFO] [stderr] | [INFO] [stderr] 212 | 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/backend/python/ib_to_py.rs:212:9 [INFO] [stderr] | [INFO] [stderr] 212 | 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: identical conversion [INFO] [stderr] --> src/backend/python/ib_to_py.rs:230:32 [INFO] [stderr] | [INFO] [stderr] 230 | ib::Expr::InputData => format!("input").into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `format!("input")` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/backend/python/ib_to_py.rs:230:32 [INFO] [stderr] | [INFO] [stderr] 230 | ib::Expr::InputData => format!("input").into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"input".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: identical conversion [INFO] [stderr] --> src/backend/python/ib_to_py.rs:231:35 [INFO] [stderr] | [INFO] [stderr] 231 | ib::Expr::Var(ref var) => var.0.clone().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `var.0.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/backend/python/ib_to_py.rs:230:32 [INFO] [stderr] | [INFO] [stderr] 230 | ib::Expr::InputData => format!("input").into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `format!("input")` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/backend/python/ib_to_py.rs:230:32 [INFO] [stderr] | [INFO] [stderr] 230 | ib::Expr::InputData => format!("input").into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"input".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: identical conversion [INFO] [stderr] --> src/backend/python/ib_to_py.rs:231:35 [INFO] [stderr] | [INFO] [stderr] 231 | ib::Expr::Var(ref var) => var.0.clone().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `var.0.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/frontend/protocol_spec/ast/parser.rs:27:27 [INFO] [stderr] | [INFO] [stderr] 27 | let pointer_padding = (0..error.column+1).map(|_| " ").join(""); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use: `(0..=error.column)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/frontend/protocol_spec/ast/parser.rs:27:27 [INFO] [stderr] | [INFO] [stderr] 27 | let pointer_padding = (0..error.column+1).map(|_| " ").join(""); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use: `(0..=error.column)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:15:6 [INFO] [stderr] | [INFO] [stderr] 15 | ; if self . expected . len ( ) == 0 { try ! ( write ! ( fmt , "EOF" ) ) ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self . expected.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:15:6 [INFO] [stderr] | [INFO] [stderr] 15 | ; if self . expected . len ( ) == 0 { try ! ( write ! ( fmt , "EOF" ) ) ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self . expected.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: You appear to be counting bytes the naive way [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:50:46 [INFO] [stderr] | [INFO] [stderr] 50 | let before = & input [ .. pos ] ; let line = before . as_bytes ( ) . iter ( [INFO] [stderr] | ______________________________________________^ [INFO] [stderr] 51 | | ) . 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 appear to be counting bytes the naive way [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:50:46 [INFO] [stderr] | [INFO] [stderr] 50 | let before = & input [ .. pos ] ; let line = before . as_bytes ( ) . iter ( [INFO] [stderr] | ______________________________________________^ [INFO] [stderr] 51 | | ) . 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: length comparison to zero [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:74:310 [INFO] [stderr] | [INFO] [stderr] 74 | fn __parse_valueChain < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < Vec > { # ! [ allow ( non_snake_case , unused ) ] { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __pos = if __repeat_value . len ( ) > 0 { let __sep_res = __parse_hashrocket ( __input , __state , __pos ) ; match __sep_res { Matched ( __newpos , _ ) => { __newpos } , Failed => break , } } else { __pos } ; let __step_res = __parse_value ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , __repeat_value ) } else { 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: length comparison to zero [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:74:310 [INFO] [stderr] | [INFO] [stderr] 74 | fn __parse_valueChain < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < Vec > { # ! [ allow ( non_snake_case , unused ) ] { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __pos = if __repeat_value . len ( ) > 0 { let __sep_res = __parse_hashrocket ( __input , __state , __pos ) ; match __sep_res { Matched ( __newpos , _ ) => { __newpos } , Failed => break , } } else { __pos } ; let __step_res = __parse_value ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , __repeat_value ) } else { 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: length comparison to one [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:74:721 [INFO] [stderr] | [INFO] [stderr] 74 | fn __parse_valueChain < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < Vec > { # ! [ allow ( non_snake_case , unused ) ] { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __pos = if __repeat_value . len ( ) > 0 { let __sep_res = __parse_hashrocket ( __input , __state , __pos ) ; match __sep_res { Matched ( __newpos , _ ) => { __newpos } , Failed => break , } } else { __pos } ; let __step_res = __parse_value ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , __repeat_value ) } else { 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: length comparison to one [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:74:721 [INFO] [stderr] | [INFO] [stderr] 74 | fn __parse_valueChain < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < Vec > { # ! [ allow ( non_snake_case , unused ) ] { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __pos = if __repeat_value . len ( ) > 0 { let __sep_res = __parse_hashrocket ( __input , __state , __pos ) ; match __sep_res { Matched ( __newpos , _ ) => { __newpos } , Failed => break , } } else { __pos } ; let __step_res = __parse_value ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , __repeat_value ) } else { 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: length comparison to zero [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:86:441 [INFO] [stderr] | [INFO] [stderr] 86 | fn __parse_itemArgs < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < Vec > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = __parse_parenOpen ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __pos = if __repeat_value . len ( ) > 0 { let __sep_res = __parse_comma ( __input , __state , __pos ) ; match __sep_res { Matched ( __newpos , _ ) => { __newpos } , Failed => break , } } else { __pos } ; let __step_res = __parse_itemArg ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } Matched ( __repeat_pos , __repeat_value ) } ; match __seq_res { Matched ( __pos , args ) => { { let __seq_res = __parse_parenClose ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { args } ) } 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: length comparison to zero [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:86:441 [INFO] [stderr] | [INFO] [stderr] 86 | fn __parse_itemArgs < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < Vec > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = __parse_parenOpen ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __pos = if __repeat_value . len ( ) > 0 { let __sep_res = __parse_comma ( __input , __state , __pos ) ; match __sep_res { Matched ( __newpos , _ ) => { __newpos } , Failed => break , } } else { __pos } ; let __step_res = __parse_itemArg ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } Matched ( __repeat_pos , __repeat_value ) } ; match __seq_res { Matched ( __pos , args ) => { { let __seq_res = __parse_parenClose ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { args } ) } 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: length comparison to zero [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:98:460 [INFO] [stderr] | [INFO] [stderr] 98 | fn __parse_innerIdentifier < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < Ident > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "::" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __pos = if __repeat_value . len ( ) > 0 { let __sep_res = slice_eq ( __input , __state , __pos , "::" ) ; match __sep_res { Matched ( __newpos , _ ) => { __newpos } , Failed => break , } } else { __pos } ; let __step_res = __parse_baseIdent ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , __repeat_value ) } else { Failed } } ; match __seq_res { Matched ( __pos , idents ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { Ident::Absolute(idents) } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __pos = if __repeat_value . len ( ) > 0 { let __sep_res = slice_eq ( __input , __state , __pos , "::" ) ; match __sep_res { Matched ( __newpos , _ ) => { __newpos } , Failed => break , } } else { __pos } ; let __step_res = __parse_baseIdent ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , __repeat_value ) } else { Failed } } ; match __seq_res { Matched ( __pos , idents ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { Ident::Relative(idents) } ) } 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: length comparison to one [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:98:872 [INFO] [stderr] | [INFO] [stderr] 98 | fn __parse_innerIdentifier < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < Ident > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "::" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __pos = if __repeat_value . len ( ) > 0 { let __sep_res = slice_eq ( __input , __state , __pos , "::" ) ; match __sep_res { Matched ( __newpos , _ ) => { __newpos } , Failed => break , } } else { __pos } ; let __step_res = __parse_baseIdent ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , __repeat_value ) } else { Failed } } ; match __seq_res { Matched ( __pos , idents ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { Ident::Absolute(idents) } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __pos = if __repeat_value . len ( ) > 0 { let __sep_res = slice_eq ( __input , __state , __pos , "::" ) ; match __sep_res { Matched ( __newpos , _ ) => { __newpos } , Failed => break , } } else { __pos } ; let __step_res = __parse_baseIdent ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , __repeat_value ) } else { Failed } } ; match __seq_res { Matched ( __pos , idents ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { Ident::Relative(idents) } ) } 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: length comparison to zero [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:98:1480 [INFO] [stderr] | [INFO] [stderr] 98 | fn __parse_innerIdentifier < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < Ident > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "::" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __pos = if __repeat_value . len ( ) > 0 { let __sep_res = slice_eq ( __input , __state , __pos , "::" ) ; match __sep_res { Matched ( __newpos , _ ) => { __newpos } , Failed => break , } } else { __pos } ; let __step_res = __parse_baseIdent ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , __repeat_value ) } else { Failed } } ; match __seq_res { Matched ( __pos , idents ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { Ident::Absolute(idents) } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __pos = if __repeat_value . len ( ) > 0 { let __sep_res = slice_eq ( __input , __state , __pos , "::" ) ; match __sep_res { Matched ( __newpos , _ ) => { __newpos } , Failed => break , } } else { __pos } ; let __step_res = __parse_baseIdent ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , __repeat_value ) } else { Failed } } ; match __seq_res { Matched ( __pos , idents ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { Ident::Relative(idents) } ) } 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: length comparison to one [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:98:1892 [INFO] [stderr] | [INFO] [stderr] 98 | fn __parse_innerIdentifier < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < Ident > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "::" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __pos = if __repeat_value . len ( ) > 0 { let __sep_res = slice_eq ( __input , __state , __pos , "::" ) ; match __sep_res { Matched ( __newpos , _ ) => { __newpos } , Failed => break , } } else { __pos } ; let __step_res = __parse_baseIdent ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , __repeat_value ) } else { Failed } } ; match __seq_res { Matched ( __pos , idents ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { Ident::Absolute(idents) } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __pos = if __repeat_value . len ( ) > 0 { let __sep_res = slice_eq ( __input , __state , __pos , "::" ) ; match __sep_res { Matched ( __newpos , _ ) => { __newpos } , Failed => break , } } else { __pos } ; let __step_res = __parse_baseIdent ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , __repeat_value ) } else { Failed } } ; match __seq_res { Matched ( __pos , idents ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { Ident::Relative(idents) } ) } 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/protodefc-22331c287f1f2c4f/out/pds.rs:100:828 [INFO] [stderr] | [INFO] [stderr] 100 | fn __parse_baseIdent < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < String > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { __state . suppress_fail += 1 ; let 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' | 'a' ... 'z' | 'A' ... 'Z' | '_' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9a-zA-Z_]" ) , } } else { __state . mark_failure ( __pos , "[0-9a-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 , chars ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { chars.to_owned() } ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { __state . mark_failure ( __pos , "identifier" ) ; 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] 100 | fn __parse_baseIdent < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < String > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { __state . suppress_fail += 1 ; let 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' | 'a' ... 'z' | 'A' ... 'Z' | '_' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9a-zA-Z_]" ) , } } else { __state . mark_failure ( __pos , "[0-9a-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 , chars ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { chars.to_owned() } ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { __state . mark_failure ( __pos , "identifier" ) ; Failed } } } } [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:100:873 [INFO] [stderr] | [INFO] [stderr] 100 | fn __parse_baseIdent < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < String > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { __state . suppress_fail += 1 ; let 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' | 'a' ... 'z' | 'A' ... 'Z' | '_' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9a-zA-Z_]" ) , } } else { __state . mark_failure ( __pos , "[0-9a-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 , chars ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { chars.to_owned() } ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { __state . mark_failure ( __pos , "identifier" ) ; 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: length comparison to zero [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:98:460 [INFO] [stderr] | [INFO] [stderr] 98 | fn __parse_innerIdentifier < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < Ident > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "::" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __pos = if __repeat_value . len ( ) > 0 { let __sep_res = slice_eq ( __input , __state , __pos , "::" ) ; match __sep_res { Matched ( __newpos , _ ) => { __newpos } , Failed => break , } } else { __pos } ; let __step_res = __parse_baseIdent ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , __repeat_value ) } else { Failed } } ; match __seq_res { Matched ( __pos , idents ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { Ident::Absolute(idents) } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __pos = if __repeat_value . len ( ) > 0 { let __sep_res = slice_eq ( __input , __state , __pos , "::" ) ; match __sep_res { Matched ( __newpos , _ ) => { __newpos } , Failed => break , } } else { __pos } ; let __step_res = __parse_baseIdent ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , __repeat_value ) } else { Failed } } ; match __seq_res { Matched ( __pos , idents ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { Ident::Relative(idents) } ) } 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: length comparison to one [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:98:872 [INFO] [stderr] | [INFO] [stderr] 98 | fn __parse_innerIdentifier < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < Ident > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "::" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __pos = if __repeat_value . len ( ) > 0 { let __sep_res = slice_eq ( __input , __state , __pos , "::" ) ; match __sep_res { Matched ( __newpos , _ ) => { __newpos } , Failed => break , } } else { __pos } ; let __step_res = __parse_baseIdent ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , __repeat_value ) } else { Failed } } ; match __seq_res { Matched ( __pos , idents ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { Ident::Absolute(idents) } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __pos = if __repeat_value . len ( ) > 0 { let __sep_res = slice_eq ( __input , __state , __pos , "::" ) ; match __sep_res { Matched ( __newpos , _ ) => { __newpos } , Failed => break , } } else { __pos } ; let __step_res = __parse_baseIdent ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , __repeat_value ) } else { Failed } } ; match __seq_res { Matched ( __pos , idents ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { Ident::Relative(idents) } ) } 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: length comparison to zero [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:98:1480 [INFO] [stderr] | [INFO] [stderr] 98 | fn __parse_innerIdentifier < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < Ident > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "::" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __pos = if __repeat_value . len ( ) > 0 { let __sep_res = slice_eq ( __input , __state , __pos , "::" ) ; match __sep_res { Matched ( __newpos , _ ) => { __newpos } , Failed => break , } } else { __pos } ; let __step_res = __parse_baseIdent ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , __repeat_value ) } else { Failed } } ; match __seq_res { Matched ( __pos , idents ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { Ident::Absolute(idents) } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __pos = if __repeat_value . len ( ) > 0 { let __sep_res = slice_eq ( __input , __state , __pos , "::" ) ; match __sep_res { Matched ( __newpos , _ ) => { __newpos } , Failed => break , } } else { __pos } ; let __step_res = __parse_baseIdent ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , __repeat_value ) } else { Failed } } ; match __seq_res { Matched ( __pos , idents ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { Ident::Relative(idents) } ) } 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: length comparison to one [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:98:1892 [INFO] [stderr] | [INFO] [stderr] 98 | fn __parse_innerIdentifier < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < Ident > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "::" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __pos = if __repeat_value . len ( ) > 0 { let __sep_res = slice_eq ( __input , __state , __pos , "::" ) ; match __sep_res { Matched ( __newpos , _ ) => { __newpos } , Failed => break , } } else { __pos } ; let __step_res = __parse_baseIdent ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , __repeat_value ) } else { Failed } } ; match __seq_res { Matched ( __pos , idents ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { Ident::Absolute(idents) } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __pos = if __repeat_value . len ( ) > 0 { let __sep_res = slice_eq ( __input , __state , __pos , "::" ) ; match __sep_res { Matched ( __newpos , _ ) => { __newpos } , Failed => break , } } else { __pos } ; let __step_res = __parse_baseIdent ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , __repeat_value ) } else { Failed } } ; match __seq_res { Matched ( __pos , idents ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { Ident::Relative(idents) } ) } 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/protodefc-22331c287f1f2c4f/out/pds.rs:116:444 [INFO] [stderr] | [INFO] [stderr] 116 | fn __parse___ < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { __state . suppress_fail += 1 ; let res = { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; let __step_res = { let __choice_res = __parse_whitespace ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_eol ( __input , __state , __pos ) } } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; } , Failed => { break ; } } } Matched ( __repeat_pos , ( ) ) } ; __state . suppress_fail -= 1 ; res } } [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] 116 | fn __parse___ < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { __state . suppress_fail += 1 ; let res = { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; let __step_res = { let __choice_res = __parse_whitespace ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , () ) , Failed => __parse_eol ( __input , __state , __pos ) } } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; } , Failed => { break ; } } } Matched ( __repeat_pos , ( ) ) } ; __state . suppress_fail -= 1 ; res } } [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:100:828 [INFO] [stderr] | [INFO] [stderr] 100 | fn __parse_baseIdent < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < String > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { __state . suppress_fail += 1 ; let 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' | 'a' ... 'z' | 'A' ... 'Z' | '_' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9a-zA-Z_]" ) , } } else { __state . mark_failure ( __pos , "[0-9a-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 , chars ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { chars.to_owned() } ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { __state . mark_failure ( __pos , "identifier" ) ; 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] 100 | fn __parse_baseIdent < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < String > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { __state . suppress_fail += 1 ; let 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' | 'a' ... 'z' | 'A' ... 'Z' | '_' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9a-zA-Z_]" ) , } } else { __state . mark_failure ( __pos , "[0-9a-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 , chars ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { chars.to_owned() } ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { __state . mark_failure ( __pos , "identifier" ) ; Failed } } } } [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:100:873 [INFO] [stderr] | [INFO] [stderr] 100 | fn __parse_baseIdent < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < String > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { __state . suppress_fail += 1 ; let 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' | 'a' ... 'z' | 'A' ... 'Z' | '_' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9a-zA-Z_]" ) , } } else { __state . mark_failure ( __pos , "[0-9a-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 , chars ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { chars.to_owned() } ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { __state . mark_failure ( __pos , "identifier" ) ; 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/protodefc-22331c287f1f2c4f/out/pds.rs:122:315 [INFO] [stderr] | [INFO] [stderr] 122 | fn __parse_eol < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = slice_eq ( __input , __state , __pos , "\n" ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => 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] 122 | fn __parse_eol < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = slice_eq ( __input , __state , __pos , "\n" ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , () ) , Failed => slice_eq ( __input , __state , __pos , "\r\n" ) } } } [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:124:2 [INFO] [stderr] | [INFO] [stderr] 124 | pub fn root < 'input > ( __input : & 'input str ) -> ParseResult < Block > { # ! [ allow ( non_snake_case , unused ) ] let mut __state = ParseState :: new ( ) ; match __parse_root ( __input , & mut __state , 0 ) { Matched ( __pos , __value ) => { if __pos == __input . len ( ) { return Ok ( __value ) } } _ => { } } let ( __line , __col ) = pos_to_line ( __input , __state . max_err_pos ) ; Err ( ParseError { line : __line , column : __col , offset : __state . max_err_pos , expected : __state . expected , } ) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:124:163 [INFO] [stderr] | [INFO] [stderr] 124 | pub fn root < 'input > ( __input : & 'input str ) -> ParseResult < Block > { # ! [ allow ( non_snake_case , unused ) ] let mut __state = ParseState :: new ( ) ; match __parse_root ( __input , & mut __state , 0 ) { Matched ( __pos , __value ) => { if __pos == __input . len ( ) { return Ok ( __value ) } } _ => { } } let ( __line , __col ) = pos_to_line ( __input , __state . max_err_pos ) ; Err ( ParseError { line : __line , column : __col , offset : __state . max_err_pos , expected : __state . expected , } ) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `if let Matched ( __pos , __value ) = __parse_root ( __input , & mut __state , 0 ) { 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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:126:2 [INFO] [stderr] | [INFO] [stderr] 126 | pub fn identifier < 'input > ( __input : & 'input str ) -> ParseResult < Ident > { # ! [ allow ( non_snake_case , unused ) ] let mut __state = ParseState :: new ( ) ; match __parse_identifier ( __input , & mut __state , 0 ) { Matched ( __pos , __value ) => { if __pos == __input . len ( ) { return Ok ( __value ) } } _ => { } } let ( __line , __col ) = pos_to_line ( __input , __state . max_err_pos ) ; Err ( ParseError { line : __line , column : __col , offset : __state . max_err_pos , expected : __state . expected , } ) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:126:169 [INFO] [stderr] | [INFO] [stderr] 126 | pub fn identifier < 'input > ( __input : & 'input str ) -> ParseResult < Ident > { # ! [ allow ( non_snake_case , unused ) ] let mut __state = ParseState :: new ( ) ; match __parse_identifier ( __input , & mut __state , 0 ) { Matched ( __pos , __value ) => { if __pos == __input . len ( ) { return Ok ( __value ) } } _ => { } } let ( __line , __col ) = pos_to_line ( __input , __state . max_err_pos ) ; Err ( ParseError { line : __line , column : __col , offset : __state . max_err_pos , expected : __state . expected , } ) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `if let Matched ( __pos , __value ) = __parse_identifier ( __input , & mut __state , 0 ) { 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: passing a unit value to a function [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:116:444 [INFO] [stderr] | [INFO] [stderr] 116 | fn __parse___ < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { __state . suppress_fail += 1 ; let res = { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; let __step_res = { let __choice_res = __parse_whitespace ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_eol ( __input , __state , __pos ) } } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; } , Failed => { break ; } } } Matched ( __repeat_pos , ( ) ) } ; __state . suppress_fail -= 1 ; res } } [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] 116 | fn __parse___ < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { __state . suppress_fail += 1 ; let res = { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; let __step_res = { let __choice_res = __parse_whitespace ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , () ) , Failed => __parse_eol ( __input , __state , __pos ) } } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; } , Failed => { break ; } } } Matched ( __repeat_pos , ( ) ) } ; __state . suppress_fail -= 1 ; res } } [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:122:315 [INFO] [stderr] | [INFO] [stderr] 122 | fn __parse_eol < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = slice_eq ( __input , __state , __pos , "\n" ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => 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] 122 | fn __parse_eol < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < () > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = slice_eq ( __input , __state , __pos , "\n" ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , () ) , Failed => slice_eq ( __input , __state , __pos , "\r\n" ) } } } [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:124:2 [INFO] [stderr] | [INFO] [stderr] 124 | pub fn root < 'input > ( __input : & 'input str ) -> ParseResult < Block > { # ! [ allow ( non_snake_case , unused ) ] let mut __state = ParseState :: new ( ) ; match __parse_root ( __input , & mut __state , 0 ) { Matched ( __pos , __value ) => { if __pos == __input . len ( ) { return Ok ( __value ) } } _ => { } } let ( __line , __col ) = pos_to_line ( __input , __state . max_err_pos ) ; Err ( ParseError { line : __line , column : __col , offset : __state . max_err_pos , expected : __state . expected , } ) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:124:163 [INFO] [stderr] | [INFO] [stderr] 124 | pub fn root < 'input > ( __input : & 'input str ) -> ParseResult < Block > { # ! [ allow ( non_snake_case , unused ) ] let mut __state = ParseState :: new ( ) ; match __parse_root ( __input , & mut __state , 0 ) { Matched ( __pos , __value ) => { if __pos == __input . len ( ) { return Ok ( __value ) } } _ => { } } let ( __line , __col ) = pos_to_line ( __input , __state . max_err_pos ) ; Err ( ParseError { line : __line , column : __col , offset : __state . max_err_pos , expected : __state . expected , } ) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `if let Matched ( __pos , __value ) = __parse_root ( __input , & mut __state , 0 ) { 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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> /opt/crater/target/debug/build/protodefc-22331c287f1f2c4f/out/pds.rs:126:2 [INFO] [stderr] | [INFO] [stderr] 126 | pub fn identifier < 'input > ( __input : & 'input str ) -> ParseResult < Ident > { # ! [ allow ( non_snake_case , unused ) ] let mut __state = ParseState :: new ( ) ; match __parse_identifier ( __input , & mut __state , 0 ) { Matched ( __pos , __value ) => { if __pos == __input . len ( ) { return Ok ( __value ) } } _ => { } } let ( __line , __col ) = pos_to_line ( __input , __state . max_err_pos ) ; Err ( ParseError { line : __line , column : __col , offset : __state . max_err_pos , expected : __state . expected , } ) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/frontend/protocol_spec/ast/printer.rs:59:16 [INFO] [stderr] | [INFO] [stderr] 59 | if args.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!args.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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/frontend/protocol_spec/ast/printer.rs:62:21 [INFO] [stderr] | [INFO] [stderr] 62 | / if let &Some(ref tag_i) = tag { [INFO] [stderr] 63 | | out.push_str(tag_i); [INFO] [stderr] 64 | | out.push_str(": "); [INFO] [stderr] 65 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [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] 62 | if let Some(ref tag_i) = *tag { [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/protodefc-22331c287f1f2c4f/out/pds.rs:126:169 [INFO] [stderr] | [INFO] [stderr] 126 | pub fn identifier < 'input > ( __input : & 'input str ) -> ParseResult < Ident > { # ! [ allow ( non_snake_case , unused ) ] let mut __state = ParseState :: new ( ) ; match __parse_identifier ( __input , & mut __state , 0 ) { Matched ( __pos , __value ) => { if __pos == __input . len ( ) { return Ok ( __value ) } } _ => { } } let ( __line , __col ) = pos_to_line ( __input , __state . max_err_pos ) ; Err ( ParseError { line : __line , column : __col , offset : __state . max_err_pos , expected : __state . expected , } ) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `if let Matched ( __pos , __value ) = __parse_identifier ( __input , & mut __state , 0 ) { 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: length comparison to zero [INFO] [stderr] --> src/frontend/protocol_spec/ast/printer.rs:75:16 [INFO] [stderr] | [INFO] [stderr] 75 | if block.statements.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!block.statements.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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/frontend/protocol_spec/ast/value_helpers.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | / pub fn get_num<'a>(&'a self, num: usize) -> Option<&'a Value> { [INFO] [stderr] 18 | | self.args.get(num).map(|v| &v.value) [INFO] [stderr] 19 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/frontend/protocol_spec/ast/printer.rs:59:16 [INFO] [stderr] | [INFO] [stderr] 59 | if args.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/frontend/protocol_spec/ast/value_helpers.rs:32:28 [INFO] [stderr] | [INFO] [stderr] 32 | return Err(format!( [INFO] [stderr] | ____________________________^ [INFO] [stderr] 33 | | "untagged properties can only exist at the beginning")); [INFO] [stderr] | |__________________________________________________________________________^ help: consider using .to_string(): `"untagged properties can only exist at the beginning".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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/frontend/protocol_spec/ast/printer.rs:62:21 [INFO] [stderr] | [INFO] [stderr] 62 | / if let &Some(ref tag_i) = tag { [INFO] [stderr] 63 | | out.push_str(tag_i); [INFO] [stderr] 64 | | out.push_str(": "); [INFO] [stderr] 65 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [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] 62 | if let Some(ref tag_i) = *tag { [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/frontend/protocol_spec/ast/printer.rs:75:16 [INFO] [stderr] | [INFO] [stderr] 75 | if block.statements.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!block.statements.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/frontend/protocol_spec/ast/value_helpers.rs:74:9 [INFO] [stderr] | [INFO] [stderr] 74 | self.args.len() == 0 && self.block.statements.len() == 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/frontend/protocol_spec/ast/value_helpers.rs:74:33 [INFO] [stderr] | [INFO] [stderr] 74 | self.args.len() == 0 && self.block.statements.len() == 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.block.statements.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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/frontend/protocol_spec/ast/value_helpers.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | / pub fn get_num<'a>(&'a self, num: usize) -> Option<&'a Value> { [INFO] [stderr] 18 | | self.args.get(num).map(|v| &v.value) [INFO] [stderr] 19 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/frontend/protocol_spec/ast/value_helpers.rs:32:28 [INFO] [stderr] | [INFO] [stderr] 32 | return Err(format!( [INFO] [stderr] | ____________________________^ [INFO] [stderr] 33 | | "untagged properties can only exist at the beginning")); [INFO] [stderr] | |__________________________________________________________________________^ help: consider using .to_string(): `"untagged properties can only exist at the beginning".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] --> src/frontend/protocol_spec/ast/value_helpers.rs:74:9 [INFO] [stderr] | [INFO] [stderr] 74 | self.args.len() == 0 && self.block.statements.len() == 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/frontend/protocol_spec/ast/value_helpers.rs:74:33 [INFO] [stderr] | [INFO] [stderr] 74 | self.args.len() == 0 && self.block.statements.len() == 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.block.statements.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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/frontend/protocol_spec/ast/mod.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | / pub fn item<'a>(&'a self) -> Option<&'a Item> { [INFO] [stderr] 61 | | if let &Value::Item(ref item) = self { [INFO] [stderr] 62 | | Some(item) [INFO] [stderr] 63 | | } else { [INFO] [stderr] 64 | | None [INFO] [stderr] 65 | | } [INFO] [stderr] 66 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/frontend/protocol_spec/ast/mod.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | / pub fn item<'a>(&'a self) -> Option<&'a Item> { [INFO] [stderr] 61 | | if let &Value::Item(ref item) = self { [INFO] [stderr] 62 | | Some(item) [INFO] [stderr] 63 | | } else { [INFO] [stderr] 64 | | None [INFO] [stderr] 65 | | } [INFO] [stderr] 66 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/frontend/protocol_spec/ast/mod.rs:61:9 [INFO] [stderr] | [INFO] [stderr] 61 | / if let &Value::Item(ref item) = self { [INFO] [stderr] 62 | | Some(item) [INFO] [stderr] 63 | | } else { [INFO] [stderr] 64 | | None [INFO] [stderr] 65 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 61 | if let Value::Item(ref item) = *self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/frontend/protocol_spec/ast/mod.rs:61:9 [INFO] [stderr] | [INFO] [stderr] 61 | / if let &Value::Item(ref item) = self { [INFO] [stderr] 62 | | Some(item) [INFO] [stderr] 63 | | } else { [INFO] [stderr] 64 | | None [INFO] [stderr] 65 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 61 | if let Value::Item(ref item) = *self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/frontend/protocol_spec/ast/mod.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | / pub fn string<'a>(&'a self) -> Option<&'a str> { [INFO] [stderr] 69 | | if let &Value::String { ref string, .. } = self { [INFO] [stderr] 70 | | Some(string) [INFO] [stderr] 71 | | } else { [INFO] [stderr] 72 | | None [INFO] [stderr] 73 | | } [INFO] [stderr] 74 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/frontend/protocol_spec/ast/mod.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | / pub fn string<'a>(&'a self) -> Option<&'a str> { [INFO] [stderr] 69 | | if let &Value::String { ref string, .. } = self { [INFO] [stderr] 70 | | Some(string) [INFO] [stderr] 71 | | } else { [INFO] [stderr] 72 | | None [INFO] [stderr] 73 | | } [INFO] [stderr] 74 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/frontend/protocol_spec/ast/mod.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | / if let &Value::String { ref string, .. } = self { [INFO] [stderr] 70 | | Some(string) [INFO] [stderr] 71 | | } else { [INFO] [stderr] 72 | | None [INFO] [stderr] 73 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 69 | if let Value::String { ref string, .. } = *self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] [INFO] [stderr] --> src/frontend/protocol_spec/ast/mod.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | / if let &Value::String { ref string, .. } = self { [INFO] [stderr] 70 | | Some(string) [INFO] [stderr] 71 | | } else { [INFO] [stderr] 72 | | None [INFO] [stderr] 73 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 69 | if let Value::String { ref string, .. } = *self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/frontend/protocol_spec/ast/mod.rs:77:23 [INFO] [stderr] | [INFO] [stderr] 77 | self.string().ok_or("reference must be string".into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "reference must be string".into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/frontend/protocol_spec/ast/mod.rs:77:23 [INFO] [stderr] | [INFO] [stderr] 77 | self.string().ok_or("reference must be string".into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "reference must be string".into())` [INFO] [stderr] | [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/frontend/protocol_spec/ast/mod.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | / pub fn arg<'a>(&'a self, pos: usize) -> Option<&'a Value> { [INFO] [stderr] 93 | | self.args [INFO] [stderr] 94 | | .get(pos) [INFO] [stderr] 95 | | .map(|a| &a.value) [INFO] [stderr] 96 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/frontend/protocol_spec/ast/mod.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | / pub fn arg<'a>(&'a self, pos: usize) -> Option<&'a Value> { [INFO] [stderr] 93 | | self.args [INFO] [stderr] 94 | | .get(pos) [INFO] [stderr] 95 | | .map(|a| &a.value) [INFO] [stderr] 96 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/frontend/protocol_spec/to_ir/spec.rs:18:8 [INFO] [stderr] | [INFO] [stderr] 18 | if items.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `items.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/frontend/protocol_spec/to_ir/spec.rs:18:8 [INFO] [stderr] | [INFO] [stderr] 18 | if items.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `items.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/frontend/protocol_spec/to_ir/spec.rs:112:23 [INFO] [stderr] | [INFO] [stderr] 112 | .string().ok_or("length in array must be reference".into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "length in array must be reference".into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/frontend/protocol_spec/to_ir/spec.rs:112:23 [INFO] [stderr] | [INFO] [stderr] 112 | .string().ok_or("length in array must be reference".into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "length in array must be reference".into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/frontend/protocol_spec/to_ir/compilation_unit.rs:53:27 [INFO] [stderr] | [INFO] [stderr] 53 | )?.unwrap_or_else(|| String::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::new` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/frontend/protocol_spec/to_ir/compilation_unit.rs:52:23 [INFO] [stderr] | [INFO] [stderr] 52 | .ok_or("doc attribute must be string".into())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "doc attribute must be string".into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this call to `as_ref` does nothing [INFO] [stderr] --> src/frontend/protocol_spec/to_ir/compilation_unit.rs:55:15 [INFO] [stderr] | [INFO] [stderr] 55 | match head_item_name.as_ref() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `head_item_name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_asref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/frontend/protocol_spec/to_ir/compilation_unit.rs:68:31 [INFO] [stderr] | [INFO] [stderr] 68 | .ok_or("export attribute must be string".into())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "export attribute must be string".into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/frontend/protocol_spec/to_ir/compilation_unit.rs:53:27 [INFO] [stderr] | [INFO] [stderr] 53 | )?.unwrap_or_else(|| String::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::new` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/frontend/protocol_spec/to_ir/compilation_unit.rs:52:23 [INFO] [stderr] | [INFO] [stderr] 52 | .ok_or("doc attribute must be string".into())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "doc attribute must be string".into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this call to `as_ref` does nothing [INFO] [stderr] --> src/frontend/protocol_spec/to_ir/compilation_unit.rs:55:15 [INFO] [stderr] | [INFO] [stderr] 55 | match head_item_name.as_ref() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `head_item_name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_asref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/frontend/protocol_spec/to_ir/compilation_unit.rs:68:31 [INFO] [stderr] | [INFO] [stderr] 68 | .ok_or("export attribute must be string".into())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "export attribute must be string".into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: The function/method `do_run` doesn't need a mutable reference [INFO] [stderr] --> src/pass/assign_parent.rs:22:16 [INFO] [stderr] | [INFO] [stderr] 22 | do_run(&mut child, Some(typ.downgrade()))?; [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: The function/method `do_run` doesn't need a mutable reference [INFO] [stderr] --> src/pass/assign_ident.rs:24:16 [INFO] [stderr] | [INFO] [stderr] 24 | do_run(&mut child, current_id)?; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [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: The function/method `do_run` doesn't need a mutable reference [INFO] [stderr] --> src/pass/assign_parent.rs:22:16 [INFO] [stderr] | [INFO] [stderr] 22 | do_run(&mut child, Some(typ.downgrade()))?; [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: The function/method `do_run` doesn't need a mutable reference [INFO] [stderr] --> src/pass/assign_ident.rs:24:16 [INFO] [stderr] | [INFO] [stderr] 24 | do_run(&mut child, current_id)?; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [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: Matching on `Some` with `ok()` is redundant [INFO] [stderr] --> src/pass/resolve_reference.rs:181:17 [INFO] [stderr] | [INFO] [stderr] 181 | / if let Some(ref prop_type) = prop_type_res.ok() { [INFO] [stderr] 182 | | path_entries.push(ReferencePathEntryData { [INFO] [stderr] 183 | | operation: ReferencePathEntryOperation::NodeProperty(name.clone()), [INFO] [stderr] 184 | | node: current_node.clone().map(|i| i.downgrade()), [INFO] [stderr] ... | [INFO] [stderr] 193 | | } [INFO] [stderr] 194 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::if_let_some_result)] on by default [INFO] [stderr] = help: Consider matching on `Ok(ref prop_type)` and removing the call to `ok` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_let_some_result [INFO] [stderr] [INFO] [stderr] warning: Matching on `Some` with `ok()` is redundant [INFO] [stderr] --> src/pass/resolve_reference.rs:181:17 [INFO] [stderr] | [INFO] [stderr] 181 | / if let Some(ref prop_type) = prop_type_res.ok() { [INFO] [stderr] 182 | | path_entries.push(ReferencePathEntryData { [INFO] [stderr] 183 | | operation: ReferencePathEntryOperation::NodeProperty(name.clone()), [INFO] [stderr] 184 | | node: current_node.clone().map(|i| i.downgrade()), [INFO] [stderr] ... | [INFO] [stderr] 193 | | } [INFO] [stderr] 194 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::if_let_some_result)] on by default [INFO] [stderr] = help: Consider matching on `Ok(ref prop_type)` and removing the call to `ok` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_let_some_result [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/errors.rs:78:17 [INFO] [stderr] | [INFO] [stderr] 78 | format!("nom parse errror"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"nom parse errror".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: identical conversion [INFO] [stderr] --> src/errors.rs:91:9 [INFO] [stderr] | [INFO] [stderr] 91 | ErrorKind::CompilerError(typ).into() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `ErrorKind::CompilerError(typ)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/old_protocol_json_to_pds/namespace.rs:44:8 [INFO] [stderr] | [INFO] [stderr] 44 | if ns_block.statements.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!ns_block.statements.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/errors.rs:78:17 [INFO] [stderr] | [INFO] [stderr] 78 | format!("nom parse errror"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"nom parse errror".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: identical conversion [INFO] [stderr] --> src/errors.rs:91:9 [INFO] [stderr] | [INFO] [stderr] 91 | ErrorKind::CompilerError(typ).into() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `ErrorKind::CompilerError(typ)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/old_protocol_json_to_pds/typ.rs:85:23 [INFO] [stderr] | [INFO] [stderr] 85 | let is_anon = field["anon"] == true; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `field["anon"]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/old_protocol_json_to_pds/namespace.rs:44:8 [INFO] [stderr] | [INFO] [stderr] 44 | if ns_block.statements.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!ns_block.statements.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: equality checks against true are unnecessary [INFO] [stderr] --> src/old_protocol_json_to_pds/typ.rs:85:23 [INFO] [stderr] | [INFO] [stderr] 85 | let is_anon = field["anon"] == true; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `field["anon"]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `protodefc`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: Could not compile `protodefc`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "4ed91f47af411490eb54ab9ef2bcce1abfe101926916061ffac1081de646d542"` [INFO] running `"docker" "rm" "-f" "4ed91f47af411490eb54ab9ef2bcce1abfe101926916061ffac1081de646d542"` [INFO] [stdout] 4ed91f47af411490eb54ab9ef2bcce1abfe101926916061ffac1081de646d542