[INFO] updating cached repository veekxt/xt_lang [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/veekxt/xt_lang [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/veekxt/xt_lang" "work/ex/clippy-test-run/sources/stable/gh/veekxt/xt_lang"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/veekxt/xt_lang'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/veekxt/xt_lang" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/veekxt/xt_lang"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/veekxt/xt_lang'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 0dcfb70820a5a3c2e4c31d95c89184ae0af1395d [INFO] sha for GitHub repo veekxt/xt_lang: 0dcfb70820a5a3c2e4c31d95c89184ae0af1395d [INFO] validating manifest of veekxt/xt_lang on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of veekxt/xt_lang on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing veekxt/xt_lang [INFO] finished frobbing veekxt/xt_lang [INFO] frobbed toml for veekxt/xt_lang written to work/ex/clippy-test-run/sources/stable/gh/veekxt/xt_lang/Cargo.toml [INFO] started frobbing veekxt/xt_lang [INFO] finished frobbing veekxt/xt_lang [INFO] frobbed toml for veekxt/xt_lang written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/veekxt/xt_lang/Cargo.toml [INFO] crate veekxt/xt_lang has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting veekxt/xt_lang 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-4/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/veekxt/xt_lang:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -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] 777e98646d0e5468f7c4d58fc5f862f671380f901df789a23f3c15c3388302bf [INFO] running `"docker" "start" "-a" "777e98646d0e5468f7c4d58fc5f862f671380f901df789a23f3c15c3388302bf"` [INFO] [stderr] Checking xt_lang v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/lexer.rs:89:26 [INFO] [stderr] | [INFO] [stderr] 89 | Token::LF => write!(f, "\\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/parser.rs:270:25 [INFO] [stderr] | [INFO] [stderr] 270 | print!("\n"); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::print_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/parser.rs:274:25 [INFO] [stderr] | [INFO] [stderr] 274 | print!("\n"); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/parser.rs:276:25 [INFO] [stderr] | [INFO] [stderr] 276 | print!("\n"); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/lexer.rs:89:26 [INFO] [stderr] | [INFO] [stderr] 89 | Token::LF => write!(f, "\\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/parser.rs:270:25 [INFO] [stderr] | [INFO] [stderr] 270 | print!("\n"); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::print_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/parser.rs:274:25 [INFO] [stderr] | [INFO] [stderr] 274 | print!("\n"); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/parser.rs:276:25 [INFO] [stderr] | [INFO] [stderr] 276 | print!("\n"); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/parser.rs:294:1 [INFO] [stderr] | [INFO] [stderr] 294 | / macro_rules! err_return2 { [INFO] [stderr] 295 | | ($fn_exp:expr) => ( [INFO] [stderr] 296 | | match $fn_exp { [INFO] [stderr] 297 | | AST::ERR(s,line) => { return AST::ERR(s,line); }, [INFO] [stderr] ... | [INFO] [stderr] 300 | | ) [INFO] [stderr] 301 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:574:21 [INFO] [stderr] | [INFO] [stderr] 574 | return AST::ERR("stmt-block has some error".to_string(), 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `AST::ERR("stmt-block has some error".to_string(), 0)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashSet` [INFO] [stderr] --> src/xt_type.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::collections::HashSet; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/parser.rs:294:1 [INFO] [stderr] | [INFO] [stderr] 294 | / macro_rules! err_return2 { [INFO] [stderr] 295 | | ($fn_exp:expr) => ( [INFO] [stderr] 296 | | match $fn_exp { [INFO] [stderr] 297 | | AST::ERR(s,line) => { return AST::ERR(s,line); }, [INFO] [stderr] ... | [INFO] [stderr] 300 | | ) [INFO] [stderr] 301 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:574:21 [INFO] [stderr] | [INFO] [stderr] 574 | return AST::ERR("stmt-block has some error".to_string(), 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `AST::ERR("stmt-block has some error".to_string(), 0)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashSet` [INFO] [stderr] --> src/xt_type.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::collections::HashSet; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/parser.rs:573:21 [INFO] [stderr] | [INFO] [stderr] 573 | Err(err) => { [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/xt_type.rs:27:16 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn new_int(i: i64) -> Box { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/xt_type.rs:37:17 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn new_bool(i: bool) -> Box { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/main.rs:31:21 [INFO] [stderr] | [INFO] [stderr] 31 | Err(err) => {} [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/parser.rs:573:21 [INFO] [stderr] | [INFO] [stderr] 573 | Err(err) => { [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/xt_type.rs:27:16 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn new_int(i: i64) -> Box { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/xt_type.rs:37:17 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn new_bool(i: bool) -> Box { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/main.rs:31:21 [INFO] [stderr] | [INFO] [stderr] 31 | Err(err) => {} [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/xt_type.rs:28:9 [INFO] [stderr] | [INFO] [stderr] 28 | let mut val = XtValue { [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/xt_type.rs:38:9 [INFO] [stderr] | [INFO] [stderr] 38 | let mut val = XtValue { [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: field is never used: `in_if` [INFO] [stderr] --> src/parser.rs:483:5 [INFO] [stderr] | [INFO] [stderr] 483 | in_if: isize, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `err` [INFO] [stderr] --> src/parser.rs:487:5 [INFO] [stderr] | [INFO] [stderr] 487 | err: bool, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `RETURN` [INFO] [stderr] --> src/run.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | RETURN(XtValue), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `BREAK` [INFO] [stderr] --> src/run.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | BREAK, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `CONTINUE` [INFO] [stderr] --> src/run.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | CONTINUE, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `name` [INFO] [stderr] --> src/xt_type.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | name: String, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `SysFunction` [INFO] [stderr] --> src/xt_type.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | SysFunction(fn(&XtValue) -> ()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `DefFunction` [INFO] [stderr] --> src/xt_type.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | DefFunction(Box), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `new_bool` [INFO] [stderr] --> src/xt_type.rs:37:1 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn new_bool(i: bool) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lexer.rs:189:9 [INFO] [stderr] | [INFO] [stderr] 189 | / loop { [INFO] [stderr] 190 | | if let Some(now) = self.now_char() { [INFO] [stderr] 191 | | if now == '\r' [INFO] [stderr] 192 | | || now == ' ' [INFO] [stderr] ... | [INFO] [stderr] 211 | | } [INFO] [stderr] 212 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(now) = self.now_char() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 33 [INFO] [stderr] --> src/lexer.rs:215:5 [INFO] [stderr] | [INFO] [stderr] 215 | / fn next(&mut self) -> (Option, usize) { [INFO] [stderr] 216 | | let rs: Option; [INFO] [stderr] 217 | | self.goto_useful(); [INFO] [stderr] 218 | | let mut tmp_str = String::new(); [INFO] [stderr] ... | [INFO] [stderr] 394 | | (rs, self.line) [INFO] [stderr] 395 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lexer.rs:225:21 [INFO] [stderr] | [INFO] [stderr] 225 | / loop { [INFO] [stderr] 226 | | match self.now_char() { [INFO] [stderr] 227 | | Some(c2) => { [INFO] [stderr] 228 | | if is_iden(c2) { [INFO] [stderr] ... | [INFO] [stderr] 234 | | } [INFO] [stderr] 235 | | } [INFO] [stderr] | |_____________________^ help: try: `while let Some(c2) = self.now_char() { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lexer.rs:249:21 [INFO] [stderr] | [INFO] [stderr] 249 | / loop { [INFO] [stderr] 250 | | match self.now_char() { [INFO] [stderr] 251 | | Some(c2) => { [INFO] [stderr] 252 | | if is_num(c2) { [INFO] [stderr] ... | [INFO] [stderr] 272 | | } [INFO] [stderr] 273 | | } [INFO] [stderr] | |_____________________^ help: try: `while let Some(c2) = self.now_char() { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/lexer.rs:255:56 [INFO] [stderr] | [INFO] [stderr] 255 | } else if c2 == '.' && is_float == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!is_float` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/lexer.rs:274:29 [INFO] [stderr] | [INFO] [stderr] 274 | rs = if is_float == true { Some(Token::FLOAT(f64::from_str(tmp_str.as_ref()).unwrap())) } else { Some(Token::INT(isize::from_str(tmp_str.as_ref()).unwrap())) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `is_float` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/xt_type.rs:28:9 [INFO] [stderr] | [INFO] [stderr] 28 | let mut val = XtValue { [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/xt_type.rs:38:9 [INFO] [stderr] | [INFO] [stderr] 38 | let mut val = XtValue { [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: field is never used: `in_if` [INFO] [stderr] --> src/parser.rs:483:5 [INFO] [stderr] | [INFO] [stderr] 483 | in_if: isize, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `err` [INFO] [stderr] --> src/parser.rs:487:5 [INFO] [stderr] | [INFO] [stderr] 487 | err: bool, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `RETURN` [INFO] [stderr] --> src/run.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | RETURN(XtValue), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `BREAK` [INFO] [stderr] --> src/run.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | BREAK, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `CONTINUE` [INFO] [stderr] --> src/run.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | CONTINUE, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `name` [INFO] [stderr] --> src/xt_type.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | name: String, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `SysFunction` [INFO] [stderr] --> src/xt_type.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | SysFunction(fn(&XtValue) -> ()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `DefFunction` [INFO] [stderr] --> src/xt_type.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | DefFunction(Box), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `new_bool` [INFO] [stderr] --> src/xt_type.rs:37:1 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn new_bool(i: bool) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lexer.rs:444:17 [INFO] [stderr] | [INFO] [stderr] 444 | / match to { [INFO] [stderr] 445 | | Token::ERR(ref s) => { [INFO] [stderr] 446 | | err = true; [INFO] [stderr] 447 | | println!("line {}:lexer error:{}", line, s); [INFO] [stderr] 448 | | } [INFO] [stderr] 449 | | _ => {} [INFO] [stderr] 450 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 444 | if let Token::ERR(ref s) = to { [INFO] [stderr] 445 | err = true; [INFO] [stderr] 446 | println!("line {}:lexer error:{}", line, s); [INFO] [stderr] 447 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lexer.rs:189:9 [INFO] [stderr] | [INFO] [stderr] 189 | / loop { [INFO] [stderr] 190 | | if let Some(now) = self.now_char() { [INFO] [stderr] 191 | | if now == '\r' [INFO] [stderr] 192 | | || now == ' ' [INFO] [stderr] ... | [INFO] [stderr] 211 | | } [INFO] [stderr] 212 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(now) = self.now_char() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 33 [INFO] [stderr] --> src/lexer.rs:215:5 [INFO] [stderr] | [INFO] [stderr] 215 | / fn next(&mut self) -> (Option, usize) { [INFO] [stderr] 216 | | let rs: Option; [INFO] [stderr] 217 | | self.goto_useful(); [INFO] [stderr] 218 | | let mut tmp_str = String::new(); [INFO] [stderr] ... | [INFO] [stderr] 394 | | (rs, self.line) [INFO] [stderr] 395 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lexer.rs:225:21 [INFO] [stderr] | [INFO] [stderr] 225 | / loop { [INFO] [stderr] 226 | | match self.now_char() { [INFO] [stderr] 227 | | Some(c2) => { [INFO] [stderr] 228 | | if is_iden(c2) { [INFO] [stderr] ... | [INFO] [stderr] 234 | | } [INFO] [stderr] 235 | | } [INFO] [stderr] | |_____________________^ help: try: `while let Some(c2) = self.now_char() { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lexer.rs:249:21 [INFO] [stderr] | [INFO] [stderr] 249 | / loop { [INFO] [stderr] 250 | | match self.now_char() { [INFO] [stderr] 251 | | Some(c2) => { [INFO] [stderr] 252 | | if is_num(c2) { [INFO] [stderr] ... | [INFO] [stderr] 272 | | } [INFO] [stderr] 273 | | } [INFO] [stderr] | |_____________________^ help: try: `while let Some(c2) = self.now_char() { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/lexer.rs:255:56 [INFO] [stderr] | [INFO] [stderr] 255 | } else if c2 == '.' && is_float == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!is_float` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/lexer.rs:274:29 [INFO] [stderr] | [INFO] [stderr] 274 | rs = if is_float == true { Some(Token::FLOAT(f64::from_str(tmp_str.as_ref()).unwrap())) } else { Some(Token::INT(isize::from_str(tmp_str.as_ref()).unwrap())) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `is_float` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lexer.rs:444:17 [INFO] [stderr] | [INFO] [stderr] 444 | / match to { [INFO] [stderr] 445 | | Token::ERR(ref s) => { [INFO] [stderr] 446 | | err = true; [INFO] [stderr] 447 | | println!("line {}:lexer error:{}", line, s); [INFO] [stderr] 448 | | } [INFO] [stderr] 449 | | _ => {} [INFO] [stderr] 450 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 444 | if let Token::ERR(ref s) = to { [INFO] [stderr] 445 | err = true; [INFO] [stderr] 446 | println!("line {}:lexer error:{}", line, s); [INFO] [stderr] 447 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 508 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 510 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parser.rs:519:5 [INFO] [stderr] | [INFO] [stderr] 519 | / match tokens.get(0, 0) { [INFO] [stderr] 520 | | Token::IDEN(_) => { [INFO] [stderr] 521 | | attrs.push(err_return!(a_iden(tokens))); [INFO] [stderr] 522 | | loop { [INFO] [stderr] ... | [INFO] [stderr] 539 | | _ => {} [INFO] [stderr] 540 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 519 | if let Token::IDEN(_) = tokens.get(0, 0) { [INFO] [stderr] 520 | attrs.push(err_return!(a_iden(tokens))); [INFO] [stderr] 521 | loop { [INFO] [stderr] 522 | option!(tokens,Token::LF); [INFO] [stderr] 523 | match tokens.get(0, 0) { [INFO] [stderr] 524 | Token::COMMA => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 523 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 527 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parser.rs:546:5 [INFO] [stderr] | [INFO] [stderr] 546 | / match tokens.get(0, 0) { [INFO] [stderr] 547 | | Token::DEF => { [INFO] [stderr] 548 | | funs.push(err_return!(fn_def(tokens,&mut Status::new(false,0,0,0,0)))); [INFO] [stderr] 549 | | loop { [INFO] [stderr] ... | [INFO] [stderr] 559 | | _ => {} [INFO] [stderr] 560 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 546 | if let Token::DEF = tokens.get(0, 0) { [INFO] [stderr] 547 | funs.push(err_return!(fn_def(tokens,&mut Status::new(false,0,0,0,0)))); [INFO] [stderr] 548 | loop { [INFO] [stderr] 549 | option!(tokens,Token::LF); [INFO] [stderr] 550 | match tokens.get(0, 0) { [INFO] [stderr] 551 | Token::DEF => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 550 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 565 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 570 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 578 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 671 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 705 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 709 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 713 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 748 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:796:13 [INFO] [stderr] | [INFO] [stderr] 796 | / loop { [INFO] [stderr] 797 | | match tokens.get(0, 0) { [INFO] [stderr] 798 | | Token::COMMA => { [INFO] [stderr] 799 | | tokens.i += 1; [INFO] [stderr] ... | [INFO] [stderr] 811 | | } [INFO] [stderr] 812 | | } [INFO] [stderr] | |_____________^ help: try: `while let Token::COMMA = tokens.get(0, 0) { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:852:13 [INFO] [stderr] | [INFO] [stderr] 852 | / loop { [INFO] [stderr] 853 | | match tokens.get(0, 0) { [INFO] [stderr] 854 | | Token::COMMA => { [INFO] [stderr] 855 | | tokens.i += 1; [INFO] [stderr] ... | [INFO] [stderr] 867 | | } [INFO] [stderr] 868 | | } [INFO] [stderr] | |_____________^ help: try: `while let Token::COMMA = tokens.get(0, 0) { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 508 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 510 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parser.rs:519:5 [INFO] [stderr] | [INFO] [stderr] 519 | / match tokens.get(0, 0) { [INFO] [stderr] 520 | | Token::IDEN(_) => { [INFO] [stderr] 521 | | attrs.push(err_return!(a_iden(tokens))); [INFO] [stderr] 522 | | loop { [INFO] [stderr] ... | [INFO] [stderr] 539 | | _ => {} [INFO] [stderr] 540 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 519 | if let Token::IDEN(_) = tokens.get(0, 0) { [INFO] [stderr] 520 | attrs.push(err_return!(a_iden(tokens))); [INFO] [stderr] 521 | loop { [INFO] [stderr] 522 | option!(tokens,Token::LF); [INFO] [stderr] 523 | match tokens.get(0, 0) { [INFO] [stderr] 524 | Token::COMMA => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 523 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 527 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parser.rs:546:5 [INFO] [stderr] | [INFO] [stderr] 546 | / match tokens.get(0, 0) { [INFO] [stderr] 547 | | Token::DEF => { [INFO] [stderr] 548 | | funs.push(err_return!(fn_def(tokens,&mut Status::new(false,0,0,0,0)))); [INFO] [stderr] 549 | | loop { [INFO] [stderr] ... | [INFO] [stderr] 559 | | _ => {} [INFO] [stderr] 560 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 546 | if let Token::DEF = tokens.get(0, 0) { [INFO] [stderr] 547 | funs.push(err_return!(fn_def(tokens,&mut Status::new(false,0,0,0,0)))); [INFO] [stderr] 548 | loop { [INFO] [stderr] 549 | option!(tokens,Token::LF); [INFO] [stderr] 550 | match tokens.get(0, 0) { [INFO] [stderr] 551 | Token::DEF => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 550 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/run.rs:12:17 [INFO] [stderr] | [INFO] [stderr] 12 | fn run_exp(ast: &Box) -> Box { [INFO] [stderr] | ^^^^^^^^^ help: try: `&AST` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::borrowed_box)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/run.rs:66:41 [INFO] [stderr] | [INFO] [stderr] 66 | fn run_var(context: &mut Context, iden: &Box, exp: &Box) -> Result { [INFO] [stderr] | ^^^^^^^^^ help: try: `&AST` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/run.rs:66:57 [INFO] [stderr] | [INFO] [stderr] 66 | fn run_var(context: &mut Context, iden: &Box, exp: &Box) -> Result { [INFO] [stderr] | ^^^^^^^^^ help: try: `&AST` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [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/run.rs:88:46 [INFO] [stderr] | [INFO] [stderr] 88 | fn run_stmt(context: &mut Context, ast_list: &Vec) -> Result { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[AST]` [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/run.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | / match ast { [INFO] [stderr] 91 | | &AST::VAR { ref iden, ref exp } => { [INFO] [stderr] 92 | | run_var(context, iden, exp); [INFO] [stderr] 93 | | } [INFO] [stderr] ... | [INFO] [stderr] 97 | | _ => {} [INFO] [stderr] 98 | | } [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] 90 | match *ast { [INFO] [stderr] 91 | AST::VAR { ref iden, ref exp } => { [INFO] [stderr] 92 | run_var(context, iden, exp); [INFO] [stderr] 93 | } [INFO] [stderr] 94 | AST::STMT(ref stmt) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/run.rs:92:17 [INFO] [stderr] | [INFO] [stderr] 92 | run_var(context, iden, exp); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/run.rs:95:17 [INFO] [stderr] | [INFO] [stderr] 95 | run_stmt(context,stmt); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/run.rs:111:9 [INFO] [stderr] | [INFO] [stderr] 111 | run_stmt(&mut context, &ast_vec); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 565 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 570 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 578 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 671 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:29:21 [INFO] [stderr] | [INFO] [stderr] 29 | run(ast); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 705 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 709 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 713 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | / loop { [INFO] [stderr] 315 | | match $tokens.get(0,0) { [INFO] [stderr] 316 | | $token => { $tokens.i+=1; }, [INFO] [stderr] 317 | | _ =>{break;}, [INFO] [stderr] 318 | | } [INFO] [stderr] 319 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::LF = $tokens.get(0,0) { .. }` [INFO] [stderr] ... [INFO] [stderr] 748 | option!(tokens,Token::LF); [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:796:13 [INFO] [stderr] | [INFO] [stderr] 796 | / loop { [INFO] [stderr] 797 | | match tokens.get(0, 0) { [INFO] [stderr] 798 | | Token::COMMA => { [INFO] [stderr] 799 | | tokens.i += 1; [INFO] [stderr] ... | [INFO] [stderr] 811 | | } [INFO] [stderr] 812 | | } [INFO] [stderr] | |_____________^ help: try: `while let Token::COMMA = tokens.get(0, 0) { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:852:13 [INFO] [stderr] | [INFO] [stderr] 852 | / loop { [INFO] [stderr] 853 | | match tokens.get(0, 0) { [INFO] [stderr] 854 | | Token::COMMA => { [INFO] [stderr] 855 | | tokens.i += 1; [INFO] [stderr] ... | [INFO] [stderr] 867 | | } [INFO] [stderr] 868 | | } [INFO] [stderr] | |_____________^ help: try: `while let Token::COMMA = tokens.get(0, 0) { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/run.rs:12:17 [INFO] [stderr] | [INFO] [stderr] 12 | fn run_exp(ast: &Box) -> Box { [INFO] [stderr] | ^^^^^^^^^ help: try: `&AST` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::borrowed_box)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/run.rs:66:41 [INFO] [stderr] | [INFO] [stderr] 66 | fn run_var(context: &mut Context, iden: &Box, exp: &Box) -> Result { [INFO] [stderr] | ^^^^^^^^^ help: try: `&AST` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/run.rs:66:57 [INFO] [stderr] | [INFO] [stderr] 66 | fn run_var(context: &mut Context, iden: &Box, exp: &Box) -> Result { [INFO] [stderr] | ^^^^^^^^^ help: try: `&AST` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [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/run.rs:88:46 [INFO] [stderr] | [INFO] [stderr] 88 | fn run_stmt(context: &mut Context, ast_list: &Vec) -> Result { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[AST]` [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/run.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | / match ast { [INFO] [stderr] 91 | | &AST::VAR { ref iden, ref exp } => { [INFO] [stderr] 92 | | run_var(context, iden, exp); [INFO] [stderr] 93 | | } [INFO] [stderr] ... | [INFO] [stderr] 97 | | _ => {} [INFO] [stderr] 98 | | } [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] 90 | match *ast { [INFO] [stderr] 91 | AST::VAR { ref iden, ref exp } => { [INFO] [stderr] 92 | run_var(context, iden, exp); [INFO] [stderr] 93 | } [INFO] [stderr] 94 | AST::STMT(ref stmt) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/run.rs:92:17 [INFO] [stderr] | [INFO] [stderr] 92 | run_var(context, iden, exp); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/run.rs:95:17 [INFO] [stderr] | [INFO] [stderr] 95 | run_stmt(context,stmt); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/run.rs:111:9 [INFO] [stderr] | [INFO] [stderr] 111 | run_stmt(&mut context, &ast_vec); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:29:21 [INFO] [stderr] | [INFO] [stderr] 29 | run(ast); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.64s [INFO] running `"docker" "inspect" "777e98646d0e5468f7c4d58fc5f862f671380f901df789a23f3c15c3388302bf"` [INFO] running `"docker" "rm" "-f" "777e98646d0e5468f7c4d58fc5f862f671380f901df789a23f3c15c3388302bf"` [INFO] [stdout] 777e98646d0e5468f7c4d58fc5f862f671380f901df789a23f3c15c3388302bf