[INFO] crate dynamo 0.1.0 is already in cache [INFO] extracting crate dynamo 0.1.0 into work/ex/clippy-test-run/sources/stable/reg/dynamo/0.1.0 [INFO] extracting crate dynamo 0.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/dynamo/0.1.0 [INFO] validating manifest of dynamo-0.1.0 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 dynamo-0.1.0 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 dynamo-0.1.0 [INFO] finished frobbing dynamo-0.1.0 [INFO] frobbed toml for dynamo-0.1.0 written to work/ex/clippy-test-run/sources/stable/reg/dynamo/0.1.0/Cargo.toml [INFO] started frobbing dynamo-0.1.0 [INFO] finished frobbing dynamo-0.1.0 [INFO] frobbed toml for dynamo-0.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/dynamo/0.1.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting dynamo-0.1.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/dynamo/0.1.0:/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] 45df8145d17f7ee40f281d97f11ff76634a29938b39f6c47fdd7604a957e0808 [INFO] running `"docker" "start" "-a" "45df8145d17f7ee40f281d97f11ff76634a29938b39f6c47fdd7604a957e0808"` [INFO] [stderr] Checking range v0.3.1 [INFO] [stderr] Checking read_token v0.6.2 [INFO] [stderr] Checking piston_meta v0.25.1 [INFO] [stderr] Checking dynamo v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/ast.rs:74:13 [INFO] [stderr] | [INFO] [stderr] 74 | 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/ast.rs:75:13 [INFO] [stderr] | [INFO] [stderr] 75 | 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/ast.rs:76:13 [INFO] [stderr] | [INFO] [stderr] 76 | 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/ast.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | returns: returns [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `returns` [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/ast.rs:117:13 [INFO] [stderr] | [INFO] [stderr] 117 | 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/ast.rs:118:13 [INFO] [stderr] | [INFO] [stderr] 118 | lifetime: lifetime [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `lifetime` [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/ast.rs:152:13 [INFO] [stderr] | [INFO] [stderr] 152 | expressions: expressions [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `expressions` [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/ast.rs:232:55 [INFO] [stderr] | [INFO] [stderr] 232 | result = Some(Expression::Bool(Bool { val: val })); [INFO] [stderr] | ^^^^^^^^ help: replace it with: `val` [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/ast.rs:300:47 [INFO] [stderr] | [INFO] [stderr] 300 | Ok((convert.subtract(start), Object { key_values: key_values })) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `key_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/ast.rs:369:46 [INFO] [stderr] | [INFO] [stderr] 369 | Ok((convert.subtract(start), Array { 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/ast.rs:412:44 [INFO] [stderr] | [INFO] [stderr] 412 | Ok((convert.subtract(start), Add { items: items, ops: ops })) [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/ast.rs:412:58 [INFO] [stderr] | [INFO] [stderr] 412 | Ok((convert.subtract(start), Add { items: items, ops: ops })) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ops` [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/ast.rs:422:17 [INFO] [stderr] | [INFO] [stderr] 422 | op: op, [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [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/ast.rs:472:44 [INFO] [stderr] | [INFO] [stderr] 472 | Ok((convert.subtract(start), Mul { items: items, ops: ops })) [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/ast.rs:472:58 [INFO] [stderr] | [INFO] [stderr] 472 | Ok((convert.subtract(start), Mul { items: items, ops: ops })) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ops` [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/ast.rs:482:17 [INFO] [stderr] | [INFO] [stderr] 482 | op: op, [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [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/ast.rs:562:44 [INFO] [stderr] | [INFO] [stderr] 562 | Ok((convert.subtract(start), Pow { base: base, exp: exp })) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `base` [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/ast.rs:562:56 [INFO] [stderr] | [INFO] [stderr] 562 | Ok((convert.subtract(start), Pow { base: base, exp: exp })) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `exp` [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/ast.rs:626:45 [INFO] [stderr] | [INFO] [stderr] 626 | Ok((convert.subtract(start), Item { name: name, ids: ids })) [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/ast.rs:626:57 [INFO] [stderr] | [INFO] [stderr] 626 | Ok((convert.subtract(start), Item { name: name, ids: ids })) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ids` [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/ast.rs:668:13 [INFO] [stderr] | [INFO] [stderr] 668 | 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/ast.rs:669:13 [INFO] [stderr] | [INFO] [stderr] 669 | 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/ast.rs:748:13 [INFO] [stderr] | [INFO] [stderr] 748 | op: op, [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [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/ast.rs:749:13 [INFO] [stderr] | [INFO] [stderr] 749 | left: left, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `left` [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/ast.rs:750:13 [INFO] [stderr] | [INFO] [stderr] 750 | right: right [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `right` [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/ast.rs:849:13 [INFO] [stderr] | [INFO] [stderr] 849 | 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/ast.rs:850:13 [INFO] [stderr] | [INFO] [stderr] 850 | 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/ast.rs:851:13 [INFO] [stderr] | [INFO] [stderr] 851 | step: step, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `step` [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/ast.rs:852:13 [INFO] [stderr] | [INFO] [stderr] 852 | 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/ast.rs:853:13 [INFO] [stderr] | [INFO] [stderr] 853 | label: label [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `label` [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/ast.rs:896:13 [INFO] [stderr] | [INFO] [stderr] 896 | 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/ast.rs:897:13 [INFO] [stderr] | [INFO] [stderr] 897 | label: label [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `label` [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/ast.rs:943:13 [INFO] [stderr] | [INFO] [stderr] 943 | label: label [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `label` [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/ast.rs:979:13 [INFO] [stderr] | [INFO] [stderr] 979 | label: label [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `label` [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/ast.rs:1030:13 [INFO] [stderr] | [INFO] [stderr] 1030 | 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/ast.rs:1031:13 [INFO] [stderr] | [INFO] [stderr] 1031 | true_block: true_block, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `true_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/ast.rs:1032:13 [INFO] [stderr] | [INFO] [stderr] 1032 | else_block: else_block [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `else_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/ast.rs:1098:13 [INFO] [stderr] | [INFO] [stderr] 1098 | op: op, [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [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/ast.rs:1099:13 [INFO] [stderr] | [INFO] [stderr] 1099 | left: left, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `left` [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/ast.rs:1100:13 [INFO] [stderr] | [INFO] [stderr] 1100 | right: right [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `right` [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: using `println!("")` [INFO] [stderr] --> src/runtime.rs:253:25 [INFO] [stderr] | [INFO] [stderr] 253 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lifetime.rs:24:21 [INFO] [stderr] | [INFO] [stderr] 24 | kind: kind, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [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/lifetime.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | parent: parent, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `parent` [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/ast.rs:74:13 [INFO] [stderr] | [INFO] [stderr] 74 | 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/ast.rs:75:13 [INFO] [stderr] | [INFO] [stderr] 75 | 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/ast.rs:76:13 [INFO] [stderr] | [INFO] [stderr] 76 | 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/ast.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | returns: returns [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `returns` [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/ast.rs:117:13 [INFO] [stderr] | [INFO] [stderr] 117 | 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/ast.rs:118:13 [INFO] [stderr] | [INFO] [stderr] 118 | lifetime: lifetime [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `lifetime` [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/ast.rs:152:13 [INFO] [stderr] | [INFO] [stderr] 152 | expressions: expressions [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `expressions` [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/ast.rs:232:55 [INFO] [stderr] | [INFO] [stderr] 232 | result = Some(Expression::Bool(Bool { val: val })); [INFO] [stderr] | ^^^^^^^^ help: replace it with: `val` [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/ast.rs:300:47 [INFO] [stderr] | [INFO] [stderr] 300 | Ok((convert.subtract(start), Object { key_values: key_values })) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `key_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/ast.rs:369:46 [INFO] [stderr] | [INFO] [stderr] 369 | Ok((convert.subtract(start), Array { 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/ast.rs:412:44 [INFO] [stderr] | [INFO] [stderr] 412 | Ok((convert.subtract(start), Add { items: items, ops: ops })) [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/ast.rs:412:58 [INFO] [stderr] | [INFO] [stderr] 412 | Ok((convert.subtract(start), Add { items: items, ops: ops })) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ops` [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/ast.rs:422:17 [INFO] [stderr] | [INFO] [stderr] 422 | op: op, [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [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/ast.rs:472:44 [INFO] [stderr] | [INFO] [stderr] 472 | Ok((convert.subtract(start), Mul { items: items, ops: ops })) [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/ast.rs:472:58 [INFO] [stderr] | [INFO] [stderr] 472 | Ok((convert.subtract(start), Mul { items: items, ops: ops })) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ops` [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/ast.rs:482:17 [INFO] [stderr] | [INFO] [stderr] 482 | op: op, [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [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/ast.rs:562:44 [INFO] [stderr] | [INFO] [stderr] 562 | Ok((convert.subtract(start), Pow { base: base, exp: exp })) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `base` [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/ast.rs:562:56 [INFO] [stderr] | [INFO] [stderr] 562 | Ok((convert.subtract(start), Pow { base: base, exp: exp })) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `exp` [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/ast.rs:626:45 [INFO] [stderr] | [INFO] [stderr] 626 | Ok((convert.subtract(start), Item { name: name, ids: ids })) [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/ast.rs:626:57 [INFO] [stderr] | [INFO] [stderr] 626 | Ok((convert.subtract(start), Item { name: name, ids: ids })) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ids` [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/ast.rs:668:13 [INFO] [stderr] | [INFO] [stderr] 668 | 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/ast.rs:669:13 [INFO] [stderr] | [INFO] [stderr] 669 | 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/ast.rs:748:13 [INFO] [stderr] | [INFO] [stderr] 748 | op: op, [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [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/ast.rs:749:13 [INFO] [stderr] | [INFO] [stderr] 749 | left: left, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `left` [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/ast.rs:750:13 [INFO] [stderr] | [INFO] [stderr] 750 | right: right [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `right` [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/ast.rs:849:13 [INFO] [stderr] | [INFO] [stderr] 849 | 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/ast.rs:850:13 [INFO] [stderr] | [INFO] [stderr] 850 | 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/ast.rs:851:13 [INFO] [stderr] | [INFO] [stderr] 851 | step: step, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `step` [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/ast.rs:852:13 [INFO] [stderr] | [INFO] [stderr] 852 | 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/ast.rs:853:13 [INFO] [stderr] | [INFO] [stderr] 853 | label: label [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `label` [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/ast.rs:896:13 [INFO] [stderr] | [INFO] [stderr] 896 | 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/ast.rs:897:13 [INFO] [stderr] | [INFO] [stderr] 897 | label: label [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `label` [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/ast.rs:943:13 [INFO] [stderr] | [INFO] [stderr] 943 | label: label [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `label` [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/ast.rs:979:13 [INFO] [stderr] | [INFO] [stderr] 979 | label: label [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `label` [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/ast.rs:1030:13 [INFO] [stderr] | [INFO] [stderr] 1030 | 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/ast.rs:1031:13 [INFO] [stderr] | [INFO] [stderr] 1031 | true_block: true_block, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `true_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/ast.rs:1032:13 [INFO] [stderr] | [INFO] [stderr] 1032 | else_block: else_block [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `else_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/ast.rs:1098:13 [INFO] [stderr] | [INFO] [stderr] 1098 | op: op, [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [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/ast.rs:1099:13 [INFO] [stderr] | [INFO] [stderr] 1099 | left: left, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `left` [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/ast.rs:1100:13 [INFO] [stderr] | [INFO] [stderr] 1100 | right: right [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `right` [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: using `println!("")` [INFO] [stderr] --> src/runtime.rs:253:25 [INFO] [stderr] | [INFO] [stderr] 253 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lifetime.rs:24:21 [INFO] [stderr] | [INFO] [stderr] 24 | kind: kind, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [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/lifetime.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | parent: parent, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `parent` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/runtime.rs:481:41 [INFO] [stderr] | [INFO] [stderr] 481 | return (Expect::Something, Flow::Continue) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(Expect::Something, Flow::Continue)` [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/runtime.rs:496:33 [INFO] [stderr] | [INFO] [stderr] 496 | return (b, Flow::Continue) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(b, Flow::Continue)` [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: unneeded return statement [INFO] [stderr] --> src/lifetime.rs:528:5 [INFO] [stderr] | [INFO] [stderr] 528 | / return Some(if let Some(ref lt) = arg.lifetime { [INFO] [stderr] 529 | | if &**lt == "return" { [INFO] [stderr] 530 | | return Some(Lifetime::Return(vec![declaration])); [INFO] [stderr] 531 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 554 | | Lifetime::Argument(vec![declaration]) [INFO] [stderr] 555 | | }) [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 528 | Some(if let Some(ref lt) = arg.lifetime { [INFO] [stderr] 529 | if &**lt == "return" { [INFO] [stderr] 530 | return Some(Lifetime::Return(vec![declaration])); [INFO] [stderr] 531 | } else { [INFO] [stderr] 532 | // Resolve lifetimes among arguments. [INFO] [stderr] 533 | let parent = arg.parent.expect("Expected parent"); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error[E0554]: #![feature] may not be used on the stable release channel [INFO] [stderr] --> src/lib.rs:1:19 [INFO] [stderr] | [INFO] [stderr] 1 | #![cfg_attr(test, feature(test))] [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0554`. [INFO] [stderr] error: Could not compile `dynamo`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/ast.rs:37:21 [INFO] [stderr] | [INFO] [stderr] 37 | let start = convert.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `convert` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/ast.rs:91:21 [INFO] [stderr] | [INFO] [stderr] 91 | let start = convert.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `convert` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/ast.rs:131:21 [INFO] [stderr] | [INFO] [stderr] 131 | let start = convert.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `convert` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/ast.rs:183:21 [INFO] [stderr] | [INFO] [stderr] 183 | let start = convert.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `convert` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/ast.rs:279:21 [INFO] [stderr] | [INFO] [stderr] 279 | let start = convert.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `convert` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/ast.rs:307:21 [INFO] [stderr] | [INFO] [stderr] 307 | let start = convert.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `convert` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/ast.rs:348:21 [INFO] [stderr] | [INFO] [stderr] 348 | let start = convert.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `convert` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/ast.rs:384:21 [INFO] [stderr] | [INFO] [stderr] 384 | let start = convert.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `convert` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/ast.rs:415:26 [INFO] [stderr] | [INFO] [stderr] 415 | pub fn to_expression(mut self) -> Expression { [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/ast.rs:441:21 [INFO] [stderr] | [INFO] [stderr] 441 | let start = convert.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `convert` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/ast.rs:475:26 [INFO] [stderr] | [INFO] [stderr] 475 | pub fn to_expression(mut self) -> Expression { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [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: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/ast.rs:511:26 [INFO] [stderr] | [INFO] [stderr] 511 | pub fn to_expression(self) -> Expression { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/ast.rs:534:21 [INFO] [stderr] | [INFO] [stderr] 534 | let start = convert.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `convert` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/ast.rs:594:21 [INFO] [stderr] | [INFO] [stderr] 594 | let start = convert.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `convert` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/ast.rs:641:21 [INFO] [stderr] | [INFO] [stderr] 641 | let start = convert.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `convert` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/ast.rs:693:21 [INFO] [stderr] | [INFO] [stderr] 693 | let start = convert.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `convert` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/ast.rs:804:21 [INFO] [stderr] | [INFO] [stderr] 804 | let start = convert.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `convert` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/ast.rs:869:21 [INFO] [stderr] | [INFO] [stderr] 869 | let start = convert.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `convert` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/ast.rs:901:26 [INFO] [stderr] | [INFO] [stderr] 901 | pub fn to_expression(self) -> Expression { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/ast.rs:922:21 [INFO] [stderr] | [INFO] [stderr] 922 | let start = convert.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `convert` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/ast.rs:958:21 [INFO] [stderr] | [INFO] [stderr] 958 | let start = convert.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `convert` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/ast.rs:996:21 [INFO] [stderr] | [INFO] [stderr] 996 | let start = convert.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `convert` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/ast.rs:1049:21 [INFO] [stderr] | [INFO] [stderr] 1049 | let start = convert.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `convert` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/runtime.rs:43:23 [INFO] [stderr] | [INFO] [stderr] 43 | fn resolve<'a>(stack: &'a Vec, var: &'a Variable) -> &'a Variable { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: change this to: `&[Variable]` [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: you should consider adding a `Default` implementation for `runtime::Runtime` [INFO] [stderr] --> src/runtime.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | / pub fn new() -> Runtime { [INFO] [stderr] 52 | | Runtime { [INFO] [stderr] 53 | | stack: vec![], [INFO] [stderr] 54 | | call_stack: vec![], [INFO] [stderr] ... | [INFO] [stderr] 59 | | } [INFO] [stderr] 60 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 50 | impl Default for runtime::Runtime { [INFO] [stderr] 51 | fn default() -> Self { [INFO] [stderr] 52 | Self::new() [INFO] [stderr] 53 | } [INFO] [stderr] 54 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/runtime.rs:109:9 [INFO] [stderr] | [INFO] [stderr] 109 | / match self.resolve(&x) { [INFO] [stderr] 110 | | &Variable::F64(a) => { [INFO] [stderr] 111 | | self.stack.push(Variable::F64(f(a))); [INFO] [stderr] 112 | | } [INFO] [stderr] 113 | | _ => panic!("Expected number") [INFO] [stderr] 114 | | } [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] 109 | match *self.resolve(&x) { [INFO] [stderr] 110 | Variable::F64(a) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/runtime.rs:194:32 [INFO] [stderr] | [INFO] [stderr] 194 | pub fn run(&mut self, ast: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `&[ast::Function]` [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: length comparison to zero [INFO] [stderr] --> src/runtime.rs:204:20 [INFO] [stderr] | [INFO] [stderr] 204 | if f.args.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!f.args.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: the function has a cyclomatic complexity of 27 [INFO] [stderr] --> src/runtime.rs:225:5 [INFO] [stderr] | [INFO] [stderr] 225 | / fn call(&mut self, call: &ast::Call) -> (Expect, Flow) { [INFO] [stderr] 226 | | let functions = self.functions.clone(); [INFO] [stderr] 227 | | match functions.get(&call.name) { [INFO] [stderr] 228 | | None => { [INFO] [stderr] ... | [INFO] [stderr] 502 | | } [INFO] [stderr] 503 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/runtime.rs:319:39 [INFO] [stderr] | [INFO] [stderr] 319 | let arr = match self.resolve(&v) { [INFO] [stderr] | _______________________________________^ [INFO] [stderr] 320 | | &Variable::Array(ref arr) => arr, [INFO] [stderr] 321 | | _ => panic!("Expected array") [INFO] [stderr] 322 | | }; [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] 319 | let arr = match *self.resolve(&v) { [INFO] [stderr] 320 | Variable::Array(ref arr) => arr, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/runtime.rs:397:33 [INFO] [stderr] | [INFO] [stderr] 397 | let v = match self.resolve(&v) { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 398 | | &Variable::Text(ref t) => Variable::Text(t.clone()), [INFO] [stderr] 399 | | &Variable::F64(v) => { [INFO] [stderr] 400 | | Variable::Text(Arc::new(format!("{}", v))) [INFO] [stderr] 401 | | } [INFO] [stderr] 402 | | _ => unimplemented!(), [INFO] [stderr] 403 | | }; [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] 397 | let v = match *self.resolve(&v) { [INFO] [stderr] 398 | Variable::Text(ref t) => Variable::Text(t.clone()), [INFO] [stderr] 399 | Variable::F64(v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/runtime.rs:451:29 [INFO] [stderr] | [INFO] [stderr] 451 | let j = match &self.stack[j] { [INFO] [stderr] | _____________________________^ [INFO] [stderr] 452 | | &Variable::Ref(ind) => ind, [INFO] [stderr] 453 | | _ => j [INFO] [stderr] 454 | | }; [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] 451 | let j = match self.stack[j] { [INFO] [stderr] 452 | Variable::Ref(ind) => ind, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/runtime.rs:488:36 [INFO] [stderr] | [INFO] [stderr] 488 | if self.stack.len() == 0 => [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.stack.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/runtime.rs:550:24 [INFO] [stderr] | [INFO] [stderr] 550 | if item.ids.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!item.ids.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/runtime.rs:592:21 [INFO] [stderr] | [INFO] [stderr] 592 | / match self.resolve(&b) { [INFO] [stderr] 593 | | &Variable::F64(b) => { [INFO] [stderr] 594 | | unsafe { [INFO] [stderr] 595 | | match *r { [INFO] [stderr] ... | [INFO] [stderr] 696 | | _ => unimplemented!() [INFO] [stderr] 697 | | }; [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] 592 | match *self.resolve(&b) { [INFO] [stderr] 593 | Variable::F64(b) => { [INFO] [stderr] 594 | unsafe { [INFO] [stderr] 595 | match *r { [INFO] [stderr] 596 | Variable::F64(ref mut n) => { [INFO] [stderr] 597 | match op { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/runtime.rs:707:12 [INFO] [stderr] | [INFO] [stderr] 707 | if item.ids.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `item.ids.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: needlessly taken reference of left operand [INFO] [stderr] --> src/runtime.rs:711:20 [INFO] [stderr] | [INFO] [stderr] 711 | if &**n == name { [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: use the left value directly: `**n` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/runtime.rs:722:13 [INFO] [stderr] | [INFO] [stderr] 722 | / if let &Id::Expression(ref expr) = id { [INFO] [stderr] 723 | | self.expression(expr, Side::Right); [INFO] [stderr] 724 | | } [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] 722 | if let Id::Expression(ref expr) = *id { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of left operand [INFO] [stderr] --> src/runtime.rs:736:16 [INFO] [stderr] | [INFO] [stderr] 736 | if &**n != name { continue; } [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: use the left value directly: `**n` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/runtime.rs:738:42 [INFO] [stderr] | [INFO] [stderr] 738 | let mut var: &Variable = match resolve(stack, &stack[id]) { [INFO] [stderr] | __________________________________________^ [INFO] [stderr] 739 | | &Variable::Object(ref obj) => { [INFO] [stderr] 740 | | let id = match &item.ids[0] { [INFO] [stderr] 741 | | &Id::String(ref id) => id, [INFO] [stderr] ... | [INFO] [stderr] 765 | | _ => panic!("Expected object or array") [INFO] [stderr] 766 | | }; [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] 738 | let mut var: &Variable = match *resolve(stack, &stack[id]) { [INFO] [stderr] 739 | Variable::Object(ref obj) => { [INFO] [stderr] 740 | let id = match &item.ids[0] { [INFO] [stderr] 741 | &Id::String(ref id) => id, [INFO] [stderr] 742 | _ => panic!("Expected string") [INFO] [stderr] 743 | }; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/runtime.rs:740:34 [INFO] [stderr] | [INFO] [stderr] 740 | let id = match &item.ids[0] { [INFO] [stderr] | __________________________________^ [INFO] [stderr] 741 | | &Id::String(ref id) => id, [INFO] [stderr] 742 | | _ => panic!("Expected string") [INFO] [stderr] 743 | | }; [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] 740 | let id = match item.ids[0] { [INFO] [stderr] 741 | Id::String(ref id) => id, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/runtime.rs:750:34 [INFO] [stderr] | [INFO] [stderr] 750 | let id = match &item.ids[0] { [INFO] [stderr] | __________________________________^ [INFO] [stderr] 751 | | &Id::F64(id) => id, [INFO] [stderr] 752 | | &Id::Expression(_) => { [INFO] [stderr] 753 | | match resolve(stack, &stack[start_stack_len + expr_j]) { [INFO] [stderr] ... | [INFO] [stderr] 761 | | _ => panic!("Expected number") [INFO] [stderr] 762 | | }; [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] 750 | let id = match item.ids[0] { [INFO] [stderr] 751 | Id::F64(id) => id, [INFO] [stderr] 752 | Id::Expression(_) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/runtime.rs:753:33 [INFO] [stderr] | [INFO] [stderr] 753 | / match resolve(stack, &stack[start_stack_len + expr_j]) { [INFO] [stderr] 754 | | &Variable::F64(id) => { [INFO] [stderr] 755 | | expr_j += 1; [INFO] [stderr] 756 | | id [INFO] [stderr] 757 | | } [INFO] [stderr] 758 | | _ => panic!("Expected number") [INFO] [stderr] 759 | | } [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] 753 | match *resolve(stack, &stack[start_stack_len + expr_j]) { [INFO] [stderr] 754 | Variable::F64(id) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/runtime.rs:769:27 [INFO] [stderr] | [INFO] [stderr] 769 | var = match var { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 770 | | &Variable::Object(ref obj) => { [INFO] [stderr] 771 | | let id = match prop { [INFO] [stderr] 772 | | &Id::String(ref id) => id, [INFO] [stderr] ... | [INFO] [stderr] 794 | | _ => break [INFO] [stderr] 795 | | }; [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] 769 | var = match *var { [INFO] [stderr] 770 | Variable::Object(ref obj) => { [INFO] [stderr] 771 | let id = match prop { [INFO] [stderr] 772 | &Id::String(ref id) => id, [INFO] [stderr] 773 | _ => break [INFO] [stderr] 774 | }; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/runtime.rs:771:38 [INFO] [stderr] | [INFO] [stderr] 771 | let id = match prop { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 772 | | &Id::String(ref id) => id, [INFO] [stderr] 773 | | _ => break [INFO] [stderr] 774 | | }; [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] 771 | let id = match *prop { [INFO] [stderr] 772 | Id::String(ref id) => id, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/runtime.rs:778:38 [INFO] [stderr] | [INFO] [stderr] 778 | let id = match prop { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 779 | | &Id::F64(id) => id, [INFO] [stderr] 780 | | &Id::Expression(_) => { [INFO] [stderr] 781 | | match resolve(stack, [INFO] [stderr] ... | [INFO] [stderr] 790 | | _ => break [INFO] [stderr] 791 | | }; [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] 778 | let id = match *prop { [INFO] [stderr] 779 | Id::F64(id) => id, [INFO] [stderr] 780 | Id::Expression(_) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/runtime.rs:781:37 [INFO] [stderr] | [INFO] [stderr] 781 | / match resolve(stack, [INFO] [stderr] 782 | | &stack[start_stack_len + expr_j]) { [INFO] [stderr] 783 | | &Variable::F64(id) => { [INFO] [stderr] 784 | | expr_j += 1; [INFO] [stderr] ... | [INFO] [stderr] 787 | | _ => panic!("Expected number") [INFO] [stderr] 788 | | } [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] 781 | match *resolve(stack, [INFO] [stderr] 782 | &stack[start_stack_len + expr_j]) { [INFO] [stderr] 783 | Variable::F64(id) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/runtime.rs:836:38 [INFO] [stderr] | [INFO] [stderr] 836 | Equal => a == b, [INFO] [stderr] | ^^^^^^ help: consider comparing them within some error: `(a - b).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/runtime.rs:836:38 [INFO] [stderr] | [INFO] [stderr] 836 | Equal => a == b, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/runtime.rs:837:41 [INFO] [stderr] | [INFO] [stderr] 837 | NotEqual => a != b [INFO] [stderr] | ^^^^^^ help: consider comparing them within some error: `(a - b).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/runtime.rs:837:41 [INFO] [stderr] | [INFO] [stderr] 837 | NotEqual => a != b [INFO] [stderr] | ^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [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/runtime.rs:908:37 [INFO] [stderr] | [INFO] [stderr] 908 | / match x { [INFO] [stderr] 909 | | Some(label) => { [INFO] [stderr] 910 | | let same = [INFO] [stderr] 911 | | if let Some(ref for_label) = for_expr.label { [INFO] [stderr] ... | [INFO] [stderr] 918 | | None => {} [INFO] [stderr] 919 | | } [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] 908 | if let Some(label) = x { [INFO] [stderr] 909 | let same = [INFO] [stderr] 910 | if let Some(ref for_label) = for_expr.label { [INFO] [stderr] 911 | &label == for_label [INFO] [stderr] 912 | } else { false }; [INFO] [stderr] 913 | if !same { [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/runtime.rs:923:37 [INFO] [stderr] | [INFO] [stderr] 923 | / match x { [INFO] [stderr] 924 | | Some(label) => { [INFO] [stderr] 925 | | let same = [INFO] [stderr] 926 | | if let Some(ref for_label) = for_expr.label { [INFO] [stderr] ... | [INFO] [stderr] 934 | | None => {} [INFO] [stderr] 935 | | } [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] 923 | if let Some(label) = x { [INFO] [stderr] 924 | let same = [INFO] [stderr] 925 | if let Some(ref for_label) = for_expr.label { [INFO] [stderr] 926 | &label == for_label [INFO] [stderr] 927 | } else { false }; [INFO] [stderr] 928 | if !same { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 47 [INFO] [stderr] --> src/lifetime.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | / pub fn check(data: &[Range]) -> Result<(), String> { [INFO] [stderr] 11 | | let mut nodes: Vec = vec![]; [INFO] [stderr] 12 | | let mut parents: Vec = vec![]; [INFO] [stderr] 13 | | for (i, d) in data.iter().enumerate() { [INFO] [stderr] ... | [INFO] [stderr] 419 | | Ok(()) [INFO] [stderr] 420 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lifetime.rs:21:30 [INFO] [stderr] | [INFO] [stderr] 21 | let parent = parents.last().map(|i| *i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `parents.last().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [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/lifetime.rs:45:17 [INFO] [stderr] | [INFO] [stderr] 45 | / match parents.last() { [INFO] [stderr] 46 | | Some(&parent) => { [INFO] [stderr] 47 | | nodes[parent].children.push(ind); [INFO] [stderr] 48 | | } [INFO] [stderr] 49 | | None => {} [INFO] [stderr] 50 | | } [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] 45 | if let Some(&parent) = parents.last() { [INFO] [stderr] 46 | nodes[parent].children.push(ind); [INFO] [stderr] 47 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lifetime.rs:157:20 [INFO] [stderr] | [INFO] [stderr] 157 | if nodes[j].children.len() == 0 { continue; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `nodes[j].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: needlessly taken reference of both operands [INFO] [stderr] --> src/lifetime.rs:193:25 [INFO] [stderr] | [INFO] [stderr] 193 | &**n == &**nodes[i].name.as_ref().unwrap()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 193 | **n == **nodes[i].name.as_ref().unwrap()) { [INFO] [stderr] | ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `visited`. [INFO] [stderr] --> src/lifetime.rs:331:26 [INFO] [stderr] | [INFO] [stderr] 331 | for i in 0..visited.len() { visited[i] = false; } [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] 331 | for in &mut visited { visited[i] = false; } [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lifetime.rs:390:32 [INFO] [stderr] | [INFO] [stderr] 390 | if node.children.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `node.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: useless use of `format!` [INFO] [stderr] --> src/lifetime.rs:400:40 [INFO] [stderr] | [INFO] [stderr] 400 | return Err(format!("Requires reference to variable")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Requires reference to variable".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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lifetime.rs:425:12 [INFO] [stderr] | [INFO] [stderr] 425 | nodes: &Vec [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Node]` [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lifetime.rs:427:5 [INFO] [stderr] | [INFO] [stderr] 427 | / match (l, r) { [INFO] [stderr] 428 | | (Some(l), Some(r)) => { [INFO] [stderr] 429 | | match l.partial_cmp(&r) { [INFO] [stderr] 430 | | Some(Ordering::Greater) => { [INFO] [stderr] ... | [INFO] [stderr] 484 | | _ => {} [INFO] [stderr] 485 | | } [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] 427 | if let (Some(l), Some(r)) = (l, r) { [INFO] [stderr] 428 | match l.partial_cmp(&r) { [INFO] [stderr] 429 | Some(Ordering::Greater) => { [INFO] [stderr] 430 | match r { [INFO] [stderr] 431 | Lifetime::Local(r) => { [INFO] [stderr] 432 | return Err(format!("`{}` does not live long enough", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lifetime.rs:451:32 [INFO] [stderr] | [INFO] [stderr] 451 | if r.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!r.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/lifetime.rs:460:32 [INFO] [stderr] | [INFO] [stderr] 460 | if l.len() > 0 && r.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!l.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/lifetime.rs:460:47 [INFO] [stderr] | [INFO] [stderr] 460 | if l.len() > 0 && r.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!r.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/lifetime.rs:469:32 [INFO] [stderr] | [INFO] [stderr] 469 | if l.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `l.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/lifetime.rs:585:43 [INFO] [stderr] | [INFO] [stderr] 585 | if self.kind == Kind::Call && self.arg_constraints.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.arg_constraints.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/lib.rs:33:8 [INFO] [stderr] | [INFO] [stderr] 33 | if ignored.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!ignored.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/lib.rs:35:12 [INFO] [stderr] | [INFO] [stderr] 35 | if ignored.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!ignored.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] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `dynamo`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "45df8145d17f7ee40f281d97f11ff76634a29938b39f6c47fdd7604a957e0808"` [INFO] running `"docker" "rm" "-f" "45df8145d17f7ee40f281d97f11ff76634a29938b39f6c47fdd7604a957e0808"` [INFO] [stdout] 45df8145d17f7ee40f281d97f11ff76634a29938b39f6c47fdd7604a957e0808