[INFO] updating cached repository arbaregni/SETU [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/arbaregni/SETU [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/arbaregni/SETU" "work/ex/clippy-test-run/sources/stable/gh/arbaregni/SETU"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/arbaregni/SETU'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/arbaregni/SETU" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/arbaregni/SETU"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/arbaregni/SETU'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 8f5b4c4ddd0a3711b917a09fccc2ae01785ad8dd [INFO] sha for GitHub repo arbaregni/SETU: 8f5b4c4ddd0a3711b917a09fccc2ae01785ad8dd [INFO] validating manifest of arbaregni/SETU 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 arbaregni/SETU 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 arbaregni/SETU [INFO] finished frobbing arbaregni/SETU [INFO] frobbed toml for arbaregni/SETU written to work/ex/clippy-test-run/sources/stable/gh/arbaregni/SETU/Cargo.toml [INFO] started frobbing arbaregni/SETU [INFO] finished frobbing arbaregni/SETU [INFO] frobbed toml for arbaregni/SETU written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/arbaregni/SETU/Cargo.toml [INFO] crate arbaregni/SETU 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 arbaregni/SETU 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/arbaregni/SETU:/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] 33515f6d12f2532835a2c06a4983889f0f7c000db88ac44fa33818e40c58e450 [INFO] running `"docker" "start" "-a" "33515f6d12f2532835a2c06a4983889f0f7c000db88ac44fa33818e40c58e450"` [INFO] [stderr] Checking libc v0.2.34 [INFO] [stderr] Checking memchr v2.0.1 [INFO] [stderr] Checking aho-corasick v0.6.4 [INFO] [stderr] Checking regex v0.2.3 [INFO] [stderr] Checking SETU v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/compile_structs.rs:74:17 [INFO] [stderr] | [INFO] [stderr] 74 | return Status::expect(expected_type == token._type, self, *index); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Status::expect(expected_type == token._type, self, *index)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/compile_structs.rs:78:17 [INFO] [stderr] | [INFO] [stderr] 78 | return Status::expect(expected_val == token._val, self, *index); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Status::expect(expected_val == token._val, self, *index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/compile_structs.rs:94:17 [INFO] [stderr] | [INFO] [stderr] 94 | return Status::AllGood; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Status::AllGood` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/compile_structs.rs:110:17 [INFO] [stderr] | [INFO] [stderr] 110 | return Status::InvalidMatch(self, *index); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Status::InvalidMatch(self, *index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/compile_structs.rs:181:9 [INFO] [stderr] | [INFO] [stderr] 181 | return Status::AllGood; // successfully read all that we could [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Status::AllGood` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/compile_structs.rs:220:9 [INFO] [stderr] | [INFO] [stderr] 220 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/compile.rs:95:5 [INFO] [stderr] | [INFO] [stderr] 95 | return Ok(elements); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(elements)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/compile_structs.rs:74:17 [INFO] [stderr] | [INFO] [stderr] 74 | return Status::expect(expected_type == token._type, self, *index); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Status::expect(expected_type == token._type, self, *index)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/compile_structs.rs:78:17 [INFO] [stderr] | [INFO] [stderr] 78 | return Status::expect(expected_val == token._val, self, *index); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Status::expect(expected_val == token._val, self, *index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/compile_structs.rs:94:17 [INFO] [stderr] | [INFO] [stderr] 94 | return Status::AllGood; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Status::AllGood` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/compile_structs.rs:110:17 [INFO] [stderr] | [INFO] [stderr] 110 | return Status::InvalidMatch(self, *index); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Status::InvalidMatch(self, *index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/compile_structs.rs:181:9 [INFO] [stderr] | [INFO] [stderr] 181 | return Status::AllGood; // successfully read all that we could [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Status::AllGood` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/compile_structs.rs:220:9 [INFO] [stderr] | [INFO] [stderr] 220 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/compile.rs:95:5 [INFO] [stderr] | [INFO] [stderr] 95 | return Ok(elements); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(elements)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/compile_structs.rs:208:47 [INFO] [stderr] | [INFO] [stderr] 208 | fn add_captures(&self, index: &mut usize, mut captured_indices: &mut Vec, tokens: &Vec) -> Result<(), Status> { [INFO] [stderr] | ----^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/compile_structs.rs:208:47 [INFO] [stderr] | [INFO] [stderr] 208 | fn add_captures(&self, index: &mut usize, mut captured_indices: &mut Vec, tokens: &Vec) -> Result<(), Status> { [INFO] [stderr] | ----^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: crate `SETU` should have a snake case name such as `setu` [INFO] [stderr] warning: variant is never constructed: `Ignorable` [INFO] [stderr] | [INFO] [stderr] --> src/compile_structs.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | Ignorable, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Control` [INFO] [stderr] --> src/compile_structs.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | Control, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Constraint` [INFO] [stderr] --> src/compile_structs.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | Constraint, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Identifier` [INFO] [stderr] --> src/compile_structs.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | Identifier, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Symbol` [INFO] [stderr] --> src/compile_structs.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | Symbol, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `PairSymbol` [INFO] [stderr] --> src/compile_structs.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | PairSymbol, //some day could keep track of its level ? [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `iterator` [INFO] [stderr] --> src/compile_structs.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn iterator() -> Iter<'static, TokenType> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static item is never used: `TOKENS` [INFO] [stderr] --> src/compile_structs.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | static TOKENS: [TokenType; 6] = [TokenType::Ignorable, TokenType::Control, TokenType::Constraint, TokenType::Identifier, TokenType::Symbol, TokenType::PairSymbol]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_pattern` [INFO] [stderr] --> src/compile_structs.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | pub fn get_pattern(&self) -> &str { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Type` [INFO] [stderr] --> src/compile_structs.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | Type(TokenType), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Val` [INFO] [stderr] --> src/compile_structs.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | Val(&'a str), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Group` [INFO] [stderr] --> src/compile_structs.rs:58:5 [INFO] [stderr] | [INFO] [stderr] 58 | Group(Box>>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Alternation` [INFO] [stderr] --> src/compile_structs.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | Alternation(Box>>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `check_cond` [INFO] [stderr] --> src/compile_structs.rs:64:5 [INFO] [stderr] | [INFO] [stderr] 64 | fn check_cond(&self, mut index: &mut usize, mut captured_indices: &mut Vec, tokens: &Vec) -> Status { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_val_check` [INFO] [stderr] --> src/compile_structs.rs:132:5 [INFO] [stderr] | [INFO] [stderr] 132 | pub fn new_val_check(val: &str) -> ParseCheck { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_ident_check` [INFO] [stderr] --> src/compile_structs.rs:135:5 [INFO] [stderr] | [INFO] [stderr] 135 | pub fn new_ident_check() -> ParseCheck<'static> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_group` [INFO] [stderr] --> src/compile_structs.rs:138:5 [INFO] [stderr] | [INFO] [stderr] 138 | pub fn new_group(v: Vec>) -> ParseCheck<'static> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_alternation` [INFO] [stderr] --> src/compile_structs.rs:141:5 [INFO] [stderr] | [INFO] [stderr] 141 | pub fn new_alternation(v: Vec>) -> ParseCheck<'static> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `check_against` [INFO] [stderr] --> src/compile_structs.rs:145:5 [INFO] [stderr] | [INFO] [stderr] 145 | fn check_against(&self, index: &mut usize, mut captured_indices: &mut Vec, tokens: &Vec) -> Status { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `Status` [INFO] [stderr] --> src/compile_structs.rs:186:1 [INFO] [stderr] | [INFO] [stderr] 186 | pub enum Status<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `expect` [INFO] [stderr] --> src/compile_structs.rs:192:5 [INFO] [stderr] | [INFO] [stderr] 192 | fn expect<'b>(predicate: bool, condition: &'b Condition<'b>, index: usize) -> Status<'b> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add_captures` [INFO] [stderr] --> src/compile_structs.rs:208:5 [INFO] [stderr] | [INFO] [stderr] 208 | fn add_captures(&self, index: &mut usize, mut captured_indices: &mut Vec, tokens: &Vec) -> Result<(), Status> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `captures` [INFO] [stderr] --> src/compile_structs.rs:223:5 [INFO] [stderr] | [INFO] [stderr] 223 | pub fn captures<'b>(&self, start_at: usize, tokens: &Vec>) -> Result<(Vec>, usize), Status> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `tokenize` [INFO] [stderr] --> src/compile.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn tokenize(source: &str) -> Result, String> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse` [INFO] [stderr] --> src/compile.rs:56:1 [INFO] [stderr] | [INFO] [stderr] 56 | pub fn parse<'a, 'b>(tokens: &'a Vec>) -> Result>, String> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `compile` [INFO] [stderr] --> src/compile.rs:98:1 [INFO] [stderr] | [INFO] [stderr] 98 | pub fn compile(source: &str) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static item is never used: `VERBOSE` [INFO] [stderr] --> src/compile_values.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub static VERBOSE: bool = false; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static item is never used: `IGNORABLE` [INFO] [stderr] --> src/compile_values.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | pub static IGNORABLE: &str = r"^(\s+)"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static item is never used: `CONTROL` [INFO] [stderr] --> src/compile_values.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | pub static CONTROL: &str = r"^(MATCH|LET|SET|FUNC)"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static item is never used: `CONSTRAINT` [INFO] [stderr] --> src/compile_values.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | pub static CONSTRAINT: &str = r"^(WHERE)"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static item is never used: `IDENTIFIER` [INFO] [stderr] --> src/compile_values.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | pub static IDENTIFIER: &str = r"^([0-9a-zA-Z_]+)"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static item is never used: `SYMBOL` [INFO] [stderr] --> src/compile_values.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | pub static SYMBOL: &str = r"^(\.\.\.|=>|->|[:;,=\.])"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static item is never used: `PAIR_SYMBOL` [INFO] [stderr] --> src/compile_values.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | pub static PAIR_SYMBOL: &str = r"^([\{\}\[\]\(\)])"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `expr` [INFO] [stderr] --> src/compile_values.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | fn expr() -> ParseCheck<'static> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `where_clause` [INFO] [stderr] --> src/compile_values.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | fn where_clause() -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `argument` [INFO] [stderr] --> src/compile_values.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | fn argument(where_clause_required: bool) -> Condition<'static> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `list_from` [INFO] [stderr] --> src/compile_values.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | fn list_from(cond: Condition<'static>) -> ParseCheck<'static> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `get_extensional_set_definition` [INFO] [stderr] --> src/compile_values.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn get_extensional_set_definition() -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `get_inf_set_definition` [INFO] [stderr] --> src/compile_values.rs:58:5 [INFO] [stderr] | [INFO] [stderr] 58 | pub fn get_inf_set_definition() -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `get_intensional_set_definition` [INFO] [stderr] --> src/compile_values.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | pub fn get_intensional_set_definition() -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `get_function_definition` [INFO] [stderr] --> src/compile_values.rs:77:5 [INFO] [stderr] | [INFO] [stderr] 77 | pub fn get_function_definition() -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `get_data` [INFO] [stderr] --> src/compile_values.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | pub fn get_data() -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `get_let_statement` [INFO] [stderr] --> src/compile_values.rs:104:5 [INFO] [stderr] | [INFO] [stderr] 104 | pub fn get_let_statement() -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `ExtensionalSetDefinition` [INFO] [stderr] --> src/lang_structs.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | ExtensionalSetDefinition, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `InfiniteSetDefinition` [INFO] [stderr] --> src/lang_structs.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | InfiniteSetDefinition, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `IntensionalSetDefinition` [INFO] [stderr] --> src/lang_structs.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | IntensionalSetDefinition, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `FunctionalDefinition` [INFO] [stderr] --> src/lang_structs.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | FunctionalDefinition, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `LetStatement` [INFO] [stderr] --> src/lang_structs.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | LetStatement, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `iterator` [INFO] [stderr] --> src/lang_structs.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn iterator() -> Iter<'static, ElementType> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static item is never used: `TYPES` [INFO] [stderr] --> src/lang_structs.rs:14:9 [INFO] [stderr] | [INFO] [stderr] 14 | / static TYPES: [ElementType; 5] = [ [INFO] [stderr] 15 | | ElementType::ExtensionalSetDefinition, [INFO] [stderr] 16 | | ElementType::InfiniteSetDefinition, [INFO] [stderr] 17 | | ElementType::IntensionalSetDefinition, [INFO] [stderr] 18 | | ElementType::FunctionalDefinition, [INFO] [stderr] 19 | | ElementType::LetStatement, [INFO] [stderr] 20 | | ]; [INFO] [stderr] | |__________^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_pattern` [INFO] [stderr] --> src/lang_structs.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn get_pattern(&self) -> compile_structs::ParsePattern { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `CodeElement` [INFO] [stderr] --> src/lang_structs.rs:36:1 [INFO] [stderr] | [INFO] [stderr] 36 | pub struct CodeElement<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/lang_structs.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | pub fn new<'b, 'c>(name_ref: &'b ElementType, data_real: Vec>) -> CodeElement<'c> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: crate `SETU` should have a snake case name such as `setu` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/compile_structs.rs:25:16 [INFO] [stderr] | [INFO] [stderr] 25 | TOKENS.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: requested on the command line with `-D clippy::into-iter-on-array` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/compile_structs.rs:25:16 [INFO] [stderr] | [INFO] [stderr] 25 | TOKENS.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: requested on the command line with `-D clippy::into-iter-on-array` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `Box>`. Consider using just `Vec` [INFO] [stderr] --> src/compile_structs.rs:58:11 [INFO] [stderr] | [INFO] [stderr] 58 | Group(Box>>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::box_vec)] on by default [INFO] [stderr] = help: `Vec` is already on the heap, `Box>` makes an extra allocation. [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_vec [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `Box>`. Consider using just `Vec` [INFO] [stderr] --> src/compile_structs.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | Alternation(Box>>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: `Vec` is already on the heap, `Box>` makes an extra allocation. [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_vec [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/compile_structs.rs:64:96 [INFO] [stderr] | [INFO] [stderr] 64 | fn check_cond(&self, mut index: &mut usize, mut captured_indices: &mut Vec, tokens: &Vec) -> Status { [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 seem to be trying to use `Box>`. Consider using just `Vec` [INFO] [stderr] --> src/compile_structs.rs:58:11 [INFO] [stderr] | [INFO] [stderr] 58 | Group(Box>>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::box_vec)] on by default [INFO] [stderr] = help: `Vec` is already on the heap, `Box>` makes an extra allocation. [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_vec [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `Box>`. Consider using just `Vec` [INFO] [stderr] --> src/compile_structs.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | Alternation(Box>>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: `Vec` is already on the heap, `Box>` makes an extra allocation. [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_vec [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/compile_structs.rs:64:96 [INFO] [stderr] | [INFO] [stderr] 64 | fn check_cond(&self, mut index: &mut usize, mut captured_indices: &mut Vec, tokens: &Vec) -> Status { [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/compile_structs.rs:145:95 [INFO] [stderr] | [INFO] [stderr] 145 | fn check_against(&self, index: &mut usize, mut captured_indices: &mut Vec, tokens: &Vec) -> Status { [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/compile_structs.rs:145:95 [INFO] [stderr] | [INFO] [stderr] 145 | fn check_against(&self, index: &mut usize, mut captured_indices: &mut Vec, tokens: &Vec) -> Status { [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: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/compile_structs.rs:193:9 [INFO] [stderr] | [INFO] [stderr] 193 | / match predicate { [INFO] [stderr] 194 | | true => Status::AllGood, [INFO] [stderr] 195 | | false => Status::InvalidMatch(condition, index), [INFO] [stderr] 196 | | } [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if predicate { Status::AllGood } else { Status::InvalidMatch(condition, index) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_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/compile_structs.rs:208:94 [INFO] [stderr] | [INFO] [stderr] 208 | fn add_captures(&self, index: &mut usize, mut captured_indices: &mut Vec, tokens: &Vec) -> Result<(), Status> { [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: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/compile_structs.rs:193:9 [INFO] [stderr] | [INFO] [stderr] 193 | / match predicate { [INFO] [stderr] 194 | | true => Status::AllGood, [INFO] [stderr] 195 | | false => Status::InvalidMatch(condition, index), [INFO] [stderr] 196 | | } [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if predicate { Status::AllGood } else { Status::InvalidMatch(condition, index) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_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/compile_structs.rs:208:94 [INFO] [stderr] | [INFO] [stderr] 208 | fn add_captures(&self, index: &mut usize, mut captured_indices: &mut Vec, tokens: &Vec) -> Result<(), Status> { [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/compile_structs.rs:223:57 [INFO] [stderr] | [INFO] [stderr] 223 | pub fn captures<'b>(&self, start_at: usize, tokens: &Vec>) -> Result<(Vec>, usize), Status> { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[Token<'b>]` [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 Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/compile.rs:23:25 [INFO] [stderr] | [INFO] [stderr] 23 | let regex = regexes.get(*tok_type as usize).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `regexes[*tok_type as usize]` [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: single-character string constant used as pattern [INFO] [stderr] --> src/compile.rs:38:54 [INFO] [stderr] | [INFO] [stderr] 38 | let line_start = match source[..i].rfind("\n") { [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/compile.rs:42:51 [INFO] [stderr] | [INFO] [stderr] 42 | let line_end = match source[i..].find("\n") { [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [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/compile.rs:56:30 [INFO] [stderr] | [INFO] [stderr] 56 | pub fn parse<'a, 'b>(tokens: &'a Vec>) -> Result>, String> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Token<'b>]` [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/compile_structs.rs:223:57 [INFO] [stderr] | [INFO] [stderr] 223 | pub fn captures<'b>(&self, start_at: usize, tokens: &Vec>) -> Result<(Vec>, usize), Status> { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[Token<'b>]` [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] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/compile.rs:82:43 [INFO] [stderr] | [INFO] [stderr] 82 | err_msg = format!("Reached end of file while parsing."); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Reached end of file while parsing.".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] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/compile.rs:23:25 [INFO] [stderr] | [INFO] [stderr] 23 | let regex = regexes.get(*tok_type as usize).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `regexes[*tok_type as usize]` [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: single-character string constant used as pattern [INFO] [stderr] --> src/compile.rs:38:54 [INFO] [stderr] | [INFO] [stderr] 38 | let line_start = match source[..i].rfind("\n") { [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/compile.rs:42:51 [INFO] [stderr] | [INFO] [stderr] 42 | let line_end = match source[i..].find("\n") { [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/compile_values.rs:25:24 [INFO] [stderr] | [INFO] [stderr] 25 | let how_many = match where_clause_required { [INFO] [stderr] | ________________________^ [INFO] [stderr] 26 | | true => 1, [INFO] [stderr] 27 | | false => 0, [INFO] [stderr] 28 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if where_clause_required { 1 } else { 0 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/lang_structs.rs:21:15 [INFO] [stderr] | [INFO] [stderr] 21 | TYPES.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `Box>`. Consider using just `Vec` [INFO] [stderr] --> src/lang_structs.rs:38:11 [INFO] [stderr] | [INFO] [stderr] 38 | data: Box>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: `Vec` is already on the heap, `Box>` makes an extra allocation. [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_vec [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/compile.rs:56:30 [INFO] [stderr] | [INFO] [stderr] 56 | pub fn parse<'a, 'b>(tokens: &'a Vec>) -> Result>, String> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Token<'b>]` [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] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/lib.rs:20:27 [INFO] [stderr] | [INFO] [stderr] 20 | for code in codes.into_iter() { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/compile.rs:82:43 [INFO] [stderr] | [INFO] [stderr] 82 | err_msg = format!("Reached end of file while parsing."); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Reached end of file while parsing.".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] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/compile_values.rs:25:24 [INFO] [stderr] | [INFO] [stderr] 25 | let how_many = match where_clause_required { [INFO] [stderr] | ________________________^ [INFO] [stderr] 26 | | true => 1, [INFO] [stderr] 27 | | false => 0, [INFO] [stderr] 28 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if where_clause_required { 1 } else { 0 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: Could not compile `SETU`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/lang_structs.rs:21:15 [INFO] [stderr] | [INFO] [stderr] 21 | TYPES.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `Box>`. Consider using just `Vec` [INFO] [stderr] --> src/lang_structs.rs:38:11 [INFO] [stderr] | [INFO] [stderr] 38 | data: Box>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: `Vec` is already on the heap, `Box>` makes an extra allocation. [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_vec [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `SETU`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "33515f6d12f2532835a2c06a4983889f0f7c000db88ac44fa33818e40c58e450"` [INFO] running `"docker" "rm" "-f" "33515f6d12f2532835a2c06a4983889f0f7c000db88ac44fa33818e40c58e450"` [INFO] [stdout] 33515f6d12f2532835a2c06a4983889f0f7c000db88ac44fa33818e40c58e450