[INFO] updating cached repository jawline/WebAssembly-Playground [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/jawline/WebAssembly-Playground [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/jawline/WebAssembly-Playground" "work/ex/clippy-test-run/sources/stable/gh/jawline/WebAssembly-Playground"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/jawline/WebAssembly-Playground'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/jawline/WebAssembly-Playground" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/jawline/WebAssembly-Playground"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/jawline/WebAssembly-Playground'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 0894aad6884fd67d973005089c88437308eb9b04 [INFO] sha for GitHub repo jawline/WebAssembly-Playground: 0894aad6884fd67d973005089c88437308eb9b04 [INFO] validating manifest of jawline/WebAssembly-Playground 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 jawline/WebAssembly-Playground 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 jawline/WebAssembly-Playground [INFO] finished frobbing jawline/WebAssembly-Playground [INFO] frobbed toml for jawline/WebAssembly-Playground written to work/ex/clippy-test-run/sources/stable/gh/jawline/WebAssembly-Playground/Cargo.toml [INFO] started frobbing jawline/WebAssembly-Playground [INFO] finished frobbing jawline/WebAssembly-Playground [INFO] frobbed toml for jawline/WebAssembly-Playground written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/jawline/WebAssembly-Playground/Cargo.toml [INFO] crate jawline/WebAssembly-Playground 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 jawline/WebAssembly-Playground 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/jawline/WebAssembly-Playground:/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] aec075a45a28e3bbefa3751856249e7b520f31b6e7b97ef8e07388463ccb76f6 [INFO] running `"docker" "start" "-a" "aec075a45a28e3bbefa3751856249e7b520f31b6e7b97ef8e07388463ccb76f6"` [INFO] [stderr] Checking weblang v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/warn.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / macro_rules! warn( [INFO] [stderr] 2 | | ($($arg:tt)*) => { { [INFO] [stderr] 3 | | let r = writeln!(&mut ::std::io::stderr(), $($arg)*); [INFO] [stderr] 4 | | r.expect("failed printing to stderr"); [INFO] [stderr] 5 | | } } [INFO] [stderr] 6 | | ); [INFO] [stderr] | |__^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parse.rs:257:2 [INFO] [stderr] | [INFO] [stderr] 257 | return Ok(new_fn); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(new_fn)` [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: unused macro definition [INFO] [stderr] --> src/warn.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / macro_rules! warn( [INFO] [stderr] 2 | | ($($arg:tt)*) => { { [INFO] [stderr] 3 | | let r = writeln!(&mut ::std::io::stderr(), $($arg)*); [INFO] [stderr] 4 | | r.expect("failed printing to stderr"); [INFO] [stderr] 5 | | } } [INFO] [stderr] 6 | | ); [INFO] [stderr] | |__^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parse.rs:257:2 [INFO] [stderr] | [INFO] [stderr] 257 | return Ok(new_fn); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(new_fn)` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ast.rs:31:11 [INFO] [stderr] | [INFO] [stderr] 31 | fn instr(&self) -> String { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/ast.rs:61:34 [INFO] [stderr] | [INFO] [stderr] 61 | pub fn as_t(&self, scope_items: &ScopeItems) -> Type { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast.rs:62:3 [INFO] [stderr] | [INFO] [stderr] 62 | match self { [INFO] [stderr] | _________^ [INFO] [stderr] 63 | | &AST::Scope(_) => { [INFO] [stderr] 64 | | Type::None [INFO] [stderr] 65 | | }, [INFO] [stderr] ... | [INFO] [stderr] 87 | | &AST::BinaryOp(_, ref left, ref right) => if left.as_t(scope_items) == right.as_t(scope_items) { left.as_t(scope_items) } else { Type::None } [INFO] [stderr] 88 | | } [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] 62 | match *self { [INFO] [stderr] 63 | AST::Scope(_) => { [INFO] [stderr] 64 | Type::None [INFO] [stderr] 65 | }, [INFO] [stderr] 66 | AST::Call(ref name, _) => { [INFO] [stderr] 67 | //TODO: TypeCheck Call Arguments [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast.rs:68:40 [INFO] [stderr] | [INFO] [stderr] 68 | match scope_items.iter().find(|&x| if let &AST::Function(ref f_name, _, _, _) = x { name == f_name } else { false }) { [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] 68 | match scope_items.iter().find(|&x| if let AST::Function(ref f_name, _, _, _) = *x { name == f_name } else { false }) { [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/ast.rs:91:34 [INFO] [stderr] | [INFO] [stderr] 91 | pub fn as_s(&self, scope_items: &ScopeItems) -> String { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast.rs:92:3 [INFO] [stderr] | [INFO] [stderr] 92 | match self { [INFO] [stderr] | _________^ [INFO] [stderr] 93 | | &AST::Scope(ref functions) => { [INFO] [stderr] 94 | | let function_asts = functions.iter().fold("".to_string(), |prev, next| prev + &next.as_s(functions)); [INFO] [stderr] 95 | | format!("(module {})", function_asts) [INFO] [stderr] ... | [INFO] [stderr] 127 | | &AST::BinaryOp(ref op, ref left, ref right) => format!("({}.{} {} {})", left.as_t(scope_items).to_string(), op.instr(), left.as_s(scope_items), right.as_s(scope_items)) [INFO] [stderr] 128 | | } [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] 92 | match *self { [INFO] [stderr] 93 | AST::Scope(ref functions) => { [INFO] [stderr] 94 | let function_asts = functions.iter().fold("".to_string(), |prev, next| prev + &next.as_s(functions)); [INFO] [stderr] 95 | format!("(module {})", function_asts) [INFO] [stderr] 96 | }, [INFO] [stderr] 97 | AST::Call(ref name, ref args) => { [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/parse.rs:138:42 [INFO] [stderr] | [INFO] [stderr] 138 | fn parse_fn_args(cur: &mut String, args: &Args) -> Result, String> { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/parse.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | if n == $thet { [INFO] [stderr] | _____________^ [INFO] [stderr] 31 | | true [INFO] [stderr] 32 | | } else { [INFO] [stderr] 33 | | false [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____________^ help: you can reduce it to: `n` [INFO] [stderr] ... [INFO] [stderr] 142 | while !peek!(Token::RParen, cur) { [INFO] [stderr] | ------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/parse.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | if n == $thet { [INFO] [stderr] | _____________^ [INFO] [stderr] 31 | | true [INFO] [stderr] 32 | | } else { [INFO] [stderr] 33 | | false [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____________^ help: you can reduce it to: `n` [INFO] [stderr] ... [INFO] [stderr] 144 | if !(peek!(Token::Comma, cur) || peek!(Token::RParen, cur)) { [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/parse.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | if n == $thet { [INFO] [stderr] | _____________^ [INFO] [stderr] 31 | | true [INFO] [stderr] 32 | | } else { [INFO] [stderr] 33 | | false [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____________^ help: you can reduce it to: `n` [INFO] [stderr] ... [INFO] [stderr] 144 | if !(peek!(Token::Comma, cur) || peek!(Token::RParen, cur)) { [INFO] [stderr] | ------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [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/parse.rs:153:39 [INFO] [stderr] | [INFO] [stderr] 153 | fn parse_atom(cur: &mut String, args: &Args) -> Result { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/parse.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | if n == $thet { [INFO] [stderr] | _____________^ [INFO] [stderr] 31 | | true [INFO] [stderr] 32 | | } else { [INFO] [stderr] 33 | | false [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____________^ help: you can reduce it to: `n` [INFO] [stderr] ... [INFO] [stderr] 158 | if peek!(Token::LParen, cur) { //Peek => Function call [INFO] [stderr] | ------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [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/parse.rs:173:46 [INFO] [stderr] | [INFO] [stderr] 173 | fn parse_maybe_arith(cur: &mut String, args: &Args) -> Result { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/parse.rs:184:43 [INFO] [stderr] | [INFO] [stderr] 184 | fn parse_maybe_if(cur: &mut String, args: &Args) -> Result { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/parse.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | if n == $thet { [INFO] [stderr] | _____________^ [INFO] [stderr] 31 | | true [INFO] [stderr] 32 | | } else { [INFO] [stderr] 33 | | false [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____________^ help: you can reduce it to: `n` [INFO] [stderr] ... [INFO] [stderr] 187 | if peek!(Token::If, cur) { [INFO] [stderr] | --------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [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/parse.rs:200:39 [INFO] [stderr] | [INFO] [stderr] 200 | fn parse_expr(cur: &mut String, args: &Args) -> Result { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/parse.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | if n == $thet { [INFO] [stderr] | _____________^ [INFO] [stderr] 31 | | true [INFO] [stderr] 32 | | } else { [INFO] [stderr] 33 | | false [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____________^ help: you can reduce it to: `n` [INFO] [stderr] ... [INFO] [stderr] 201 | if peek!(Token::LParen, cur) { [INFO] [stderr] | ------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/parse.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | if n == $thet { [INFO] [stderr] | _____________^ [INFO] [stderr] 31 | | true [INFO] [stderr] 32 | | } else { [INFO] [stderr] 33 | | false [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____________^ help: you can reduce it to: `n` [INFO] [stderr] ... [INFO] [stderr] 226 | while !peek!(Token::RParen, cur) { [INFO] [stderr] | ------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/parse.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | if n == $thet { [INFO] [stderr] | _____________^ [INFO] [stderr] 31 | | true [INFO] [stderr] 32 | | } else { [INFO] [stderr] 33 | | false [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____________^ help: you can reduce it to: `n` [INFO] [stderr] ... [INFO] [stderr] 228 | if !(peek!(Token::RParen, cur) || peek!(Token::Comma, cur)) { [INFO] [stderr] | ------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/parse.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | if n == $thet { [INFO] [stderr] | _____________^ [INFO] [stderr] 31 | | true [INFO] [stderr] 32 | | } else { [INFO] [stderr] 33 | | false [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____________^ help: you can reduce it to: `n` [INFO] [stderr] ... [INFO] [stderr] 228 | if !(peek!(Token::RParen, cur) || peek!(Token::Comma, cur)) { [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/parse.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | if n == $thet { [INFO] [stderr] | _____________^ [INFO] [stderr] 31 | | true [INFO] [stderr] 32 | | } else { [INFO] [stderr] 33 | | false [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____________^ help: you can reduce it to: `n` [INFO] [stderr] ... [INFO] [stderr] 265 | if peek!(Token::Function, cur) { [INFO] [stderr] | --------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ast.rs:31:11 [INFO] [stderr] | [INFO] [stderr] 31 | fn instr(&self) -> String { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/ast.rs:61:34 [INFO] [stderr] | [INFO] [stderr] 61 | pub fn as_t(&self, scope_items: &ScopeItems) -> Type { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast.rs:62:3 [INFO] [stderr] | [INFO] [stderr] 62 | match self { [INFO] [stderr] | _________^ [INFO] [stderr] 63 | | &AST::Scope(_) => { [INFO] [stderr] 64 | | Type::None [INFO] [stderr] 65 | | }, [INFO] [stderr] ... | [INFO] [stderr] 87 | | &AST::BinaryOp(_, ref left, ref right) => if left.as_t(scope_items) == right.as_t(scope_items) { left.as_t(scope_items) } else { Type::None } [INFO] [stderr] 88 | | } [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] 62 | match *self { [INFO] [stderr] 63 | AST::Scope(_) => { [INFO] [stderr] 64 | Type::None [INFO] [stderr] 65 | }, [INFO] [stderr] 66 | AST::Call(ref name, _) => { [INFO] [stderr] 67 | //TODO: TypeCheck Call Arguments [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast.rs:68:40 [INFO] [stderr] | [INFO] [stderr] 68 | match scope_items.iter().find(|&x| if let &AST::Function(ref f_name, _, _, _) = x { name == f_name } else { false }) { [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] 68 | match scope_items.iter().find(|&x| if let AST::Function(ref f_name, _, _, _) = *x { name == f_name } else { false }) { [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/ast.rs:91:34 [INFO] [stderr] | [INFO] [stderr] 91 | pub fn as_s(&self, scope_items: &ScopeItems) -> String { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast.rs:92:3 [INFO] [stderr] | [INFO] [stderr] 92 | match self { [INFO] [stderr] | _________^ [INFO] [stderr] 93 | | &AST::Scope(ref functions) => { [INFO] [stderr] 94 | | let function_asts = functions.iter().fold("".to_string(), |prev, next| prev + &next.as_s(functions)); [INFO] [stderr] 95 | | format!("(module {})", function_asts) [INFO] [stderr] ... | [INFO] [stderr] 127 | | &AST::BinaryOp(ref op, ref left, ref right) => format!("({}.{} {} {})", left.as_t(scope_items).to_string(), op.instr(), left.as_s(scope_items), right.as_s(scope_items)) [INFO] [stderr] 128 | | } [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] 92 | match *self { [INFO] [stderr] 93 | AST::Scope(ref functions) => { [INFO] [stderr] 94 | let function_asts = functions.iter().fold("".to_string(), |prev, next| prev + &next.as_s(functions)); [INFO] [stderr] 95 | format!("(module {})", function_asts) [INFO] [stderr] 96 | }, [INFO] [stderr] 97 | AST::Call(ref name, ref args) => { [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/parse.rs:138:42 [INFO] [stderr] | [INFO] [stderr] 138 | fn parse_fn_args(cur: &mut String, args: &Args) -> Result, String> { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/parse.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | if n == $thet { [INFO] [stderr] | _____________^ [INFO] [stderr] 31 | | true [INFO] [stderr] 32 | | } else { [INFO] [stderr] 33 | | false [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____________^ help: you can reduce it to: `n` [INFO] [stderr] ... [INFO] [stderr] 142 | while !peek!(Token::RParen, cur) { [INFO] [stderr] | ------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/parse.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | if n == $thet { [INFO] [stderr] | _____________^ [INFO] [stderr] 31 | | true [INFO] [stderr] 32 | | } else { [INFO] [stderr] 33 | | false [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____________^ help: you can reduce it to: `n` [INFO] [stderr] ... [INFO] [stderr] 144 | if !(peek!(Token::Comma, cur) || peek!(Token::RParen, cur)) { [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/parse.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | if n == $thet { [INFO] [stderr] | _____________^ [INFO] [stderr] 31 | | true [INFO] [stderr] 32 | | } else { [INFO] [stderr] 33 | | false [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____________^ help: you can reduce it to: `n` [INFO] [stderr] ... [INFO] [stderr] 144 | if !(peek!(Token::Comma, cur) || peek!(Token::RParen, cur)) { [INFO] [stderr] | ------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [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/parse.rs:153:39 [INFO] [stderr] | [INFO] [stderr] 153 | fn parse_atom(cur: &mut String, args: &Args) -> Result { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/parse.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | if n == $thet { [INFO] [stderr] | _____________^ [INFO] [stderr] 31 | | true [INFO] [stderr] 32 | | } else { [INFO] [stderr] 33 | | false [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____________^ help: you can reduce it to: `n` [INFO] [stderr] ... [INFO] [stderr] 158 | if peek!(Token::LParen, cur) { //Peek => Function call [INFO] [stderr] | ------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [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/parse.rs:173:46 [INFO] [stderr] | [INFO] [stderr] 173 | fn parse_maybe_arith(cur: &mut String, args: &Args) -> Result { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/parse.rs:184:43 [INFO] [stderr] | [INFO] [stderr] 184 | fn parse_maybe_if(cur: &mut String, args: &Args) -> Result { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/parse.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | if n == $thet { [INFO] [stderr] | _____________^ [INFO] [stderr] 31 | | true [INFO] [stderr] 32 | | } else { [INFO] [stderr] 33 | | false [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____________^ help: you can reduce it to: `n` [INFO] [stderr] ... [INFO] [stderr] 187 | if peek!(Token::If, cur) { [INFO] [stderr] | --------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [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/parse.rs:200:39 [INFO] [stderr] | [INFO] [stderr] 200 | fn parse_expr(cur: &mut String, args: &Args) -> Result { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/parse.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | if n == $thet { [INFO] [stderr] | _____________^ [INFO] [stderr] 31 | | true [INFO] [stderr] 32 | | } else { [INFO] [stderr] 33 | | false [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____________^ help: you can reduce it to: `n` [INFO] [stderr] ... [INFO] [stderr] 201 | if peek!(Token::LParen, cur) { [INFO] [stderr] | ------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/parse.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | if n == $thet { [INFO] [stderr] | _____________^ [INFO] [stderr] 31 | | true [INFO] [stderr] 32 | | } else { [INFO] [stderr] 33 | | false [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____________^ help: you can reduce it to: `n` [INFO] [stderr] ... [INFO] [stderr] 226 | while !peek!(Token::RParen, cur) { [INFO] [stderr] | ------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/parse.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | if n == $thet { [INFO] [stderr] | _____________^ [INFO] [stderr] 31 | | true [INFO] [stderr] 32 | | } else { [INFO] [stderr] 33 | | false [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____________^ help: you can reduce it to: `n` [INFO] [stderr] ... [INFO] [stderr] 228 | if !(peek!(Token::RParen, cur) || peek!(Token::Comma, cur)) { [INFO] [stderr] | ------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/parse.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | if n == $thet { [INFO] [stderr] | _____________^ [INFO] [stderr] 31 | | true [INFO] [stderr] 32 | | } else { [INFO] [stderr] 33 | | false [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____________^ help: you can reduce it to: `n` [INFO] [stderr] ... [INFO] [stderr] 228 | if !(peek!(Token::RParen, cur) || peek!(Token::Comma, cur)) { [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/parse.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | if n == $thet { [INFO] [stderr] | _____________^ [INFO] [stderr] 31 | | true [INFO] [stderr] 32 | | } else { [INFO] [stderr] 33 | | false [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____________^ help: you can reduce it to: `n` [INFO] [stderr] ... [INFO] [stderr] 265 | if peek!(Token::Function, cur) { [INFO] [stderr] | --------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.11s [INFO] running `"docker" "inspect" "aec075a45a28e3bbefa3751856249e7b520f31b6e7b97ef8e07388463ccb76f6"` [INFO] running `"docker" "rm" "-f" "aec075a45a28e3bbefa3751856249e7b520f31b6e7b97ef8e07388463ccb76f6"` [INFO] [stdout] aec075a45a28e3bbefa3751856249e7b520f31b6e7b97ef8e07388463ccb76f6