[INFO] updating cached repository memoryleak47/constraint-lang [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/memoryleak47/constraint-lang [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/memoryleak47/constraint-lang" "work/ex/clippy-test-run/sources/stable/gh/memoryleak47/constraint-lang"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/memoryleak47/constraint-lang'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/memoryleak47/constraint-lang" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/memoryleak47/constraint-lang"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/memoryleak47/constraint-lang'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 7e41273373d8ed4f48e33e768eec95f58b0206b1 [INFO] sha for GitHub repo memoryleak47/constraint-lang: 7e41273373d8ed4f48e33e768eec95f58b0206b1 [INFO] validating manifest of memoryleak47/constraint-lang 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 memoryleak47/constraint-lang 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 memoryleak47/constraint-lang [INFO] finished frobbing memoryleak47/constraint-lang [INFO] frobbed toml for memoryleak47/constraint-lang written to work/ex/clippy-test-run/sources/stable/gh/memoryleak47/constraint-lang/Cargo.toml [INFO] started frobbing memoryleak47/constraint-lang [INFO] finished frobbing memoryleak47/constraint-lang [INFO] frobbed toml for memoryleak47/constraint-lang written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/memoryleak47/constraint-lang/Cargo.toml [INFO] crate memoryleak47/constraint-lang 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 memoryleak47/constraint-lang against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/memoryleak47/constraint-lang:/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] 3449aceea1a6f3130e2e444d0286fd83772c87b62f4e83872bed910de156be98 [INFO] running `"docker" "start" "-a" "3449aceea1a6f3130e2e444d0286fd83772c87b62f4e83872bed910de156be98"` [INFO] [stderr] Checking libc v0.2.39 [INFO] [stderr] Checking memchr v1.0.2 [INFO] [stderr] Checking nom v3.2.1 [INFO] [stderr] Checking productivity-lang-compiler v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ast/parse/name.rs:12:2 [INFO] [stderr] | [INFO] [stderr] 12 | return IResult::Error(ErrorKind::Custom(42)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `IResult::Error(ErrorKind::Custom(42))` [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/ast/parse/name.rs:23:2 [INFO] [stderr] | [INFO] [stderr] 23 | return IResult::Error(ErrorKind::Custom(42)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `IResult::Error(ErrorKind::Custom(42))` [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/ast/parse/name.rs:12:2 [INFO] [stderr] | [INFO] [stderr] 12 | return IResult::Error(ErrorKind::Custom(42)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `IResult::Error(ErrorKind::Custom(42))` [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/ast/parse/name.rs:23:2 [INFO] [stderr] | [INFO] [stderr] 23 | return IResult::Error(ErrorKind::Custom(42)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `IResult::Error(ErrorKind::Custom(42))` [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/ast/parse/mod.rs:42:4 [INFO] [stderr] | [INFO] [stderr] 42 | return Err(format!("Couldn't parse {:?}", from_utf8(rest))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(format!("Couldn't parse {:?}", from_utf8(rest)))` [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/ctxt/build.rs:10:2 [INFO] [stderr] | [INFO] [stderr] 10 | return Ok(Ctxt { [INFO] [stderr] | _____^ [INFO] [stderr] 11 | | ast, [INFO] [stderr] 12 | | cctxt: CCtxt [INFO] [stderr] 13 | | }); [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] 10 | Ok(Ctxt { [INFO] [stderr] 11 | ast, [INFO] [stderr] 12 | cctxt: CCtxt [INFO] [stderr] 13 | }) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/exec/heap.rs:17:3 [INFO] [stderr] | [INFO] [stderr] 17 | return self.map.get(&index); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.map.get(&index)` [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/exec/heap.rs:24:3 [INFO] [stderr] | [INFO] [stderr] 24 | return key; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `key` [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/exec/mod.rs:151:3 [INFO] [stderr] | [INFO] [stderr] 151 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [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/ast/parse/mod.rs:42:4 [INFO] [stderr] | [INFO] [stderr] 42 | return Err(format!("Couldn't parse {:?}", from_utf8(rest))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(format!("Couldn't parse {:?}", from_utf8(rest)))` [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/ctxt/build.rs:10:2 [INFO] [stderr] | [INFO] [stderr] 10 | return Ok(Ctxt { [INFO] [stderr] | _____^ [INFO] [stderr] 11 | | ast, [INFO] [stderr] 12 | | cctxt: CCtxt [INFO] [stderr] 13 | | }); [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] 10 | Ok(Ctxt { [INFO] [stderr] 11 | ast, [INFO] [stderr] 12 | cctxt: CCtxt [INFO] [stderr] 13 | }) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/exec/heap.rs:17:3 [INFO] [stderr] | [INFO] [stderr] 17 | return self.map.get(&index); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.map.get(&index)` [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/exec/heap.rs:24:3 [INFO] [stderr] | [INFO] [stderr] 24 | return key; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `key` [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/exec/mod.rs:151:3 [INFO] [stderr] | [INFO] [stderr] 151 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [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: variant is never constructed: `String` [INFO] [stderr] --> src/ast/mod.rs:154:2 [INFO] [stderr] | [INFO] [stderr] 154 | String(String), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Null` [INFO] [stderr] --> src/ast/mod.rs:156:2 [INFO] [stderr] | [INFO] [stderr] 156 | Null, // the `null` expression [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Array` [INFO] [stderr] --> src/ast/mod.rs:159:2 [INFO] [stderr] | [INFO] [stderr] 159 | Array(Vec), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Tuple` [INFO] [stderr] --> src/ast/mod.rs:160:2 [INFO] [stderr] | [INFO] [stderr] 160 | Tuple(Vec), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Object` [INFO] [stderr] --> src/ast/mod.rs:161:2 [INFO] [stderr] | [INFO] [stderr] 161 | Object(HashMap>), // { f = 2 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `dealloc` [INFO] [stderr] --> src/exec/heap.rs:27:2 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn dealloc(&mut self, index: usize) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/ast/parse/keyword.rs:18:12 [INFO] [stderr] | [INFO] [stderr] 18 | parse_fun("fun(".as_bytes()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"fun("` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/ast/parse/keyword.rs:29:12 [INFO] [stderr] | [INFO] [stderr] 29 | parse_fun("funx".as_bytes()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"funx"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `String` [INFO] [stderr] --> src/ast/mod.rs:154:2 [INFO] [stderr] | [INFO] [stderr] 154 | String(String), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Null` [INFO] [stderr] --> src/ast/mod.rs:156:2 [INFO] [stderr] | [INFO] [stderr] 156 | Null, // the `null` expression [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Array` [INFO] [stderr] --> src/ast/mod.rs:159:2 [INFO] [stderr] | [INFO] [stderr] 159 | Array(Vec), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Tuple` [INFO] [stderr] --> src/ast/mod.rs:160:2 [INFO] [stderr] | [INFO] [stderr] 160 | Tuple(Vec), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Object` [INFO] [stderr] --> src/ast/mod.rs:161:2 [INFO] [stderr] | [INFO] [stderr] 161 | Object(HashMap>), // { f = 2 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `dealloc` [INFO] [stderr] --> src/exec/heap.rs:27:2 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn dealloc(&mut self, index: usize) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ast/parse/var_def.rs:20:10 [INFO] [stderr] | [INFO] [stderr] 20 | name: String::from(name), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ast/parse/var_def.rs:35:10 [INFO] [stderr] | [INFO] [stderr] 35 | name: String::from(name), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ast/parse/var_def.rs:62:10 [INFO] [stderr] | [INFO] [stderr] 62 | name: String::from(name), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ast/parse/var_def.rs:20:10 [INFO] [stderr] | [INFO] [stderr] 20 | name: String::from(name), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/ast/parse/expr/fun.rs:27:30 [INFO] [stderr] | [INFO] [stderr] 27 | let (i, _) = parse_expr_fun("fun(x) { let y = 2; }".as_bytes()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"fun(x) { let y = 2; }"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ast/parse/var_def.rs:35:10 [INFO] [stderr] | [INFO] [stderr] --> src/ast/parse/expr/fun.rs:33:30 [INFO] [stderr] 35 | name: String::from(name), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `name` [INFO] [stderr] | [INFO] [stderr] 33 | let (i, _) = parse_expr_fun("fun() { }".as_bytes()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"fun() { }"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ast/parse/var_def.rs:62:10 [INFO] [stderr] | [INFO] [stderr] 62 | name: String::from(name), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/ast/parse/expr/fun_call.rs:22:30 [INFO] [stderr] | [INFO] [stderr] 22 | let (i, _) = parse_fun_call("(2,3)".as_bytes()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"(2,3)"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/ast/parse/expr/mod.rs:185:31 [INFO] [stderr] | [INFO] [stderr] 185 | assert!(parse_expr_statement("2(2,3);".as_bytes()).unwrap().0.is_empty()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"2(2,3);"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/ast/parse/expr/mod.rs:190:27 [INFO] [stderr] | [INFO] [stderr] 190 | let (i, o) = parse_expr("2(2,3)".as_bytes()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"2(2,3)"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ast/parse/constraint.rs:104:10 [INFO] [stderr] | [INFO] [stderr] 104 | name: String::from(name), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/mod.rs:25:4 [INFO] [stderr] | [INFO] [stderr] 25 | match self { [INFO] [stderr] | _____________^ [INFO] [stderr] 26 | | &CtrlFlow::Return(ref x) => CtrlFlow::Return(x.clone().map(f)), [INFO] [stderr] 27 | | &CtrlFlow::Break => CtrlFlow::Break, [INFO] [stderr] 28 | | &CtrlFlow::Continue => CtrlFlow::Continue, [INFO] [stderr] 29 | | } [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] 25 | match *self { [INFO] [stderr] 26 | CtrlFlow::Return(ref x) => CtrlFlow::Return(x.clone().map(f)), [INFO] [stderr] 27 | CtrlFlow::Break => CtrlFlow::Break, [INFO] [stderr] 28 | CtrlFlow::Continue => CtrlFlow::Continue, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ast/parse/constraint.rs:104:10 [INFO] [stderr] | [INFO] [stderr] 104 | name: String::from(name), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/mod.rs:87:3 [INFO] [stderr] | [INFO] [stderr] 87 | match self { [INFO] [stderr] | _________^ [INFO] [stderr] 88 | | &PreOp::Minus => 9, [INFO] [stderr] 89 | | &PreOp::Not => 9, [INFO] [stderr] 90 | | } [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] 87 | match *self { [INFO] [stderr] 88 | PreOp::Minus => 9, [INFO] [stderr] 89 | PreOp::Not => 9, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/mod.rs:101:3 [INFO] [stderr] | [INFO] [stderr] 101 | match self { [INFO] [stderr] | _________^ [INFO] [stderr] 102 | | &PostOp::FunCall(_) => 10 [INFO] [stderr] 103 | | } [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] 101 | match *self { [INFO] [stderr] 102 | PostOp::FunCall(_) => 10 [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/mod.rs:126:3 [INFO] [stderr] | [INFO] [stderr] 126 | match self { [INFO] [stderr] | _________^ [INFO] [stderr] 127 | | &Op2::LessEq => 8, [INFO] [stderr] 128 | | &Op2::Eq => 7, [INFO] [stderr] 129 | | &Op2::GreaterEq => 8, [INFO] [stderr] ... | [INFO] [stderr] 139 | | &Op2::Mod => 6, [INFO] [stderr] 140 | | } [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] 126 | match *self { [INFO] [stderr] 127 | Op2::LessEq => 8, [INFO] [stderr] 128 | Op2::Eq => 7, [INFO] [stderr] 129 | Op2::GreaterEq => 8, [INFO] [stderr] 130 | Op2::NotEq => 7, [INFO] [stderr] 131 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ctxt/build.rs:7:15 [INFO] [stderr] | [INFO] [stderr] 7 | .filter(|x| if let &AstNode::CDef{..} = x { false } else { true } ) [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] 7 | .filter(|x| if let AstNode::CDef{..} = *x { false } else { true } ) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/mod.rs:25:4 [INFO] [stderr] | [INFO] [stderr] 25 | match self { [INFO] [stderr] | _____________^ [INFO] [stderr] 26 | | &CtrlFlow::Return(ref x) => CtrlFlow::Return(x.clone().map(f)), [INFO] [stderr] 27 | | &CtrlFlow::Break => CtrlFlow::Break, [INFO] [stderr] 28 | | &CtrlFlow::Continue => CtrlFlow::Continue, [INFO] [stderr] 29 | | } [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] 25 | match *self { [INFO] [stderr] 26 | CtrlFlow::Return(ref x) => CtrlFlow::Return(x.clone().map(f)), [INFO] [stderr] 27 | CtrlFlow::Break => CtrlFlow::Break, [INFO] [stderr] 28 | CtrlFlow::Continue => CtrlFlow::Continue, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/mod.rs:87:3 [INFO] [stderr] | [INFO] [stderr] 87 | match self { [INFO] [stderr] | _________^ [INFO] [stderr] 88 | | &PreOp::Minus => 9, [INFO] [stderr] 89 | | &PreOp::Not => 9, [INFO] [stderr] 90 | | } [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] 87 | match *self { [INFO] [stderr] 88 | PreOp::Minus => 9, [INFO] [stderr] 89 | PreOp::Not => 9, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/mod.rs:101:3 [INFO] [stderr] | [INFO] [stderr] 101 | match self { [INFO] [stderr] | _________^ [INFO] [stderr] 102 | | &PostOp::FunCall(_) => 10 [INFO] [stderr] 103 | | } [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] 101 | match *self { [INFO] [stderr] 102 | PostOp::FunCall(_) => 10 [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/mod.rs:126:3 [INFO] [stderr] | [INFO] [stderr] 126 | match self { [INFO] [stderr] | _________^ [INFO] [stderr] 127 | | &Op2::LessEq => 8, [INFO] [stderr] 128 | | &Op2::Eq => 7, [INFO] [stderr] 129 | | &Op2::GreaterEq => 8, [INFO] [stderr] ... | [INFO] [stderr] 139 | | &Op2::Mod => 6, [INFO] [stderr] 140 | | } [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] 126 | match *self { [INFO] [stderr] 127 | Op2::LessEq => 8, [INFO] [stderr] 128 | Op2::Eq => 7, [INFO] [stderr] 129 | Op2::GreaterEq => 8, [INFO] [stderr] 130 | Op2::NotEq => 7, [INFO] [stderr] 131 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ctxt/build.rs:7:15 [INFO] [stderr] | [INFO] [stderr] 7 | .filter(|x| if let &AstNode::CDef{..} = x { false } else { true } ) [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] 7 | .filter(|x| if let AstNode::CDef{..} = *x { false } else { true } ) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exec/expr.rs:7:3 [INFO] [stderr] | [INFO] [stderr] 7 | match expr { [INFO] [stderr] | _________^ [INFO] [stderr] 8 | | &Expr::Null => Some(Val::Null), [INFO] [stderr] 9 | | &Expr::Num(x) => Some(Val::Num(x)), [INFO] [stderr] 10 | | &Expr::String(ref x) => Some(Val::String(x.clone())), [INFO] [stderr] ... | [INFO] [stderr] 92 | | _ => unimplemented!(), [INFO] [stderr] 93 | | } [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] 7 | match *expr { [INFO] [stderr] 8 | Expr::Null => Some(Val::Null), [INFO] [stderr] 9 | Expr::Num(x) => Some(Val::Num(x)), [INFO] [stderr] 10 | Expr::String(ref x) => Some(Val::String(x.clone())), [INFO] [stderr] 11 | Expr::Bool(x) => Some(Val::Bool(x)), [INFO] [stderr] 12 | Expr::Array(ref x) => Some(Val::Array( [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/exec/expr.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | if let &Expr::Var(ref s) = &**fun { [INFO] [stderr] | _________________^ [INFO] [stderr] 28 | | if s == "print" { [INFO] [stderr] 29 | | for arg in args { [INFO] [stderr] 30 | | let val = self.exec_expr(&arg, ctxt).unwrap(); [INFO] [stderr] ... | [INFO] [stderr] 34 | | } [INFO] [stderr] 35 | | } [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] 27 | if let Expr::Var(ref s) = **fun { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exec/expr.rs:7:3 [INFO] [stderr] | [INFO] [stderr] 7 | match expr { [INFO] [stderr] | _________^ [INFO] [stderr] 8 | | &Expr::Null => Some(Val::Null), [INFO] [stderr] 9 | | &Expr::Num(x) => Some(Val::Num(x)), [INFO] [stderr] 10 | | &Expr::String(ref x) => Some(Val::String(x.clone())), [INFO] [stderr] ... | [INFO] [stderr] 92 | | _ => unimplemented!(), [INFO] [stderr] 93 | | } [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] 7 | match *expr { [INFO] [stderr] 8 | Expr::Null => Some(Val::Null), [INFO] [stderr] 9 | Expr::Num(x) => Some(Val::Num(x)), [INFO] [stderr] 10 | Expr::String(ref x) => Some(Val::String(x.clone())), [INFO] [stderr] 11 | Expr::Bool(x) => Some(Val::Bool(x)), [INFO] [stderr] 12 | Expr::Array(ref x) => Some(Val::Array( [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/exec/expr.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | if let &Expr::Var(ref s) = &**fun { [INFO] [stderr] | _________________^ [INFO] [stderr] 28 | | if s == "print" { [INFO] [stderr] 29 | | for arg in args { [INFO] [stderr] 30 | | let val = self.exec_expr(&arg, ctxt).unwrap(); [INFO] [stderr] ... | [INFO] [stderr] 34 | | } [INFO] [stderr] 35 | | } [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] warning: you don't need to add `&` to all patterns [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 27 | if let Expr::Var(ref s) = **fun { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] --> src/exec/expr.rs:70:10 [INFO] [stderr] | [INFO] [stderr] 70 | Some(match op { [INFO] [stderr] | ______________________^ [INFO] [stderr] 71 | | &Op2::LessEq => Val::Bool(a <= b), [INFO] [stderr] 72 | | &Op2::Eq => Val::Bool(a == b), [INFO] [stderr] 73 | | &Op2::GreaterEq => Val::Bool(a >= b), [INFO] [stderr] ... | [INFO] [stderr] 83 | | &Op2::Mod => Val::Num(a % b), [INFO] [stderr] 84 | | }) [INFO] [stderr] | |_________________^ [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] 70 | Some(match *op { [INFO] [stderr] 71 | Op2::LessEq => Val::Bool(a <= b), [INFO] [stderr] 72 | Op2::Eq => Val::Bool(a == b), [INFO] [stderr] 73 | Op2::GreaterEq => Val::Bool(a >= b), [INFO] [stderr] 74 | Op2::NotEq => Val::Bool(a != b), [INFO] [stderr] 75 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/exec/expr.rs:72:28 [INFO] [stderr] | [INFO] [stderr] 72 | &Op2::Eq => Val::Bool(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/exec/expr.rs:72:28 [INFO] [stderr] | [INFO] [stderr] 72 | &Op2::Eq => Val::Bool(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/exec/expr.rs:74:31 [INFO] [stderr] | [INFO] [stderr] 74 | &Op2::NotEq => Val::Bool(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/exec/expr.rs:74:31 [INFO] [stderr] | [INFO] [stderr] 74 | &Op2::NotEq => Val::Bool(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 don't need to add `&` to all patterns [INFO] [stderr] --> src/exec/expr.rs:70:10 [INFO] [stderr] | [INFO] [stderr] 70 | Some(match op { [INFO] [stderr] | ______________________^ [INFO] [stderr] 71 | | &Op2::LessEq => Val::Bool(a <= b), [INFO] [stderr] 72 | | &Op2::Eq => Val::Bool(a == b), [INFO] [stderr] 73 | | &Op2::GreaterEq => Val::Bool(a >= b), [INFO] [stderr] ... | [INFO] [stderr] 83 | | &Op2::Mod => Val::Num(a % b), [INFO] [stderr] 84 | | }) [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] 70 | Some(match *op { [INFO] [stderr] 71 | Op2::LessEq => Val::Bool(a <= b), [INFO] [stderr] 72 | Op2::Eq => Val::Bool(a == b), [INFO] [stderr] 73 | Op2::GreaterEq => Val::Bool(a >= b), [INFO] [stderr] 74 | Op2::NotEq => Val::Bool(a != b), [INFO] [stderr] 75 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/exec/expr.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | self.get_var(name) [INFO] [stderr] | _________________^ [INFO] [stderr] 89 | | .and_then(|i| self.heap.get(i)) [INFO] [stderr] 90 | | .map(|x| x.clone()) [INFO] [stderr] | |_______________________________________^ [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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/exec/expr.rs:72:28 [INFO] [stderr] | [INFO] [stderr] 72 | &Op2::Eq => Val::Bool(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] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 88 | self.get_var(name) [INFO] [stderr] 89 | .and_then(|i| self.heap.get(i)).cloned() [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/exec/expr.rs:72:28 [INFO] [stderr] | [INFO] [stderr] 72 | &Op2::Eq => Val::Bool(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] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/exec/expr.rs:74:31 [INFO] [stderr] | [INFO] [stderr] 74 | &Op2::NotEq => Val::Bool(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/exec/expr.rs:74:31 [INFO] [stderr] | [INFO] [stderr] 74 | &Op2::NotEq => Val::Bool(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 are using an explicit closure for cloning elements [INFO] [stderr] --> src/exec/expr.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | self.get_var(name) [INFO] [stderr] | _________________^ [INFO] [stderr] 89 | | .and_then(|i| self.heap.get(i)) [INFO] [stderr] 90 | | .map(|x| x.clone()) [INFO] [stderr] | |_______________________________________^ [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] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 88 | self.get_var(name) [INFO] [stderr] 89 | .and_then(|i| self.heap.get(i)).cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exec/mod.rs:78:3 [INFO] [stderr] | [INFO] [stderr] 78 | match node { [INFO] [stderr] | _________^ [INFO] [stderr] 79 | | &AstNode::VarDec(VarDec { ref name, ref prefix, .. }) => { [INFO] [stderr] 80 | | (match prefix { [INFO] [stderr] 81 | | &VarDecPrefix::Let => self.local_mut(), [INFO] [stderr] ... | [INFO] [stderr] 148 | | _ => panic!("This should not happen") [INFO] [stderr] 149 | | }; [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] 78 | match *node { [INFO] [stderr] 79 | AstNode::VarDec(VarDec { ref name, ref prefix, .. }) => { [INFO] [stderr] 80 | (match prefix { [INFO] [stderr] 81 | &VarDecPrefix::Let => self.local_mut(), [INFO] [stderr] 82 | &VarDecPrefix::Global => self.global_mut(), [INFO] [stderr] 83 | }).insert(name.to_string(), None); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exec/mod.rs:80:5 [INFO] [stderr] | [INFO] [stderr] 80 | (match prefix { [INFO] [stderr] | _________________^ [INFO] [stderr] 81 | | &VarDecPrefix::Let => self.local_mut(), [INFO] [stderr] 82 | | &VarDecPrefix::Global => self.global_mut(), [INFO] [stderr] 83 | | }).insert(name.to_string(), None); [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] 80 | (match *prefix { [INFO] [stderr] 81 | VarDecPrefix::Let => self.local_mut(), [INFO] [stderr] 82 | VarDecPrefix::Global => self.global_mut(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exec/mod.rs:78:3 [INFO] [stderr] | [INFO] [stderr] 78 | match node { [INFO] [stderr] | _________^ [INFO] [stderr] 79 | | &AstNode::VarDec(VarDec { ref name, ref prefix, .. }) => { [INFO] [stderr] 80 | | (match prefix { [INFO] [stderr] 81 | | &VarDecPrefix::Let => self.local_mut(), [INFO] [stderr] ... | [INFO] [stderr] 148 | | _ => panic!("This should not happen") [INFO] [stderr] 149 | | }; [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] 78 | match *node { [INFO] [stderr] 79 | AstNode::VarDec(VarDec { ref name, ref prefix, .. }) => { [INFO] [stderr] 80 | (match prefix { [INFO] [stderr] 81 | &VarDecPrefix::Let => self.local_mut(), [INFO] [stderr] 82 | &VarDecPrefix::Global => self.global_mut(), [INFO] [stderr] 83 | }).insert(name.to_string(), None); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exec/mod.rs:80:5 [INFO] [stderr] | [INFO] [stderr] 80 | (match prefix { [INFO] [stderr] | _________________^ [INFO] [stderr] 81 | | &VarDecPrefix::Let => self.local_mut(), [INFO] [stderr] 82 | | &VarDecPrefix::Global => self.global_mut(), [INFO] [stderr] 83 | | }).insert(name.to_string(), None); [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] 80 | (match *prefix { [INFO] [stderr] 81 | VarDecPrefix::Let => self.local_mut(), [INFO] [stderr] 82 | VarDecPrefix::Global => self.global_mut(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exec/mod.rs:110:5 [INFO] [stderr] | [INFO] [stderr] 110 | if let &Some(ref body) = otherwise { [INFO] [stderr] | _________________^ [INFO] [stderr] 111 | | let mut res = None; [INFO] [stderr] 112 | | [INFO] [stderr] 113 | | self.push_stack(); [INFO] [stderr] ... | [INFO] [stderr] 121 | | return res; [INFO] [stderr] 122 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 110 | if let Some(ref body) = *otherwise { [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exec/mod.rs:110:5 [INFO] [stderr] | [INFO] [stderr] 110 | if let &Some(ref body) = otherwise { [INFO] [stderr] | _________________^ [INFO] [stderr] 111 | | let mut res = None; [INFO] [stderr] 112 | | [INFO] [stderr] 113 | | self.push_stack(); [INFO] [stderr] ... | [INFO] [stderr] 121 | | return res; [INFO] [stderr] 122 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 110 | if let Some(ref body) = *otherwise { [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `productivity-lang-compiler`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: Could not compile `productivity-lang-compiler`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "3449aceea1a6f3130e2e444d0286fd83772c87b62f4e83872bed910de156be98"` [INFO] running `"docker" "rm" "-f" "3449aceea1a6f3130e2e444d0286fd83772c87b62f4e83872bed910de156be98"` [INFO] [stdout] 3449aceea1a6f3130e2e444d0286fd83772c87b62f4e83872bed910de156be98