[INFO] updating cached repository hawnzug/gmachine [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/hawnzug/gmachine [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/hawnzug/gmachine" "work/ex/clippy-test-run/sources/stable/gh/hawnzug/gmachine"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/hawnzug/gmachine'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/hawnzug/gmachine" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/hawnzug/gmachine"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/hawnzug/gmachine'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] eb96e521a9a8c46a00b6ee379f07273d0d758fc2 [INFO] sha for GitHub repo hawnzug/gmachine: eb96e521a9a8c46a00b6ee379f07273d0d758fc2 [INFO] validating manifest of hawnzug/gmachine 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 hawnzug/gmachine 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 hawnzug/gmachine [INFO] finished frobbing hawnzug/gmachine [INFO] frobbed toml for hawnzug/gmachine written to work/ex/clippy-test-run/sources/stable/gh/hawnzug/gmachine/Cargo.toml [INFO] started frobbing hawnzug/gmachine [INFO] finished frobbing hawnzug/gmachine [INFO] frobbed toml for hawnzug/gmachine written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/hawnzug/gmachine/Cargo.toml [INFO] crate hawnzug/gmachine 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 hawnzug/gmachine against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/hawnzug/gmachine:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dclippy::into_iter_on_array" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 09416c81097349f845efa86354d092d595a19afb6bcca647b8fb584b6b644968 [INFO] running `"docker" "start" "-a" "09416c81097349f845efa86354d092d595a19afb6bcca647b8fb584b6b644968"` [INFO] [stderr] Checking gmachine v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:93:20 [INFO] [stderr] | [INFO] [stderr] 93 | 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/parser.rs:94:20 [INFO] [stderr] | [INFO] [stderr] 94 | 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/parser.rs:95:20 [INFO] [stderr] | [INFO] [stderr] 95 | body: body, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/gmachine.rs:74:13 [INFO] [stderr] | [INFO] [stderr] 74 | code: code, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `code` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/gmachine.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | heap: heap, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `heap` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/gmachine.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | globals: globals, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `globals` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/token.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | line: line, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `line` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/token.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | column: column, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `column` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:93:20 [INFO] [stderr] | [INFO] [stderr] 93 | 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/parser.rs:94:20 [INFO] [stderr] | [INFO] [stderr] 94 | 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/parser.rs:95:20 [INFO] [stderr] | [INFO] [stderr] 95 | body: body, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/gmachine.rs:74:13 [INFO] [stderr] | [INFO] [stderr] 74 | code: code, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `code` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/gmachine.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | heap: heap, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `heap` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/gmachine.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | globals: globals, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `globals` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/token.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | line: line, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `line` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/token.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | column: column, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `column` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/gmachine.rs:106:30 [INFO] [stderr] | [INFO] [stderr] 106 | for (_, addr) in &mut self.globals { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 106 | for addr in self.globals.values_mut() { [INFO] [stderr] | ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/gmachine.rs:139:45 [INFO] [stderr] | [INFO] [stderr] 139 | let addr = *self.globals.get(&name).ok_or(GlobalName(name))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| GlobalName(name))` [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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/gmachine.rs:164:26 [INFO] [stderr] | [INFO] [stderr] 164 | .ok_or(StackIndex("push", len, n + 1))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| StackIndex("push", len, n + 1))` [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/gmachine.rs:175:14 [INFO] [stderr] | [INFO] [stderr] 175 | .ok_or(StackIndex("update", len, n + 1))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| StackIndex("update", len, n + 1))` [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/gmachine.rs:194:43 [INFO] [stderr] | [INFO] [stderr] 194 | let node = self.heap.lookup(addr).ok_or(HeapAddr("unwind", addr))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| HeapAddr("unwind", addr))` [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/gmachine.rs:280:18 [INFO] [stderr] | [INFO] [stderr] 280 | .ok_or(HeapAddr("dyadic", addr1))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| HeapAddr("dyadic", addr1))` [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/gmachine.rs:291:18 [INFO] [stderr] | [INFO] [stderr] 291 | .ok_or(HeapAddr("dyadic", addr2))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| HeapAddr("dyadic", addr2))` [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/gmachine.rs:328:43 [INFO] [stderr] | [INFO] [stderr] 328 | let node = self.heap.lookup(addr).ok_or(HeapAddr("neg", addr))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| HeapAddr("neg", addr))` [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/gmachine.rs:353:43 [INFO] [stderr] | [INFO] [stderr] 353 | let node = self.heap.lookup(addr).ok_or(HeapAddr("Case", addr))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| HeapAddr("Case", addr))` [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/gmachine.rs:355:42 [INFO] [stderr] | [INFO] [stderr] 355 | let mut code = hm.remove(&t).ok_or(MissCase(t))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| MissCase(t))` [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/gmachine.rs:366:43 [INFO] [stderr] | [INFO] [stderr] 366 | let node = self.heap.lookup(addr).ok_or(HeapAddr("split", addr))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| HeapAddr("split", addr))` [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/gmachine.rs:383:43 [INFO] [stderr] | [INFO] [stderr] 383 | let node = self.heap.lookup(addr).ok_or(HeapAddr("print", addr))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| HeapAddr("print", addr))` [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: replacing an `Option` with `None` [INFO] [stderr] --> src/heap.rs:108:47 [INFO] [stderr] | [INFO] [stderr] 108 | if let Some(Mark::Marked(node)) = mem::replace(opt, None) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider `Option::take()` instead: `opt.take()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::mem_replace_option_with_none)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/compiler.rs:94:43 [INFO] [stderr] | [INFO] [stderr] 94 | while let &Expr::EAp(ref e1, _) = e { [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] 94 | while let Expr::EAp(ref e1, _) = *e { [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/compiler.rs:98:9 [INFO] [stderr] | [INFO] [stderr] 98 | / match e { [INFO] [stderr] 99 | | &Expr::EConstr(_, a) => { [INFO] [stderr] 100 | | if count == a { [INFO] [stderr] 101 | | flag = Temp::Cons; [INFO] [stderr] ... | [INFO] [stderr] 104 | | _ => {} [INFO] [stderr] 105 | | } [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] 98 | if let &Expr::EConstr(_, a) = e { [INFO] [stderr] 99 | if count == a { [INFO] [stderr] 100 | flag = Temp::Cons; [INFO] [stderr] 101 | } [INFO] [stderr] 102 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/compiler.rs:98:9 [INFO] [stderr] | [INFO] [stderr] 98 | / match e { [INFO] [stderr] 99 | | &Expr::EConstr(_, a) => { [INFO] [stderr] 100 | | if count == a { [INFO] [stderr] 101 | | flag = Temp::Cons; [INFO] [stderr] ... | [INFO] [stderr] 104 | | _ => {} [INFO] [stderr] 105 | | } [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] 98 | match *e { [INFO] [stderr] 99 | Expr::EConstr(_, a) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/gmachine.rs:106:30 [INFO] [stderr] | [INFO] [stderr] 106 | for (_, addr) in &mut self.globals { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 106 | for addr in self.globals.values_mut() { [INFO] [stderr] | ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/gmachine.rs:139:45 [INFO] [stderr] | [INFO] [stderr] 139 | let addr = *self.globals.get(&name).ok_or(GlobalName(name))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| GlobalName(name))` [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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/gmachine.rs:164:26 [INFO] [stderr] | [INFO] [stderr] 164 | .ok_or(StackIndex("push", len, n + 1))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| StackIndex("push", len, n + 1))` [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/gmachine.rs:175:14 [INFO] [stderr] | [INFO] [stderr] 175 | .ok_or(StackIndex("update", len, n + 1))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| StackIndex("update", len, n + 1))` [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/gmachine.rs:194:43 [INFO] [stderr] | [INFO] [stderr] 194 | let node = self.heap.lookup(addr).ok_or(HeapAddr("unwind", addr))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| HeapAddr("unwind", addr))` [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/gmachine.rs:280:18 [INFO] [stderr] | [INFO] [stderr] 280 | .ok_or(HeapAddr("dyadic", addr1))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| HeapAddr("dyadic", addr1))` [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/gmachine.rs:291:18 [INFO] [stderr] | [INFO] [stderr] 291 | .ok_or(HeapAddr("dyadic", addr2))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| HeapAddr("dyadic", addr2))` [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/gmachine.rs:328:43 [INFO] [stderr] | [INFO] [stderr] 328 | let node = self.heap.lookup(addr).ok_or(HeapAddr("neg", addr))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| HeapAddr("neg", addr))` [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/gmachine.rs:353:43 [INFO] [stderr] | [INFO] [stderr] 353 | let node = self.heap.lookup(addr).ok_or(HeapAddr("Case", addr))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| HeapAddr("Case", addr))` [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/gmachine.rs:355:42 [INFO] [stderr] | [INFO] [stderr] 355 | let mut code = hm.remove(&t).ok_or(MissCase(t))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| MissCase(t))` [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/gmachine.rs:366:43 [INFO] [stderr] | [INFO] [stderr] 366 | let node = self.heap.lookup(addr).ok_or(HeapAddr("split", addr))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| HeapAddr("split", addr))` [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/gmachine.rs:383:43 [INFO] [stderr] | [INFO] [stderr] 383 | let node = self.heap.lookup(addr).ok_or(HeapAddr("print", addr))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| HeapAddr("print", addr))` [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: replacing an `Option` with `None` [INFO] [stderr] --> src/heap.rs:108:47 [INFO] [stderr] | [INFO] [stderr] 108 | if let Some(Mark::Marked(node)) = mem::replace(opt, None) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider `Option::take()` instead: `opt.take()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::mem_replace_option_with_none)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/compiler.rs:94:43 [INFO] [stderr] | [INFO] [stderr] 94 | while let &Expr::EAp(ref e1, _) = e { [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] 94 | while let Expr::EAp(ref e1, _) = *e { [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/compiler.rs:98:9 [INFO] [stderr] | [INFO] [stderr] 98 | / match e { [INFO] [stderr] 99 | | &Expr::EConstr(_, a) => { [INFO] [stderr] 100 | | if count == a { [INFO] [stderr] 101 | | flag = Temp::Cons; [INFO] [stderr] ... | [INFO] [stderr] 104 | | _ => {} [INFO] [stderr] 105 | | } [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] 98 | if let &Expr::EConstr(_, a) = e { [INFO] [stderr] 99 | if count == a { [INFO] [stderr] 100 | flag = Temp::Cons; [INFO] [stderr] 101 | } [INFO] [stderr] 102 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/compiler.rs:98:9 [INFO] [stderr] | [INFO] [stderr] 98 | / match e { [INFO] [stderr] 99 | | &Expr::EConstr(_, a) => { [INFO] [stderr] 100 | | if count == a { [INFO] [stderr] 101 | | flag = Temp::Cons; [INFO] [stderr] ... | [INFO] [stderr] 104 | | _ => {} [INFO] [stderr] 105 | | } [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] 98 | match *e { [INFO] [stderr] 99 | Expr::EConstr(_, a) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.36s [INFO] running `"docker" "inspect" "09416c81097349f845efa86354d092d595a19afb6bcca647b8fb584b6b644968"` [INFO] running `"docker" "rm" "-f" "09416c81097349f845efa86354d092d595a19afb6bcca647b8fb584b6b644968"` [INFO] [stdout] 09416c81097349f845efa86354d092d595a19afb6bcca647b8fb584b6b644968