[INFO] updating cached repository kcomas/kscript [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/kcomas/kscript [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/kcomas/kscript" "work/ex/clippy-test-run/sources/stable/gh/kcomas/kscript"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/kcomas/kscript'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/kcomas/kscript" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/kcomas/kscript"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/kcomas/kscript'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 703a96751a7b280935e9fe04b6ebf508d93ccdd9 [INFO] sha for GitHub repo kcomas/kscript: 703a96751a7b280935e9fe04b6ebf508d93ccdd9 [INFO] validating manifest of kcomas/kscript 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 kcomas/kscript 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 kcomas/kscript [INFO] finished frobbing kcomas/kscript [INFO] frobbed toml for kcomas/kscript written to work/ex/clippy-test-run/sources/stable/gh/kcomas/kscript/Cargo.toml [INFO] started frobbing kcomas/kscript [INFO] finished frobbing kcomas/kscript [INFO] frobbed toml for kcomas/kscript written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/kcomas/kscript/Cargo.toml [INFO] crate kcomas/kscript 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 kcomas/kscript against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/kcomas/kscript:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 1ce05c5e4518992fce4d9b01e2813624a6dbc6d2a4e4beeb1ca8b5499d5cb73c [INFO] running `"docker" "start" "-a" "1ce05c5e4518992fce4d9b01e2813624a6dbc6d2a4e4beeb1ca8b5499d5cb73c"` [INFO] [stderr] Checking kscript v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lang/vm.rs:222:21 [INFO] [stderr] | [INFO] [stderr] 222 | num_args: num_args, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `num_args` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lang/vm.rs:241:21 [INFO] [stderr] | [INFO] [stderr] 241 | num_args: num_args, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `num_args` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lang/kargs.rs:12:24 [INFO] [stderr] | [INFO] [stderr] 12 | ArgContainer { args: args } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `args` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lang/kargs.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | zero: zero, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `zero` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lang/kargs.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | file: file, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `file` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lang/kargs.rs:61:9 [INFO] [stderr] | [INFO] [stderr] 61 | flags: flags, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `flags` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lang/vm.rs:222:21 [INFO] [stderr] | [INFO] [stderr] 222 | num_args: num_args, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `num_args` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lang/vm.rs:241:21 [INFO] [stderr] | [INFO] [stderr] 241 | num_args: num_args, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `num_args` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lang/kargs.rs:12:24 [INFO] [stderr] | [INFO] [stderr] 12 | ArgContainer { args: args } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `args` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lang/kargs.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | zero: zero, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `zero` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lang/kargs.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | file: file, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `file` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lang/kargs.rs:61:9 [INFO] [stderr] | [INFO] [stderr] 61 | flags: flags, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `flags` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/lang/builder/ast/mod.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | mod ast; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lang/builder/ast/mod.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | return Ok(Some(Ast::End)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(Ast::End))` [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/lang/builder/ast/mod.rs:40:16 [INFO] [stderr] | [INFO] [stderr] 40 | '#' => return Ok(Some(load_comment(iter)?)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(load_comment(iter)?))` [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/lang/builder/ast/mod.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | return Ok(Some(Ast::End)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(Ast::End))` [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/lang/builder/ast/mod.rs:52:34 [INFO] [stderr] | [INFO] [stderr] 52 | 'a'...'z' | 'A'...'Z' => return Ok(Some(load_var(iter)?)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(load_var(iter)?))` [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/lang/builder/ast/mod.rs:53:22 [INFO] [stderr] | [INFO] [stderr] 53 | '0'...'9' => return Ok(Some(load_number(iter)?)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(load_number(iter)?))` [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/lang/builder/ast/mod.rs:76:13 [INFO] [stderr] | [INFO] [stderr] 76 | return Ok(Some(Ast::FunctionCall(args))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(Ast::FunctionCall(args)))` [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/lang/builder/ast/mod.rs:78:16 [INFO] [stderr] | [INFO] [stderr] 78 | '(' => return Ok(Some(Ast::Group(load_block(iter, '(', ')')?))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(Ast::Group(load_block(iter, '(', ')')?)))` [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/lang/builder/ast/mod.rs:79:16 [INFO] [stderr] | [INFO] [stderr] 79 | '"' => return Ok(Some(load_string(iter)?)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(load_string(iter)?))` [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/lang/builder/ast/mod.rs:88:21 [INFO] [stderr] | [INFO] [stderr] 88 | return Ok(Some(Ast::Array(items))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(Ast::Array(items)))` [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/lang/builder/ast/mod.rs:92:21 [INFO] [stderr] | [INFO] [stderr] 92 | return Ok(Some(Ast::Len)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(Ast::Len))` [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/lang/builder/ast/mod.rs:94:22 [INFO] [stderr] | [INFO] [stderr] 94 | _ => return Err(ParserError::InvalidArrayItem), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ParserError::InvalidArrayItem)` [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/lang/builder/ast/mod.rs:97:16 [INFO] [stderr] | [INFO] [stderr] 97 | '[' => return Ok(Some(Ast::Access(load_block(iter, '[', ']')?))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(Ast::Access(load_block(iter, '[', ']')?)))` [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/lang/builder/ast/mod.rs:98:16 [INFO] [stderr] | [INFO] [stderr] 98 | '?' => return Ok(Some(Ast::If(load_block(iter, '{', '}')?))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(Ast::If(load_block(iter, '{', '}')?)))` [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/lang/builder/ast/mod.rs:99:16 [INFO] [stderr] | [INFO] [stderr] 99 | '=' => return Ok(Some(load_equals(iter)?)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(load_equals(iter)?))` [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/lang/builder/ast/mod.rs:101:13 [INFO] [stderr] | [INFO] [stderr] 101 | / return Ok(Some(double_char( [INFO] [stderr] 102 | | iter, [INFO] [stderr] 103 | | '+', [INFO] [stderr] 104 | | (ParserError::InvalidAdd, ParserError::InvalidConcat), [INFO] [stderr] 105 | | (Ast::Add, Ast::Concat), [INFO] [stderr] 106 | | )?)) [INFO] [stderr] | |________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 101 | Ok(Some(double_char( [INFO] [stderr] 102 | iter, [INFO] [stderr] 103 | '+', [INFO] [stderr] 104 | (ParserError::InvalidAdd, ParserError::InvalidConcat), [INFO] [stderr] 105 | (Ast::Add, Ast::Concat), [INFO] [stderr] 106 | )?)) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lang/builder/ast/mod.rs:108:16 [INFO] [stderr] | [INFO] [stderr] 108 | '-' => return Ok(Some(next_and_return(iter, Ast::Sub))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(next_and_return(iter, Ast::Sub)))` [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/lang/builder/ast/mod.rs:110:13 [INFO] [stderr] | [INFO] [stderr] 110 | / return Ok(Some(double_char( [INFO] [stderr] 111 | | iter, [INFO] [stderr] 112 | | '*', [INFO] [stderr] 113 | | (ParserError::InvalidMul, ParserError::InvalidExp), [INFO] [stderr] 114 | | (Ast::Mul, Ast::Exp), [INFO] [stderr] 115 | | )?)) [INFO] [stderr] | |________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 110 | Ok(Some(double_char( [INFO] [stderr] 111 | iter, [INFO] [stderr] 112 | '*', [INFO] [stderr] 113 | (ParserError::InvalidMul, ParserError::InvalidExp), [INFO] [stderr] 114 | (Ast::Mul, Ast::Exp), [INFO] [stderr] 115 | )?)) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lang/builder/ast/mod.rs:118:13 [INFO] [stderr] | [INFO] [stderr] 118 | / return Ok(Some(double_char( [INFO] [stderr] 119 | | iter, [INFO] [stderr] 120 | | '/', [INFO] [stderr] 121 | | (ParserError::InvalidDiv, ParserError::InvalidRem), [INFO] [stderr] 122 | | (Ast::Div, Ast::Rem), [INFO] [stderr] 123 | | )?)) [INFO] [stderr] | |________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 118 | Ok(Some(double_char( [INFO] [stderr] 119 | iter, [INFO] [stderr] 120 | '/', [INFO] [stderr] 121 | (ParserError::InvalidDiv, ParserError::InvalidRem), [INFO] [stderr] 122 | (Ast::Div, Ast::Rem), [INFO] [stderr] 123 | )?)) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lang/builder/ast/mod.rs:126:13 [INFO] [stderr] | [INFO] [stderr] 126 | / return Ok(Some(double_char( [INFO] [stderr] 127 | | iter, [INFO] [stderr] 128 | | '>', [INFO] [stderr] 129 | | (ParserError::InvalidIoWrite, ParserError::InvalidIoAppend), [INFO] [stderr] 130 | | (Ast::IoWrite, Ast::IoAppend), [INFO] [stderr] 131 | | )?)) [INFO] [stderr] | |________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 126 | Ok(Some(double_char( [INFO] [stderr] 127 | iter, [INFO] [stderr] 128 | '>', [INFO] [stderr] 129 | (ParserError::InvalidIoWrite, ParserError::InvalidIoAppend), [INFO] [stderr] 130 | (Ast::IoWrite, Ast::IoAppend), [INFO] [stderr] 131 | )?)) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lang/builder/ast/mod.rs:133:14 [INFO] [stderr] | [INFO] [stderr] 133 | _ => return Ok(None), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(None)` [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/lang/builder/ast/mod.rs:221:16 [INFO] [stderr] | [INFO] [stderr] 221 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 222 | | if let Some(statement) = match_ast(iter)? { [INFO] [stderr] 223 | | if let Ast::End = statement { [INFO] [stderr] 224 | | current_arg.push(current_statements); [INFO] [stderr] ... | [INFO] [stderr] 235 | | } [INFO] [stderr] 236 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 221 | } else if let Some(statement) = match_ast(iter)? { [INFO] [stderr] 222 | if let Ast::End = statement { [INFO] [stderr] 223 | current_arg.push(current_statements); [INFO] [stderr] 224 | current_statements = Vec::new(); [INFO] [stderr] 225 | } else if statement.add_end() { [INFO] [stderr] 226 | current_statements.push(statement); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/lang/builder/mod.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | mod builder; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/lang/builder/ast/mod.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | mod ast; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lang/builder/ast/mod.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | return Ok(Some(Ast::End)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(Ast::End))` [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/lang/builder/ast/mod.rs:40:16 [INFO] [stderr] | [INFO] [stderr] 40 | '#' => return Ok(Some(load_comment(iter)?)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(load_comment(iter)?))` [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/lang/builder/ast/mod.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | return Ok(Some(Ast::End)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(Ast::End))` [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/lang/builder/ast/mod.rs:52:34 [INFO] [stderr] | [INFO] [stderr] 52 | 'a'...'z' | 'A'...'Z' => return Ok(Some(load_var(iter)?)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(load_var(iter)?))` [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/lang/builder/ast/mod.rs:53:22 [INFO] [stderr] | [INFO] [stderr] 53 | '0'...'9' => return Ok(Some(load_number(iter)?)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(load_number(iter)?))` [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/lang/builder/ast/mod.rs:76:13 [INFO] [stderr] | [INFO] [stderr] 76 | return Ok(Some(Ast::FunctionCall(args))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(Ast::FunctionCall(args)))` [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/lang/builder/ast/mod.rs:78:16 [INFO] [stderr] | [INFO] [stderr] 78 | '(' => return Ok(Some(Ast::Group(load_block(iter, '(', ')')?))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(Ast::Group(load_block(iter, '(', ')')?)))` [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/lang/builder/ast/mod.rs:79:16 [INFO] [stderr] | [INFO] [stderr] 79 | '"' => return Ok(Some(load_string(iter)?)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(load_string(iter)?))` [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/lang/builder/ast/mod.rs:88:21 [INFO] [stderr] | [INFO] [stderr] 88 | return Ok(Some(Ast::Array(items))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(Ast::Array(items)))` [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/lang/builder/ast/mod.rs:92:21 [INFO] [stderr] | [INFO] [stderr] 92 | return Ok(Some(Ast::Len)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(Ast::Len))` [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/lang/builder/ast/mod.rs:94:22 [INFO] [stderr] | [INFO] [stderr] 94 | _ => return Err(ParserError::InvalidArrayItem), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ParserError::InvalidArrayItem)` [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/lang/builder/ast/mod.rs:97:16 [INFO] [stderr] | [INFO] [stderr] 97 | '[' => return Ok(Some(Ast::Access(load_block(iter, '[', ']')?))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(Ast::Access(load_block(iter, '[', ']')?)))` [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/lang/builder/ast/mod.rs:98:16 [INFO] [stderr] | [INFO] [stderr] 98 | '?' => return Ok(Some(Ast::If(load_block(iter, '{', '}')?))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(Ast::If(load_block(iter, '{', '}')?)))` [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/lang/builder/ast/mod.rs:99:16 [INFO] [stderr] | [INFO] [stderr] 99 | '=' => return Ok(Some(load_equals(iter)?)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(load_equals(iter)?))` [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/lang/builder/ast/mod.rs:101:13 [INFO] [stderr] | [INFO] [stderr] 101 | / return Ok(Some(double_char( [INFO] [stderr] 102 | | iter, [INFO] [stderr] 103 | | '+', [INFO] [stderr] 104 | | (ParserError::InvalidAdd, ParserError::InvalidConcat), [INFO] [stderr] 105 | | (Ast::Add, Ast::Concat), [INFO] [stderr] 106 | | )?)) [INFO] [stderr] | |________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 101 | Ok(Some(double_char( [INFO] [stderr] 102 | iter, [INFO] [stderr] 103 | '+', [INFO] [stderr] 104 | (ParserError::InvalidAdd, ParserError::InvalidConcat), [INFO] [stderr] 105 | (Ast::Add, Ast::Concat), [INFO] [stderr] 106 | )?)) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lang/builder/ast/mod.rs:108:16 [INFO] [stderr] | [INFO] [stderr] 108 | '-' => return Ok(Some(next_and_return(iter, Ast::Sub))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(next_and_return(iter, Ast::Sub)))` [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/lang/builder/ast/mod.rs:110:13 [INFO] [stderr] | [INFO] [stderr] 110 | / return Ok(Some(double_char( [INFO] [stderr] 111 | | iter, [INFO] [stderr] 112 | | '*', [INFO] [stderr] 113 | | (ParserError::InvalidMul, ParserError::InvalidExp), [INFO] [stderr] 114 | | (Ast::Mul, Ast::Exp), [INFO] [stderr] 115 | | )?)) [INFO] [stderr] | |________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 110 | Ok(Some(double_char( [INFO] [stderr] 111 | iter, [INFO] [stderr] 112 | '*', [INFO] [stderr] 113 | (ParserError::InvalidMul, ParserError::InvalidExp), [INFO] [stderr] 114 | (Ast::Mul, Ast::Exp), [INFO] [stderr] 115 | )?)) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lang/builder/ast/mod.rs:118:13 [INFO] [stderr] | [INFO] [stderr] 118 | / return Ok(Some(double_char( [INFO] [stderr] 119 | | iter, [INFO] [stderr] 120 | | '/', [INFO] [stderr] 121 | | (ParserError::InvalidDiv, ParserError::InvalidRem), [INFO] [stderr] 122 | | (Ast::Div, Ast::Rem), [INFO] [stderr] 123 | | )?)) [INFO] [stderr] | |________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 118 | Ok(Some(double_char( [INFO] [stderr] 119 | iter, [INFO] [stderr] 120 | '/', [INFO] [stderr] 121 | (ParserError::InvalidDiv, ParserError::InvalidRem), [INFO] [stderr] 122 | (Ast::Div, Ast::Rem), [INFO] [stderr] 123 | )?)) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lang/builder/ast/mod.rs:126:13 [INFO] [stderr] | [INFO] [stderr] 126 | / return Ok(Some(double_char( [INFO] [stderr] 127 | | iter, [INFO] [stderr] 128 | | '>', [INFO] [stderr] 129 | | (ParserError::InvalidIoWrite, ParserError::InvalidIoAppend), [INFO] [stderr] 130 | | (Ast::IoWrite, Ast::IoAppend), [INFO] [stderr] 131 | | )?)) [INFO] [stderr] | |________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 126 | Ok(Some(double_char( [INFO] [stderr] 127 | iter, [INFO] [stderr] 128 | '>', [INFO] [stderr] 129 | (ParserError::InvalidIoWrite, ParserError::InvalidIoAppend), [INFO] [stderr] 130 | (Ast::IoWrite, Ast::IoAppend), [INFO] [stderr] 131 | )?)) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lang/builder/ast/mod.rs:133:14 [INFO] [stderr] | [INFO] [stderr] 133 | _ => return Ok(None), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(None)` [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/lang/builder/ast/mod.rs:221:16 [INFO] [stderr] | [INFO] [stderr] 221 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 222 | | if let Some(statement) = match_ast(iter)? { [INFO] [stderr] 223 | | if let Ast::End = statement { [INFO] [stderr] 224 | | current_arg.push(current_statements); [INFO] [stderr] ... | [INFO] [stderr] 235 | | } [INFO] [stderr] 236 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 221 | } else if let Some(statement) = match_ast(iter)? { [INFO] [stderr] 222 | if let Ast::End = statement { [INFO] [stderr] 223 | current_arg.push(current_statements); [INFO] [stderr] 224 | current_statements = Vec::new(); [INFO] [stderr] 225 | } else if statement.add_end() { [INFO] [stderr] 226 | current_statements.push(statement); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/lang/builder/mod.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | mod builder; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Add` impl [INFO] [stderr] --> src/lang/data_type.rs:216:35 [INFO] [stderr] | [INFO] [stderr] 216 | } else if self.is_float() || right.is_float() { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::suspicious_arithmetic_impl)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Sub` impl [INFO] [stderr] --> src/lang/data_type.rs:227:28 [INFO] [stderr] | [INFO] [stderr] 227 | if self.is_float() || right.is_float() { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Mul` impl [INFO] [stderr] --> src/lang/data_type.rs:238:29 [INFO] [stderr] | [INFO] [stderr] 238 | if self.is_string() && right.is_int() { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Mul` impl [INFO] [stderr] --> src/lang/data_type.rs:243:35 [INFO] [stderr] | [INFO] [stderr] 243 | } else if self.is_float() || right.is_float() { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Div` impl [INFO] [stderr] --> src/lang/data_type.rs:254:28 [INFO] [stderr] | [INFO] [stderr] 254 | if self.is_float() || right.is_float() { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/lang/vm.rs:61:24 [INFO] [stderr] | [INFO] [stderr] 61 | if let None = rst { [INFO] [stderr] | _________________- ^^^^ [INFO] [stderr] 62 | | return Err(RuntimeError::CannotReturn); [INFO] [stderr] 63 | | } [INFO] [stderr] | |_________________- help: try this: `if rst.is_none()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/lang/vm.rs:146:21 [INFO] [stderr] | [INFO] [stderr] 146 | left.as_float() == right.as_float() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(left.as_float() - right.as_float()).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/lang/vm.rs:146:21 [INFO] [stderr] | [INFO] [stderr] 146 | left.as_float() == right.as_float() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Add` impl [INFO] [stderr] --> src/lang/data_type.rs:216:35 [INFO] [stderr] | [INFO] [stderr] 216 | } else if self.is_float() || right.is_float() { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::suspicious_arithmetic_impl)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Sub` impl [INFO] [stderr] --> src/lang/data_type.rs:227:28 [INFO] [stderr] | [INFO] [stderr] 227 | if self.is_float() || right.is_float() { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Mul` impl [INFO] [stderr] --> src/lang/data_type.rs:238:29 [INFO] [stderr] | [INFO] [stderr] 238 | if self.is_string() && right.is_int() { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Mul` impl [INFO] [stderr] --> src/lang/data_type.rs:243:35 [INFO] [stderr] | [INFO] [stderr] 243 | } else if self.is_float() || right.is_float() { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Div` impl [INFO] [stderr] --> src/lang/data_type.rs:254:28 [INFO] [stderr] | [INFO] [stderr] 254 | if self.is_float() || right.is_float() { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/lang/vm.rs:61:24 [INFO] [stderr] | [INFO] [stderr] 61 | if let None = rst { [INFO] [stderr] | _________________- ^^^^ [INFO] [stderr] 62 | | return Err(RuntimeError::CannotReturn); [INFO] [stderr] 63 | | } [INFO] [stderr] | |_________________- help: try this: `if rst.is_none()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/builder/ast/jump.rs:80:8 [INFO] [stderr] | [INFO] [stderr] 80 | if op_stack.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!op_stack.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/lang/vm.rs:146:21 [INFO] [stderr] | [INFO] [stderr] 146 | left.as_float() == right.as_float() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(left.as_float() - right.as_float()).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/lang/vm.rs:146:21 [INFO] [stderr] | [INFO] [stderr] 146 | left.as_float() == right.as_float() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/builder/ast/mod.rs:165:16 [INFO] [stderr] | [INFO] [stderr] 165 | if current_ast.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!current_ast.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/builder/ast/mod.rs:173:20 [INFO] [stderr] | [INFO] [stderr] 173 | if current_ast.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!current_ast.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/builder/ast/mod.rs:204:20 [INFO] [stderr] | [INFO] [stderr] 204 | if current_statements.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!current_statements.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/builder/ast/mod.rs:207:20 [INFO] [stderr] | [INFO] [stderr] 207 | if current_arg.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!current_arg.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/builder/ast/mod.rs:215:16 [INFO] [stderr] | [INFO] [stderr] 215 | if current_statements.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!current_statements.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/builder/ast/mod.rs:250:20 [INFO] [stderr] | [INFO] [stderr] 250 | if current_statements.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!current_statements.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/lang/builder/ast/mod.rs:333:5 [INFO] [stderr] | [INFO] [stderr] 333 | / match is_float { [INFO] [stderr] 334 | | true => Ok(Ast::Float(number.parse().unwrap())), [INFO] [stderr] 335 | | false => Ok(Ast::Integer(number.parse().unwrap())), [INFO] [stderr] 336 | | } [INFO] [stderr] | |_____^ help: consider using an if/else expression: `if is_float { Ok(Ast::Float(number.parse().unwrap())) } else { Ok(Ast::Integer(number.parse().unwrap())) }` [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/lang/builder/builder.rs:8:36 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn load_commands_from_ast(ast: &Vec) -> Result, ParserError> { [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: length comparison to zero [INFO] [stderr] --> src/lang/builder/ast/jump.rs:80:8 [INFO] [stderr] | [INFO] [stderr] 80 | if op_stack.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!op_stack.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lang/builder/builder.rs:74:20 [INFO] [stderr] | [INFO] [stderr] 74 | fn load_body(body: &AstBody) -> Result, ParserError> { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lang/builder/builder.rs:151:34 [INFO] [stderr] | [INFO] [stderr] 151 | pub fn build_function_call(args: &AstArgs) -> Result, ParserError> { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/builder/ast/mod.rs:165:16 [INFO] [stderr] | [INFO] [stderr] 165 | if current_ast.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!current_ast.is_empty()` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/builder/ast/mod.rs:173:20 [INFO] [stderr] | [INFO] [stderr] 173 | if current_ast.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!current_ast.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lang/builder/builder.rs:162:27 [INFO] [stderr] | [INFO] [stderr] 162 | pub fn build_array(items: &AstArgs) -> Result, ParserError> { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/builder/ast/mod.rs:204:20 [INFO] [stderr] | [INFO] [stderr] 204 | if current_statements.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!current_statements.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/builder/ast/mod.rs:207:20 [INFO] [stderr] | [INFO] [stderr] 207 | if current_arg.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!current_arg.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/builder/ast/mod.rs:215:16 [INFO] [stderr] | [INFO] [stderr] 215 | if current_statements.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!current_statements.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/builder/mod.rs:52:12 [INFO] [stderr] | [INFO] [stderr] 52 | if ast.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!ast.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/builder/mod.rs:61:16 [INFO] [stderr] | [INFO] [stderr] 61 | if shunt.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!shunt.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/builder/mod.rs:85:12 [INFO] [stderr] | [INFO] [stderr] 85 | if ast.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!ast.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/builder/ast/mod.rs:250:20 [INFO] [stderr] | [INFO] [stderr] 250 | if current_statements.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!current_statements.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/builder/mod.rs:87:16 [INFO] [stderr] | [INFO] [stderr] 87 | if shunt.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!shunt.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/lang/builder/ast/mod.rs:333:5 [INFO] [stderr] | [INFO] [stderr] 333 | / match is_float { [INFO] [stderr] 334 | | true => Ok(Ast::Float(number.parse().unwrap())), [INFO] [stderr] 335 | | false => Ok(Ast::Integer(number.parse().unwrap())), [INFO] [stderr] 336 | | } [INFO] [stderr] | |_____^ help: consider using an if/else expression: `if is_float { Ok(Ast::Float(number.parse().unwrap())) } else { Ok(Ast::Integer(number.parse().unwrap())) }` [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: length comparison to zero [INFO] [stderr] --> src/lang/kargs.rs:16:9 [INFO] [stderr] | [INFO] [stderr] 16 | self.args.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lang/builder/builder.rs:8:36 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn load_commands_from_ast(ast: &Vec) -> Result, ParserError> { [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 should consider adding a `Default` implementation for `lang::Kscript` [INFO] [stderr] --> src/lang/mod.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | / pub fn new() -> Kscript { [INFO] [stderr] 31 | | Kscript { [INFO] [stderr] 32 | | symbols: SymbolTable::new(), [INFO] [stderr] 33 | | commands: None, [INFO] [stderr] ... | [INFO] [stderr] 37 | | } [INFO] [stderr] 38 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 29 | impl Default for lang::Kscript { [INFO] [stderr] 30 | fn default() -> Self { [INFO] [stderr] 31 | Self::new() [INFO] [stderr] 32 | } [INFO] [stderr] 33 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/lang/mod.rs:78:17 [INFO] [stderr] | [INFO] [stderr] 78 | / stdout_lock [INFO] [stderr] 79 | | .write(b"& ") [INFO] [stderr] 80 | | .expect("Failed to write handle char"); [INFO] [stderr] | |__________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/mod.rs:84:16 [INFO] [stderr] | [INFO] [stderr] 84 | if input.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/mod.rs:108:16 [INFO] [stderr] | [INFO] [stderr] 108 | if stack.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!stack.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lang/builder/builder.rs:74:20 [INFO] [stderr] | [INFO] [stderr] 74 | fn load_body(body: &AstBody) -> Result, ParserError> { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lang/builder/builder.rs:151:34 [INFO] [stderr] | [INFO] [stderr] 151 | pub fn build_function_call(args: &AstArgs) -> Result, ParserError> { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lang/builder/builder.rs:162:27 [INFO] [stderr] | [INFO] [stderr] 162 | pub fn build_array(items: &AstArgs) -> Result, ParserError> { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/builder/mod.rs:52:12 [INFO] [stderr] | [INFO] [stderr] 52 | if ast.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!ast.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/builder/mod.rs:61:16 [INFO] [stderr] | [INFO] [stderr] 61 | if shunt.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!shunt.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: aborting due to 7 previous errors [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/builder/mod.rs:85:12 [INFO] [stderr] | [INFO] [stderr] 85 | if ast.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!ast.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/builder/mod.rs:87:16 [INFO] [stderr] | [INFO] [stderr] 87 | if shunt.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!shunt.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] error: Could not compile `kscript`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/kargs.rs:16:9 [INFO] [stderr] | [INFO] [stderr] 16 | self.args.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `lang::Kscript` [INFO] [stderr] --> src/lang/mod.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | / pub fn new() -> Kscript { [INFO] [stderr] 31 | | Kscript { [INFO] [stderr] 32 | | symbols: SymbolTable::new(), [INFO] [stderr] 33 | | commands: None, [INFO] [stderr] ... | [INFO] [stderr] 37 | | } [INFO] [stderr] 38 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 29 | impl Default for lang::Kscript { [INFO] [stderr] 30 | fn default() -> Self { [INFO] [stderr] 31 | Self::new() [INFO] [stderr] 32 | } [INFO] [stderr] 33 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/lang/mod.rs:78:17 [INFO] [stderr] | [INFO] [stderr] 78 | / stdout_lock [INFO] [stderr] 79 | | .write(b"& ") [INFO] [stderr] 80 | | .expect("Failed to write handle char"); [INFO] [stderr] | |__________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/mod.rs:84:16 [INFO] [stderr] | [INFO] [stderr] 84 | if input.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lang/mod.rs:108:16 [INFO] [stderr] | [INFO] [stderr] 108 | if stack.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!stack.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: aborting due to 7 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `kscript`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "1ce05c5e4518992fce4d9b01e2813624a6dbc6d2a4e4beeb1ca8b5499d5cb73c"` [INFO] running `"docker" "rm" "-f" "1ce05c5e4518992fce4d9b01e2813624a6dbc6d2a4e4beeb1ca8b5499d5cb73c"` [INFO] [stdout] 1ce05c5e4518992fce4d9b01e2813624a6dbc6d2a4e4beeb1ca8b5499d5cb73c