[INFO] updating cached repository 3c1u/maysick [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/3c1u/maysick [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/3c1u/maysick" "work/ex/clippy-test-run/sources/stable/gh/3c1u/maysick"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/3c1u/maysick'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/3c1u/maysick" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/3c1u/maysick"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/3c1u/maysick'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 1ff7118922297e8d1de5c6bfd0931d9313ebcf99 [INFO] sha for GitHub repo 3c1u/maysick: 1ff7118922297e8d1de5c6bfd0931d9313ebcf99 [INFO] validating manifest of 3c1u/maysick 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 3c1u/maysick 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 3c1u/maysick [INFO] finished frobbing 3c1u/maysick [INFO] frobbed toml for 3c1u/maysick written to work/ex/clippy-test-run/sources/stable/gh/3c1u/maysick/Cargo.toml [INFO] started frobbing 3c1u/maysick [INFO] finished frobbing 3c1u/maysick [INFO] frobbed toml for 3c1u/maysick written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/3c1u/maysick/Cargo.toml [INFO] crate 3c1u/maysick 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 3c1u/maysick against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/3c1u/maysick:/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] 4d9f73daba165ceed5c043d85cd7acf61ba548413b9bd0a83826e9b20eb8f115 [INFO] running `"docker" "start" "-a" "4d9f73daba165ceed5c043d85cd7acf61ba548413b9bd0a83826e9b20eb8f115"` [INFO] [stderr] Checking maysick v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/eval/mod.rs:79:20 [INFO] [stderr] | [INFO] [stderr] 79 | Ok(r) => Ok(r), [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/eval/mod.rs:115:27 [INFO] [stderr] | [INFO] [stderr] 115 | Stmt::FnDef(i, a, b) => { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/eval/mod.rs:116:17 [INFO] [stderr] | [INFO] [stderr] 116 | let f = MayObject::Fn(a.clone(), b.clone()); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/eval/mod.rs:121:17 [INFO] [stderr] | [INFO] [stderr] 121 | let r = eval_expr(e.clone(), x)?; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/eval/mod.rs:126:17 [INFO] [stderr] | [INFO] [stderr] 126 | let r = eval_expr(e.clone(), x)?; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/eval/mod.rs:131:17 [INFO] [stderr] | [INFO] [stderr] 131 | let r = eval_expr(e.clone(), x)?; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/eval/mod.rs:79:20 [INFO] [stderr] | [INFO] [stderr] 79 | Ok(r) => Ok(r), [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/eval/mod.rs:115:27 [INFO] [stderr] | [INFO] [stderr] 115 | Stmt::FnDef(i, a, b) => { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/eval/mod.rs:116:17 [INFO] [stderr] | [INFO] [stderr] 116 | let f = MayObject::Fn(a.clone(), b.clone()); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/eval/mod.rs:121:17 [INFO] [stderr] | [INFO] [stderr] 121 | let r = eval_expr(e.clone(), x)?; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/eval/mod.rs:126:17 [INFO] [stderr] | [INFO] [stderr] 126 | let r = eval_expr(e.clone(), x)?; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/eval/mod.rs:131:17 [INFO] [stderr] | [INFO] [stderr] 131 | let r = eval_expr(e.clone(), x)?; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lexer.rs:244:38 [INFO] [stderr] | [INFO] [stderr] 244 | let res: Vec = vec![83, 0xCAFEBABE, 1123]; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xCAFE_BABE` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lexer.rs:258:39 [INFO] [stderr] | [INFO] [stderr] 258 | let res: Vec = vec![595, 0xCAFEBABE, 1123]; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xCAFE_BABE` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/lexer.rs:273:34 [INFO] [stderr] | [INFO] [stderr] 273 | let res: Vec = vec![0112398, 0]; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::zero_prefixed_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 273 | let res: Vec = vec![112398, 0]; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 273 | let res: Vec = vec![0o112398, 0]; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lexer.rs:273:34 [INFO] [stderr] | [INFO] [stderr] 273 | let res: Vec = vec![0112398, 0]; [INFO] [stderr] | ^^^^^^^ help: consider: `0_112_398` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/eval/builtin.rs:14:11 [INFO] [stderr] | [INFO] [stderr] 14 | name: &String, [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] help: change this to [INFO] [stderr] | [INFO] [stderr] 14 | name: &str, [INFO] [stderr] | ^^^^ [INFO] [stderr] help: change `name.as_str()` to [INFO] [stderr] | [INFO] [stderr] 17 | match name { [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/eval/builtin.rs:15:11 [INFO] [stderr] | [INFO] [stderr] 15 | args: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[MayObject]` [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: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/eval/builtin.rs:41:21 [INFO] [stderr] | [INFO] [stderr] 41 | r = rand() as i64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(rand())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `eval::env::Env` [INFO] [stderr] --> src/eval/env.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | / pub fn new() -> Self { [INFO] [stderr] 40 | | Env { [INFO] [stderr] 41 | | parent: None, [INFO] [stderr] 42 | | items_var: HashMap::new(), [INFO] [stderr] 43 | | items_let: HashMap::new(), [INFO] [stderr] 44 | | } [INFO] [stderr] 45 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 15 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/eval/env.rs:101:28 [INFO] [stderr] | [INFO] [stderr] 101 | pub fn get(&self, key: &String) -> MayObject { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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 `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/eval/env.rs:105:32 [INFO] [stderr] | [INFO] [stderr] 105 | pub fn get_opt(&self, key: &String) -> Option { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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 `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/eval/env.rs:121:35 [INFO] [stderr] | [INFO] [stderr] 121 | fn find_owner_mut(&self, key: &String, me: Option) -> (VariableType, Option) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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: defining a method called `from_str` on this type; consider implementing the `std::str::FromStr` trait or choosing a less ambiguous name [INFO] [stderr] --> src/eval/object.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | / pub fn from_str(s: &str) -> Self { [INFO] [stderr] 37 | | MayObject::String(s.to_string()) [INFO] [stderr] 38 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/eval/object.rs:74:22 [INFO] [stderr] | [INFO] [stderr] 74 | .map(|s: i64| MayObject::Integer(s)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `MayObject::Integer` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/eval/mod.rs:49:22 [INFO] [stderr] | [INFO] [stderr] 49 | pub fn eval_infix(i: &Infix, a: MayObject, b: MayObject) -> Result { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Infix` [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: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/eval/mod.rs:74:18 [INFO] [stderr] | [INFO] [stderr] 74 | .into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lexer.rs:132:12 [INFO] [stderr] | [INFO] [stderr] 132 | |res| Token::Integer(res) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Token::Integer` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: in an 'if' condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a 'let' [INFO] [stderr] --> src/parser.rs:88:37 [INFO] [stderr] | [INFO] [stderr] 88 | verify!(take!(0), |_| { priority <= n }) >> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::block_in_if_condition_stmt)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_stmt [INFO] [stderr] [INFO] [stderr] warning: in an 'if' condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a 'let' [INFO] [stderr] --> src/parser.rs:103:43 [INFO] [stderr] | [INFO] [stderr] 103 | verify!(take!(0), |_| { priority == n } ) >> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_stmt [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/token.rs:84:19 [INFO] [stderr] | [INFO] [stderr] 84 | pub fn new(v: &'a Vec) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Token]` [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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:72:47 [INFO] [stderr] | [INFO] [stderr] 72 | let cpath = matches.value_of("INPUT").ok_or(Error::new( [INFO] [stderr] | _______________________________________________^ [INFO] [stderr] 73 | | ErrorKind::InvalidInput, [INFO] [stderr] 74 | | "Input file is not specified.", [INFO] [stderr] 75 | | ))?; [INFO] [stderr] | |__________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 72 | let cpath = matches.value_of("INPUT").ok_or_else(|| Error::new( [INFO] [stderr] 73 | ErrorKind::InvalidInput, [INFO] [stderr] 74 | "Input file is not specified.", [INFO] [stderr] 75 | ))?; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:78:48 [INFO] [stderr] | [INFO] [stderr] 78 | let _cpath = matches.value_of("INPUT").ok_or(Error::new( [INFO] [stderr] | ________________________________________________^ [INFO] [stderr] 79 | | ErrorKind::InvalidInput, [INFO] [stderr] 80 | | "Input file is not specified.", [INFO] [stderr] 81 | | ))?; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 78 | let _cpath = matches.value_of("INPUT").ok_or_else(|| Error::new( [INFO] [stderr] 79 | ErrorKind::InvalidInput, [INFO] [stderr] 80 | "Input file is not specified.", [INFO] [stderr] 81 | ))?; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/eval/builtin.rs:14:11 [INFO] [stderr] | [INFO] [stderr] 14 | name: &String, [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] help: change this to [INFO] [stderr] | [INFO] [stderr] 14 | name: &str, [INFO] [stderr] | ^^^^ [INFO] [stderr] help: change `name.as_str()` to [INFO] [stderr] | [INFO] [stderr] 17 | match name { [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/eval/builtin.rs:15:11 [INFO] [stderr] | [INFO] [stderr] 15 | args: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[MayObject]` [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: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/eval/builtin.rs:41:21 [INFO] [stderr] | [INFO] [stderr] 41 | r = rand() as i64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(rand())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `eval::env::Env` [INFO] [stderr] --> src/eval/env.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | / pub fn new() -> Self { [INFO] [stderr] 40 | | Env { [INFO] [stderr] 41 | | parent: None, [INFO] [stderr] 42 | | items_var: HashMap::new(), [INFO] [stderr] 43 | | items_let: HashMap::new(), [INFO] [stderr] 44 | | } [INFO] [stderr] 45 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 15 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/eval/env.rs:101:28 [INFO] [stderr] | [INFO] [stderr] 101 | pub fn get(&self, key: &String) -> MayObject { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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 `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/eval/env.rs:105:32 [INFO] [stderr] | [INFO] [stderr] 105 | pub fn get_opt(&self, key: &String) -> Option { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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 `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/eval/env.rs:121:35 [INFO] [stderr] | [INFO] [stderr] 121 | fn find_owner_mut(&self, key: &String, me: Option) -> (VariableType, Option) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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: defining a method called `from_str` on this type; consider implementing the `std::str::FromStr` trait or choosing a less ambiguous name [INFO] [stderr] --> src/eval/object.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | / pub fn from_str(s: &str) -> Self { [INFO] [stderr] 37 | | MayObject::String(s.to_string()) [INFO] [stderr] 38 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/eval/object.rs:74:22 [INFO] [stderr] | [INFO] [stderr] 74 | .map(|s: i64| MayObject::Integer(s)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `MayObject::Integer` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/eval/mod.rs:49:22 [INFO] [stderr] | [INFO] [stderr] 49 | pub fn eval_infix(i: &Infix, a: MayObject, b: MayObject) -> Result { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Infix` [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: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/eval/mod.rs:74:18 [INFO] [stderr] | [INFO] [stderr] 74 | .into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lexer.rs:132:12 [INFO] [stderr] | [INFO] [stderr] 132 | |res| Token::Integer(res) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Token::Integer` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: in an 'if' condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a 'let' [INFO] [stderr] --> src/parser.rs:88:37 [INFO] [stderr] | [INFO] [stderr] 88 | verify!(take!(0), |_| { priority <= n }) >> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::block_in_if_condition_stmt)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_stmt [INFO] [stderr] [INFO] [stderr] warning: in an 'if' condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a 'let' [INFO] [stderr] --> src/parser.rs:103:43 [INFO] [stderr] | [INFO] [stderr] 103 | verify!(take!(0), |_| { priority == n } ) >> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_stmt [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/token.rs:84:19 [INFO] [stderr] | [INFO] [stderr] 84 | pub fn new(v: &'a Vec) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Token]` [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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:72:47 [INFO] [stderr] | [INFO] [stderr] 72 | let cpath = matches.value_of("INPUT").ok_or(Error::new( [INFO] [stderr] | _______________________________________________^ [INFO] [stderr] 73 | | ErrorKind::InvalidInput, [INFO] [stderr] 74 | | "Input file is not specified.", [INFO] [stderr] 75 | | ))?; [INFO] [stderr] | |__________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 72 | let cpath = matches.value_of("INPUT").ok_or_else(|| Error::new( [INFO] [stderr] 73 | ErrorKind::InvalidInput, [INFO] [stderr] 74 | "Input file is not specified.", [INFO] [stderr] 75 | ))?; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:78:48 [INFO] [stderr] | [INFO] [stderr] 78 | let _cpath = matches.value_of("INPUT").ok_or(Error::new( [INFO] [stderr] | ________________________________________________^ [INFO] [stderr] 79 | | ErrorKind::InvalidInput, [INFO] [stderr] 80 | | "Input file is not specified.", [INFO] [stderr] 81 | | ))?; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 78 | let _cpath = matches.value_of("INPUT").ok_or_else(|| Error::new( [INFO] [stderr] 79 | ErrorKind::InvalidInput, [INFO] [stderr] 80 | "Input file is not specified.", [INFO] [stderr] 81 | ))?; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 3.09s [INFO] running `"docker" "inspect" "4d9f73daba165ceed5c043d85cd7acf61ba548413b9bd0a83826e9b20eb8f115"` [INFO] running `"docker" "rm" "-f" "4d9f73daba165ceed5c043d85cd7acf61ba548413b9bd0a83826e9b20eb8f115"` [INFO] [stdout] 4d9f73daba165ceed5c043d85cd7acf61ba548413b9bd0a83826e9b20eb8f115