[INFO] updating cached repository meddle0x53/mscheme [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/meddle0x53/mscheme [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/meddle0x53/mscheme" "work/ex/clippy-test-run/sources/stable/gh/meddle0x53/mscheme"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/meddle0x53/mscheme'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/meddle0x53/mscheme" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/meddle0x53/mscheme"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/meddle0x53/mscheme'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 84dafecf41861185cba65f3cfea7c347f31241dd [INFO] sha for GitHub repo meddle0x53/mscheme: 84dafecf41861185cba65f3cfea7c347f31241dd [INFO] validating manifest of meddle0x53/mscheme 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 meddle0x53/mscheme 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 meddle0x53/mscheme [INFO] finished frobbing meddle0x53/mscheme [INFO] frobbed toml for meddle0x53/mscheme written to work/ex/clippy-test-run/sources/stable/gh/meddle0x53/mscheme/Cargo.toml [INFO] started frobbing meddle0x53/mscheme [INFO] finished frobbing meddle0x53/mscheme [INFO] frobbed toml for meddle0x53/mscheme written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/meddle0x53/mscheme/Cargo.toml [INFO] crate meddle0x53/mscheme 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] [stderr] Blocking waiting for file lock on the registry index [INFO] linting meddle0x53/mscheme against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/meddle0x53/mscheme:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dclippy::into_iter_on_array" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] c67c7a8577efc1bd03bfe711c81ea34574df6c4f0f4279a804db5ab8ee352b7f [INFO] running `"docker" "start" "-a" "c67c7a8577efc1bd03bfe711c81ea34574df6c4f0f4279a804db5ab8ee352b7f"` [INFO] [stderr] Checking nix v0.5.1 [INFO] [stderr] Checking rustyline v1.0.0 [INFO] [stderr] Checking mscheme v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lexer/iterator.rs:84:21 [INFO] [stderr] | [INFO] [stderr] 84 | None => return Err(SyntaxError::UnexpectedEOL), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(SyntaxError::UnexpectedEOL)` [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: long literal lacking separators [INFO] [stderr] --> src/lexer/mod.rs:150:45 [INFO] [stderr] | [INFO] [stderr] 150 | OpenParen, id("-"), Integer(778899), OpenParen, id("+"), [INFO] [stderr] | ^^^^^^ help: consider: `778_899` [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: unneeded return statement [INFO] [stderr] --> src/lexer/iterator.rs:84:21 [INFO] [stderr] | [INFO] [stderr] 84 | None => return Err(SyntaxError::UnexpectedEOL), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(SyntaxError::UnexpectedEOL)` [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: unnecessary parentheses around function argument [INFO] [stderr] --> src/main.rs:16:23 [INFO] [stderr] | [INFO] [stderr] 16 | repl::start("> ", (|s, runtime| interpreter::run(&s, runtime))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/main.rs:16:23 [INFO] [stderr] | [INFO] [stderr] 16 | repl::start("> ", (|s, runtime| interpreter::run(&s, runtime))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/errors.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | / match self { [INFO] [stderr] 14 | | &SyntaxError::InvalidSymbol(line, column, ref message) => { [INFO] [stderr] 15 | | write!( [INFO] [stderr] 16 | | f, [INFO] [stderr] ... | [INFO] [stderr] 26 | | } [INFO] [stderr] 27 | | } [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] 13 | match *self { [INFO] [stderr] 14 | SyntaxError::InvalidSymbol(line, column, ref message) => { [INFO] [stderr] 15 | write!( [INFO] [stderr] 16 | f, [INFO] [stderr] 17 | "SyntaxError: {} (line: {}, column: {})", [INFO] [stderr] 18 | message, line, column + 1 [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/errors.rs:54:9 [INFO] [stderr] | [INFO] [stderr] 54 | / match self { [INFO] [stderr] 55 | | &ParseError::ClosingParenWithoutOpening => { [INFO] [stderr] 56 | | write!( [INFO] [stderr] 57 | | f, "ParseError: Closing parens don't match the opening ones" [INFO] [stderr] ... | [INFO] [stderr] 62 | | } [INFO] [stderr] 63 | | } [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] 54 | match *self { [INFO] [stderr] 55 | ParseError::ClosingParenWithoutOpening => { [INFO] [stderr] 56 | write!( [INFO] [stderr] 57 | f, "ParseError: Closing parens don't match the opening ones" [INFO] [stderr] 58 | ) [INFO] [stderr] 59 | }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: Negation by multiplying with -1 [INFO] [stderr] --> src/lexer/iterator.rs:69:37 [INFO] [stderr] | [INFO] [stderr] 69 | Ok(Integer(if sign == '-' { -1 * value } else { value })) [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::neg_multiply)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/lexer/iterator.rs:111:36 [INFO] [stderr] | [INFO] [stderr] 111 | while let Some((_, chr)) = self.next() { [INFO] [stderr] | ^^^^^^^^^^^ help: try: `for (_, chr) in self { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [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/parser/mod.rs:17:22 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn parse(tokens: &Vec) -> Result, ParseError> { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Token]` [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/parser/mod.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | / match token { [INFO] [stderr] 26 | | &Token::OpenParen => { [INFO] [stderr] 27 | | let inner = try!(parse_level(tokens, level + 1)); [INFO] [stderr] 28 | | ast_nodes.push(List(inner)); [INFO] [stderr] ... | [INFO] [stderr] 48 | | }, [INFO] [stderr] 49 | | }; [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] 25 | match *token { [INFO] [stderr] 26 | Token::OpenParen => { [INFO] [stderr] 27 | let inner = try!(parse_level(tokens, level + 1)); [INFO] [stderr] 28 | ast_nodes.push(List(inner)); [INFO] [stderr] 29 | }, [INFO] [stderr] 30 | Token::CloseParen => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/parser/mod.rs:41:40 [INFO] [stderr] | [INFO] [stderr] 41 | ast_nodes.push(Integer(val.clone())); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*val` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/parser/mod.rs:44:40 [INFO] [stderr] | [INFO] [stderr] 44 | ast_nodes.push(Boolean(val.clone())); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*val` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/interpreter/value.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | / match self { [INFO] [stderr] 34 | | &Symbol(_) => format!("'{}", self.display()), [INFO] [stderr] 35 | | &List(_) => format!("'{}", self.display()), [INFO] [stderr] 36 | | _ => self.display() [INFO] [stderr] 37 | | } [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] 33 | match *self { [INFO] [stderr] 34 | Symbol(_) => format!("'{}", self.display()), [INFO] [stderr] 35 | List(_) => format!("'{}", self.display()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/interpreter/value.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | / match self { [INFO] [stderr] 42 | | &Symbol(ref val) => format!("{}", val), [INFO] [stderr] 43 | | &Integer(val) => format!("{}", val), [INFO] [stderr] 44 | | &Boolean(val) => format!("#{}", if val { "t" } else { "f" }), [INFO] [stderr] ... | [INFO] [stderr] 59 | | &Func(_, _) => format!("#") [INFO] [stderr] 60 | | } [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] 41 | match *self { [INFO] [stderr] 42 | Symbol(ref val) => format!("{}", val), [INFO] [stderr] 43 | Integer(val) => format!("{}", val), [INFO] [stderr] 44 | Boolean(val) => format!("#{}", if val { "t" } else { "f" }), [INFO] [stderr] 45 | StringValue(ref val) => format!("\"{}\"", val), [INFO] [stderr] 46 | List(ref val) => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/interpreter/value.rs:42:33 [INFO] [stderr] | [INFO] [stderr] 42 | &Symbol(ref val) => format!("{}", val), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `val.to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/interpreter/value.rs:59:28 [INFO] [stderr] | [INFO] [stderr] 59 | &Func(_, _) => format!("#") [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"#".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/interpreter/runtime.rs:30:39 [INFO] [stderr] | [INFO] [stderr] 30 | pub fn is_var_defined(&self, key: &String) -> bool { [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/interpreter/runtime.rs:34:38 [INFO] [stderr] | [INFO] [stderr] 34 | pub fn get_var_value(&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 `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/interpreter/mod.rs:26:24 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn eval(ast_nodes: &Vec, runtime: &RuntimeNode) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[ASTNode]` [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/interpreter/mod.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | / match node { [INFO] [stderr] 38 | | &ASTNode::Identifier(ref v) => { [INFO] [stderr] 39 | | if let Some(val) = runtime.borrow().get_var_value(v) { [INFO] [stderr] 40 | | Ok(val) [INFO] [stderr] ... | [INFO] [stderr] 54 | | } [INFO] [stderr] 55 | | } [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] 37 | match *node { [INFO] [stderr] 38 | ASTNode::Identifier(ref v) => { [INFO] [stderr] 39 | if let Some(val) = runtime.borrow().get_var_value(v) { [INFO] [stderr] 40 | Ok(val) [INFO] [stderr] 41 | } else { [INFO] [stderr] 42 | runtime_error!("Identifier not found! {:?}", node) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/interpreter/mod.rs:49:16 [INFO] [stderr] | [INFO] [stderr] 49 | if vec.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!vec.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/interpreter/mod.rs:58:21 [INFO] [stderr] | [INFO] [stderr] 58 | fn eval_list(nodes: &Vec, env: RuntimeNode) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[ASTNode]` [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: called `.get().unwrap()` on a slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/interpreter/mod.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | let first = nodes.get(0).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `&nodes[0]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/interpreter/mod.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | / match first { [INFO] [stderr] 62 | | &ASTNode::Identifier(ref func) => { [INFO] [stderr] 63 | | match func.as_str() { [INFO] [stderr] 64 | | "define" => define(nodes, env), [INFO] [stderr] ... | [INFO] [stderr] 90 | | } [INFO] [stderr] 91 | | } [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] 61 | match *first { [INFO] [stderr] 62 | ASTNode::Identifier(ref func) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/interpreter/mod.rs:95:5 [INFO] [stderr] | [INFO] [stderr] 95 | / match ast_node { [INFO] [stderr] 96 | | &ASTNode::Identifier(ref v) => Ok(Symbol(v.clone())), [INFO] [stderr] 97 | | &ASTNode::Integer(v) => Ok(Integer(v)), [INFO] [stderr] 98 | | &ASTNode::Boolean(v) => Ok(Boolean(v)), [INFO] [stderr] ... | [INFO] [stderr] 104 | | } [INFO] [stderr] 105 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 95 | match *ast_node { [INFO] [stderr] 96 | ASTNode::Identifier(ref v) => Ok(Symbol(v.clone())), [INFO] [stderr] 97 | ASTNode::Integer(v) => Ok(Integer(v)), [INFO] [stderr] 98 | ASTNode::Boolean(v) => Ok(Boolean(v)), [INFO] [stderr] 99 | ASTNode::StringNode(ref v) => Ok(StringValue(v.clone())), [INFO] [stderr] 100 | ASTNode::List(ref values) => { [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/interpreter/mod.rs:108:22 [INFO] [stderr] | [INFO] [stderr] 108 | fn define(ast_nodes: &Vec, runtime: RuntimeNode) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[ASTNode]` [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/interpreter/mod.rs:111:16 [INFO] [stderr] | [INFO] [stderr] 111 | let name = match node_at!(ast_nodes, 1) { [INFO] [stderr] | ________________^ [INFO] [stderr] 112 | | &ASTNode::Identifier(ref x) => x, [INFO] [stderr] 113 | | _ => runtime_error!("Bad variable name in 'define': {:?}", ast_nodes) [INFO] [stderr] 114 | | }; [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] thread 'main' panicked at 'byte index 38 is out of bounds of ` let mut result = empty!();`', src/libcore/str/mod.rs:2092:9 [INFO] [stderr] stack backtrace: [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/errors.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | / match self { [INFO] [stderr] 14 | | &SyntaxError::InvalidSymbol(line, column, ref message) => { [INFO] [stderr] 15 | | write!( [INFO] [stderr] 16 | | f, [INFO] [stderr] ... | [INFO] [stderr] 26 | | } [INFO] [stderr] 27 | | } [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] 13 | match *self { [INFO] [stderr] 14 | SyntaxError::InvalidSymbol(line, column, ref message) => { [INFO] [stderr] 15 | write!( [INFO] [stderr] 16 | f, [INFO] [stderr] 17 | "SyntaxError: {} (line: {}, column: {})", [INFO] [stderr] 18 | message, line, column + 1 [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/errors.rs:54:9 [INFO] [stderr] | [INFO] [stderr] 54 | / match self { [INFO] [stderr] 55 | | &ParseError::ClosingParenWithoutOpening => { [INFO] [stderr] 56 | | write!( [INFO] [stderr] 57 | | f, "ParseError: Closing parens don't match the opening ones" [INFO] [stderr] ... | [INFO] [stderr] 62 | | } [INFO] [stderr] 63 | | } [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] 54 | match *self { [INFO] [stderr] 55 | ParseError::ClosingParenWithoutOpening => { [INFO] [stderr] 56 | write!( [INFO] [stderr] 57 | f, "ParseError: Closing parens don't match the opening ones" [INFO] [stderr] 58 | ) [INFO] [stderr] 59 | }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: Negation by multiplying with -1 [INFO] [stderr] --> src/lexer/iterator.rs:69:37 [INFO] [stderr] | [INFO] [stderr] 69 | Ok(Integer(if sign == '-' { -1 * value } else { value })) [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::neg_multiply)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/lexer/iterator.rs:111:36 [INFO] [stderr] | [INFO] [stderr] 111 | while let Some((_, chr)) = self.next() { [INFO] [stderr] | ^^^^^^^^^^^ help: try: `for (_, chr) in self { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [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/parser/mod.rs:17:22 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn parse(tokens: &Vec) -> Result, ParseError> { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Token]` [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/parser/mod.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | / match token { [INFO] [stderr] 26 | | &Token::OpenParen => { [INFO] [stderr] 27 | | let inner = try!(parse_level(tokens, level + 1)); [INFO] [stderr] 28 | | ast_nodes.push(List(inner)); [INFO] [stderr] ... | [INFO] [stderr] 48 | | }, [INFO] [stderr] 49 | | }; [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] 25 | match *token { [INFO] [stderr] 26 | Token::OpenParen => { [INFO] [stderr] 27 | let inner = try!(parse_level(tokens, level + 1)); [INFO] [stderr] 28 | ast_nodes.push(List(inner)); [INFO] [stderr] 29 | }, [INFO] [stderr] 30 | Token::CloseParen => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/parser/mod.rs:41:40 [INFO] [stderr] | [INFO] [stderr] 41 | ast_nodes.push(Integer(val.clone())); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*val` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/parser/mod.rs:44:40 [INFO] [stderr] | [INFO] [stderr] 44 | ast_nodes.push(Boolean(val.clone())); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*val` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/interpreter/value.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | / match self { [INFO] [stderr] 34 | | &Symbol(_) => format!("'{}", self.display()), [INFO] [stderr] 35 | | &List(_) => format!("'{}", self.display()), [INFO] [stderr] 36 | | _ => self.display() [INFO] [stderr] 37 | | } [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] 33 | match *self { [INFO] [stderr] 34 | Symbol(_) => format!("'{}", self.display()), [INFO] [stderr] 35 | List(_) => format!("'{}", self.display()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/interpreter/value.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | / match self { [INFO] [stderr] 42 | | &Symbol(ref val) => format!("{}", val), [INFO] [stderr] 43 | | &Integer(val) => format!("{}", val), [INFO] [stderr] 44 | | &Boolean(val) => format!("#{}", if val { "t" } else { "f" }), [INFO] [stderr] ... | [INFO] [stderr] 59 | | &Func(_, _) => format!("#") [INFO] [stderr] 60 | | } [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] 41 | match *self { [INFO] [stderr] 42 | Symbol(ref val) => format!("{}", val), [INFO] [stderr] 43 | Integer(val) => format!("{}", val), [INFO] [stderr] 44 | Boolean(val) => format!("#{}", if val { "t" } else { "f" }), [INFO] [stderr] 45 | StringValue(ref val) => format!("\"{}\"", val), [INFO] [stderr] 46 | List(ref val) => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/interpreter/value.rs:42:33 [INFO] [stderr] | [INFO] [stderr] 42 | &Symbol(ref val) => format!("{}", val), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `val.to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/interpreter/value.rs:59:28 [INFO] [stderr] | [INFO] [stderr] 59 | &Func(_, _) => format!("#") [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"#".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/interpreter/runtime.rs:30:39 [INFO] [stderr] | [INFO] [stderr] 30 | pub fn is_var_defined(&self, key: &String) -> bool { [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/interpreter/runtime.rs:34:38 [INFO] [stderr] | [INFO] [stderr] 34 | pub fn get_var_value(&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 `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/interpreter/mod.rs:26:24 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn eval(ast_nodes: &Vec, runtime: &RuntimeNode) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[ASTNode]` [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/interpreter/mod.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | / match node { [INFO] [stderr] 38 | | &ASTNode::Identifier(ref v) => { [INFO] [stderr] 39 | | if let Some(val) = runtime.borrow().get_var_value(v) { [INFO] [stderr] 40 | | Ok(val) [INFO] [stderr] ... | [INFO] [stderr] 54 | | } [INFO] [stderr] 55 | | } [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] 37 | match *node { [INFO] [stderr] 38 | ASTNode::Identifier(ref v) => { [INFO] [stderr] 39 | if let Some(val) = runtime.borrow().get_var_value(v) { [INFO] [stderr] 40 | Ok(val) [INFO] [stderr] 41 | } else { [INFO] [stderr] 42 | runtime_error!("Identifier not found! {:?}", node) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/interpreter/mod.rs:49:16 [INFO] [stderr] | [INFO] [stderr] 49 | if vec.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!vec.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/interpreter/mod.rs:58:21 [INFO] [stderr] | [INFO] [stderr] 58 | fn eval_list(nodes: &Vec, env: RuntimeNode) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[ASTNode]` [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: called `.get().unwrap()` on a slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/interpreter/mod.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | let first = nodes.get(0).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `&nodes[0]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/interpreter/mod.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | / match first { [INFO] [stderr] 62 | | &ASTNode::Identifier(ref func) => { [INFO] [stderr] 63 | | match func.as_str() { [INFO] [stderr] 64 | | "define" => define(nodes, env), [INFO] [stderr] ... | [INFO] [stderr] 90 | | } [INFO] [stderr] 91 | | } [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] 61 | match *first { [INFO] [stderr] 62 | ASTNode::Identifier(ref func) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/interpreter/mod.rs:95:5 [INFO] [stderr] | [INFO] [stderr] 95 | / match ast_node { [INFO] [stderr] 96 | | &ASTNode::Identifier(ref v) => Ok(Symbol(v.clone())), [INFO] [stderr] 97 | | &ASTNode::Integer(v) => Ok(Integer(v)), [INFO] [stderr] 98 | | &ASTNode::Boolean(v) => Ok(Boolean(v)), [INFO] [stderr] ... | [INFO] [stderr] 104 | | } [INFO] [stderr] 105 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 95 | match *ast_node { [INFO] [stderr] 96 | ASTNode::Identifier(ref v) => Ok(Symbol(v.clone())), [INFO] [stderr] 97 | ASTNode::Integer(v) => Ok(Integer(v)), [INFO] [stderr] 98 | ASTNode::Boolean(v) => Ok(Boolean(v)), [INFO] [stderr] 99 | ASTNode::StringNode(ref v) => Ok(StringValue(v.clone())), [INFO] [stderr] 100 | ASTNode::List(ref values) => { [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/interpreter/mod.rs:108:22 [INFO] [stderr] | [INFO] [stderr] 108 | fn define(ast_nodes: &Vec, runtime: RuntimeNode) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[ASTNode]` [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/interpreter/mod.rs:111:16 [INFO] [stderr] | [INFO] [stderr] 111 | let name = match node_at!(ast_nodes, 1) { [INFO] [stderr] | ________________^ [INFO] [stderr] 112 | | &ASTNode::Identifier(ref x) => x, [INFO] [stderr] 113 | | _ => runtime_error!("Bad variable name in 'define': {:?}", ast_nodes) [INFO] [stderr] 114 | | }; [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] thread 'main' panicked at 'byte index 38 is out of bounds of ` let mut result = empty!();`', src/libcore/str/mod.rs:2092:9 [INFO] [stderr] stack backtrace: [INFO] [stderr] 0: 0x7fdb54cdbc53 - std::sys::unix::backtrace::tracing::imp::unwind_backtrace::h00d1e05a61bd440b [INFO] [stderr] 0: 0x7f8b8e4e3c53 - std::sys::unix::backtrace::tracing::imp::unwind_backtrace::h00d1e05a61bd440b [INFO] [stderr] at src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:49 [INFO] [stderr] 1: 0x7fdb54cd3368 - std::sys_common::backtrace::_print::hc0d53aca8da62f75 [INFO] [stderr] at src/libstd/sys_common/backtrace.rs:71 [INFO] [stderr] 2: 0x7fdb54cd86c2 - std::panicking::default_hook::{{closure}}::h46d30bcc4bfff149 [INFO] [stderr] at src/libstd/sys_common/backtrace.rs:59 [INFO] [stderr] at src/libstd/panicking.rs:211 [INFO] [stderr] 3: 0x7fdb54cd842d - std::panicking::default_hook::h017696c2a8b7b16f [INFO] [stderr] at src/libstd/panicking.rs:227 [INFO] [stderr] 4: 0x7fdb56c5f813 - rustc::util::common::panic_hook::h0c2559a338a9af32 [INFO] [stderr] 5: 0x7fdb54cd8ea9 - std::panicking::rust_panic_with_hook::h8cbdfe43764887be [INFO] [stderr] at src/libstd/panicking.rs:495 [INFO] [stderr] 6: 0x7fdb54cd8951 - std::panicking::continue_panic_fmt::h3d3c5a833c00a5e1 [INFO] [stderr] at src/libstd/panicking.rs:398 [INFO] [stderr] 7: 0x7fdb54cd8835 - rust_begin_unwind [INFO] [stderr] at src/libstd/panicking.rs:325 [INFO] [stderr] 8: 0x7fdb54d000bc - core::panicking::panic_fmt::h4d67173bc68f6d5a [INFO] [stderr] at src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:49 [INFO] [stderr] 1: 0x7f8b8e4db368 - std::sys_common::backtrace::_print::hc0d53aca8da62f75 [INFO] [stderr] at src/libstd/sys_common/backtrace.rs:71 [INFO] [stderr] 2: 0x7f8b8e4e06c2 - std::panicking::default_hook::{{closure}}::h46d30bcc4bfff149 [INFO] [stderr] at src/libstd/sys_common/backtrace.rs:59 [INFO] [stderr] at src/libstd/panicking.rs:211 [INFO] [stderr] 3: 0x7f8b8e4e042d - std::panicking::default_hook::h017696c2a8b7b16f [INFO] [stderr] at src/libstd/panicking.rs:227 [INFO] [stderr] 4: 0x7f8b90467813 - rustc::util::common::panic_hook::h0c2559a338a9af32 [INFO] [stderr] 5: 0x7f8b8e4e0ea9 - std::panicking::rust_panic_with_hook::h8cbdfe43764887be [INFO] [stderr] at src/libstd/panicking.rs:495 [INFO] [stderr] 6: 0x7f8b8e4e0951 - std::panicking::continue_panic_fmt::h3d3c5a833c00a5e1 [INFO] [stderr] at src/libstd/panicking.rs:398 [INFO] [stderr] 7: 0x7f8b8e4e0835 - rust_begin_unwind [INFO] [stderr] at src/libstd/panicking.rs:325 [INFO] [stderr] 8: 0x7f8b8e5080bc - core::panicking::panic_fmt::h4d67173bc68f6d5a [INFO] [stderr] at src/libcore/panicking.rs:95 [INFO] [stderr] 9: 0x7fdb54d0261d - core::str::slice_error_fail::h2f8a3b25099b18dc [INFO] [stderr] at src/libcore/str/mod.rs:0 [INFO] [stderr] 10: 0x7fdb55b0e238 - core::str::traits:: for core::ops::range::RangeTo>::index::{{closure}}::h4971ebf7c303fb06 [INFO] [stderr] 11: 0x7fdb55b10ced - as core::iter::iterator::Iterator>::fold::h7c7c970f8732e403 [INFO] [stderr] 12: 0x7fdb55afab25 - as alloc::vec::SpecExtend>::from_iter::hcf81033af4d7a756 [INFO] [stderr] 13: 0x7fdb55ae449f - ::emit::h50e1d2cf7b978a5a [INFO] [stderr] 14: 0x7fdb55b091b3 - rustc_errors::Handler::emit_db::h60fb65338a7b5561 [INFO] [stderr] 15: 0x7fdb55af5e27 - rustc_errors::diagnostic_builder::DiagnosticBuilder::emit::h99e2c4975c3f8028 [INFO] [stderr] 16: 0x5624ea04ae08 - clippy_lints::utils::span_lint_and_then::h795763088feffed0 [INFO] [stderr] 17: 0x5624e9ffd236 - >::check_expr::h5bb1e9cafccfa4fb [INFO] [stderr] 18: 0x7fdb56c2e4c0 - as rustc::hir::intravisit::Visitor<'tcx>>::visit_expr::h8a29c722cdf7cb16 [INFO] [stderr] 19: 0x7fdb56c30361 - as rustc::hir::intravisit::Visitor<'tcx>>::visit_local::hd79792d840fd268c [INFO] [stderr] 20: 0x7fdb56c305ec - as rustc::hir::intravisit::Visitor<'tcx>>::visit_block::h6655506fe3948600 [INFO] [stderr] 21: 0x7fdb56c2e58a - as rustc::hir::intravisit::Visitor<'tcx>>::visit_expr::h8a29c722cdf7cb16 [INFO] [stderr] 22: 0x7fdb56c2d63f - as rustc::hir::intravisit::Visitor<'tcx>>::visit_body::h21cf9292ae8432c6 [INFO] [stderr] 23: 0x7fdb56c2d47c - as rustc::hir::intravisit::Visitor<'tcx>>::visit_nested_body::he8fb9a062ac4b1c8 [INFO] [stderr] 24: 0x7fdb56c2ecce - as rustc::hir::intravisit::Visitor<'tcx>>::visit_fn::h4aaa2b7e199bfb22 [INFO] [stderr] 25: 0x7fdb56b8f2c6 - rustc::hir::intravisit::walk_item::hada2286ef6037169 [INFO] [stderr] 26: 0x7fdb56c2db0b - as rustc::hir::intravisit::Visitor<'tcx>>::visit_item::h4954886470941d9b [INFO] [stderr] 27: 0x7fdb56c2ffa0 - as rustc::hir::intravisit::Visitor<'tcx>>::visit_mod::h10e5a891f2fbd5fe [INFO] [stderr] 28: 0x7fdb56b8f0e8 - rustc::hir::intravisit::walk_item::hada2286ef6037169 [INFO] [stderr] 29: 0x7fdb56c2db0b - as rustc::hir::intravisit::Visitor<'tcx>>::visit_item::h4954886470941d9b [INFO] [stderr] 30: 0x7fdb56c2ffa0 - as rustc::hir::intravisit::Visitor<'tcx>>::visit_mod::h10e5a891f2fbd5fe [INFO] [stderr] 31: 0x7fdb56b80c3e - rustc::hir::intravisit::walk_crate::h4afac11c57fcab86 [INFO] [stderr] 32: 0x7fdb56c3729b - rustc::lint::context::check_crate::hccbef8b90ef472b3 [INFO] [stderr] 33: 0x7fdb57862f25 - rustc::util::common::time::hf306edffe5bc1331 [INFO] [stderr] 34: 0x7fdb578dcc7e - rustc::ty::context::tls::enter_context::he8336509407aafca [INFO] [stderr] 35: 0x7fdb578abb81 - >::with::h104ad8c2b4754810 [INFO] [stderr] 36: 0x7fdb578dfea5 - rustc::ty::context::TyCtxt::create_and_enter::h74cefb108a2f7b6f [INFO] [stderr] 37: 0x7fdb57833915 - rustc_driver::driver::compile_input::hca3f044299fe7ad7 [INFO] [stderr] 38: 0x7fdb578ff352 - rustc_driver::run_compiler_with_pool::hafad319513331ac6 [INFO] [stderr] 39: 0x7fdb5783c415 - >::set::h8ef00e2a892c3c56 [INFO] [stderr] 40: 0x7fdb578fe37a - rustc_driver::run_compiler::h7e74f116e6e5e483 [INFO] [stderr] 41: 0x5624e9eb3cd7 - >::set::h8ec3c2b8cbec5474 [INFO] [stderr] 42: 0x5624e9ea25d2 - syntax::with_globals::h5a01e3b26631ef2a [INFO] [stderr] 43: 0x7fdb54cf5319 - __rust_maybe_catch_panic [INFO] [stderr] at src/libpanic_unwind/lib.rs:102 [INFO] [stderr] at src/libcore/panicking.rs:95 [INFO] [stderr] 44: 0x5624e9ea371b - rustc_driver::run::hccd91432ebf6f6b3 [INFO] [stderr] 9: 0x7f8b8e50a61d - core::str::slice_error_fail::h2f8a3b25099b18dc [INFO] [stderr] 45: 0x5624e9eb192b - clippy_driver::main::hf97ab97bd1d252bd [INFO] [stderr] at src/libcore/str/mod.rs:0 [INFO] [stderr] 46: 0x5624e9eb0122 - std::rt::lang_start::{{closure}}::h090d6ed12d543f7e [INFO] [stderr] 10: 0x7f8b8f316238 - core::str::traits:: for core::ops::range::RangeTo>::index::{{closure}}::h4971ebf7c303fb06 [INFO] [stderr] 11: 0x7f8b8f318ced - as core::iter::iterator::Iterator>::fold::h7c7c970f8732e403 [INFO] [stderr] 12: 0x7f8b8f302b25 - as alloc::vec::SpecExtend>::from_iter::hcf81033af4d7a756 [INFO] [stderr] 13: 0x7f8b8f2ec49f - ::emit::h50e1d2cf7b978a5a [INFO] [stderr] 14: 0x7f8b8f3111b3 - rustc_errors::Handler::emit_db::h60fb65338a7b5561 [INFO] [stderr] 15: 0x7f8b8f2fde27 - rustc_errors::diagnostic_builder::DiagnosticBuilder::emit::h99e2c4975c3f8028 [INFO] [stderr] 16: 0x55e58ad03e08 - clippy_lints::utils::span_lint_and_then::h795763088feffed0 [INFO] [stderr] 17: 0x55e58acb6236 - >::check_expr::h5bb1e9cafccfa4fb [INFO] [stderr] 18: 0x7f8b904364c0 - as rustc::hir::intravisit::Visitor<'tcx>>::visit_expr::h8a29c722cdf7cb16 [INFO] [stderr] 19: 0x7f8b90438361 - as rustc::hir::intravisit::Visitor<'tcx>>::visit_local::hd79792d840fd268c [INFO] [stderr] 20: 0x7f8b904385ec - as rustc::hir::intravisit::Visitor<'tcx>>::visit_block::h6655506fe3948600 [INFO] [stderr] 21: 0x7f8b9043658a - as rustc::hir::intravisit::Visitor<'tcx>>::visit_expr::h8a29c722cdf7cb16 [INFO] [stderr] 22: 0x7f8b9043563f - as rustc::hir::intravisit::Visitor<'tcx>>::visit_body::h21cf9292ae8432c6 [INFO] [stderr] 23: 0x7f8b9043547c - as rustc::hir::intravisit::Visitor<'tcx>>::visit_nested_body::he8fb9a062ac4b1c8 [INFO] [stderr] 24: 0x7f8b90436cce - as rustc::hir::intravisit::Visitor<'tcx>>::visit_fn::h4aaa2b7e199bfb22 [INFO] [stderr] 25: 0x7f8b903972c6 - rustc::hir::intravisit::walk_item::hada2286ef6037169 [INFO] [stderr] 26: 0x7f8b90435b0b - as rustc::hir::intravisit::Visitor<'tcx>>::visit_item::h4954886470941d9b [INFO] [stderr] 27: 0x7f8b90437fa0 - as rustc::hir::intravisit::Visitor<'tcx>>::visit_mod::h10e5a891f2fbd5fe [INFO] [stderr] 28: 0x7f8b903970e8 - rustc::hir::intravisit::walk_item::hada2286ef6037169 [INFO] [stderr] 29: 0x7f8b90435b0b - as rustc::hir::intravisit::Visitor<'tcx>>::visit_item::h4954886470941d9b [INFO] [stderr] 30: 0x7f8b90437fa0 - as rustc::hir::intravisit::Visitor<'tcx>>::visit_mod::h10e5a891f2fbd5fe [INFO] [stderr] 31: 0x7f8b90388c3e - rustc::hir::intravisit::walk_crate::h4afac11c57fcab86 [INFO] [stderr] 32: 0x7f8b9043f29b - rustc::lint::context::check_crate::hccbef8b90ef472b3 [INFO] [stderr] 33: 0x7f8b9106af25 - rustc::util::common::time::hf306edffe5bc1331 [INFO] [stderr] 34: 0x7f8b910e4c7e - rustc::ty::context::tls::enter_context::he8336509407aafca [INFO] [stderr] 35: 0x7f8b910b3b81 - >::with::h104ad8c2b4754810 [INFO] [stderr] 47: 0x7fdb54cd87d2 - std::panicking::try::do_call::h69790245ac2d03fe [INFO] [stderr] 36: 0x7f8b910e7ea5 - rustc::ty::context::TyCtxt::create_and_enter::h74cefb108a2f7b6f [INFO] [stderr] at src/libstd/rt.rs:59 [INFO] [stderr] 37: 0x7f8b9103b915 - rustc_driver::driver::compile_input::hca3f044299fe7ad7 [INFO] [stderr] at src/libstd/panicking.rs:310 [INFO] [stderr] 38: 0x7f8b91107352 - rustc_driver::run_compiler_with_pool::hafad319513331ac6 [INFO] [stderr] 48: 0x7fdb54cf5319 - __rust_maybe_catch_panic [INFO] [stderr] 39: 0x7f8b91044415 - >::set::h8ef00e2a892c3c56 [INFO] [stderr] at src/libpanic_unwind/lib.rs:102 [INFO] [stderr] 40: 0x7f8b9110637a - rustc_driver::run_compiler::h7e74f116e6e5e483 [INFO] [stderr] 49: 0x7fdb54cd9263 - std::rt::lang_start_internal::h540c897fe52ba9c5 [INFO] [stderr] 41: 0x55e58ab6ccd7 - >::set::h8ec3c2b8cbec5474 [INFO] [stderr] 42: 0x55e58ab5b5d2 - syntax::with_globals::h5a01e3b26631ef2a [INFO] [stderr] at src/libstd/panicking.rs:289 [INFO] [stderr] 43: 0x7f8b8e4fd319 - __rust_maybe_catch_panic [INFO] [stderr] at src/libstd/panic.rs:398 [INFO] [stderr] at src/libpanic_unwind/lib.rs:102 [INFO] [stderr] at src/libstd/rt.rs:58 [INFO] [stderr] 44: 0x55e58ab5c71b - rustc_driver::run::hccd91432ebf6f6b3 [INFO] [stderr] 50: 0x5624e9eb1971 - main [INFO] [stderr] 45: 0x55e58ab6a92b - clippy_driver::main::hf97ab97bd1d252bd [INFO] [stderr] 51: 0x7fdb544bf2e0 - __libc_start_main [INFO] [stderr] 52: 0x5624e9e9ab88 - [INFO] [stderr] query stack during panic: [INFO] [stderr] 46: 0x55e58ab69122 - std::rt::lang_start::{{closure}}::h090d6ed12d543f7e [INFO] [stderr] end of query stack [INFO] [stderr] 47: 0x7f8b8e4e07d2 - std::panicking::try::do_call::h69790245ac2d03fe [INFO] [stderr] at src/libstd/rt.rs:59 [INFO] [stderr] at src/libstd/panicking.rs:310 [INFO] [stderr] 48: 0x7f8b8e4fd319 - __rust_maybe_catch_panic [INFO] [stderr] at src/libpanic_unwind/lib.rs:102 [INFO] [stderr] 49: 0x7f8b8e4e1263 - std::rt::lang_start_internal::h540c897fe52ba9c5 [INFO] [stderr] at src/libstd/panicking.rs:289 [INFO] [stderr] at src/libstd/panic.rs:398 [INFO] [stderr] at src/libstd/rt.rs:58 [INFO] [stderr] 50: 0x55e58ab6a971 - main [INFO] [stderr] 51: 0x7f8b8dcc72e0 - __libc_start_main [INFO] [stderr] 52: 0x55e58ab53b88 - [INFO] [stderr] query stack during panic: [INFO] [stderr] end of query stack [INFO] [stderr] [INFO] [stderr] error: internal compiler error: unexpected panic [INFO] [stderr] [INFO] [stderr] note: the compiler unexpectedly panicked. this is a bug. [INFO] [stderr] [INFO] [stderr] note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports [INFO] [stderr] [INFO] [stderr] note: rustc 1.32.0 (9fda7c223 2019-01-16) running on x86_64-unknown-linux-gnu [INFO] [stderr] [INFO] [stderr] note: compiler flags: -C debuginfo=2 [INFO] [stderr] [INFO] [stderr] note: some of the compiler flags provided by cargo are hidden [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] error: internal compiler error: unexpected panic [INFO] [stderr] [INFO] [stderr] note: the compiler unexpectedly panicked. this is a bug. [INFO] [stderr] [INFO] [stderr] note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports [INFO] [stderr] [INFO] [stderr] note: rustc 1.32.0 (9fda7c223 2019-01-16) running on x86_64-unknown-linux-gnu [INFO] [stderr] [INFO] [stderr] note: compiler flags: -C debuginfo=2 --crate-type bin [INFO] [stderr] [INFO] [stderr] note: some of the compiler flags provided by cargo are hidden [INFO] [stderr] [INFO] [stderr] error: Could not compile `mscheme`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: Could not compile `mscheme`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "c67c7a8577efc1bd03bfe711c81ea34574df6c4f0f4279a804db5ab8ee352b7f"` [INFO] running `"docker" "rm" "-f" "c67c7a8577efc1bd03bfe711c81ea34574df6c4f0f4279a804db5ab8ee352b7f"` [INFO] [stdout] c67c7a8577efc1bd03bfe711c81ea34574df6c4f0f4279a804db5ab8ee352b7f