[INFO] cloning repository https://github.com/anthonychester/regg [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/anthonychester/regg" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fanthonychester%2Fregg", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fanthonychester%2Fregg'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 0e0bc01b09543cce1e8edd4efd5030cb174eaee1 [INFO] linting anthonychester/regg against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fanthonychester%2Fregg" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/anthonychester/regg [INFO] finished tweaking git repo https://github.com/anthonychester/regg [INFO] tweaked toml for git repo https://github.com/anthonychester/regg written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/anthonychester/regg on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/anthonychester/regg already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a26c77740c65e8ea632e67c2b2076c8082c54678d0f741724f09fb6d34c60fe2 [INFO] running `Command { std: "docker" "start" "-a" "a26c77740c65e8ea632e67c2b2076c8082c54678d0f741724f09fb6d34c60fe2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a26c77740c65e8ea632e67c2b2076c8082c54678d0f741724f09fb6d34c60fe2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a26c77740c65e8ea632e67c2b2076c8082c54678d0f741724f09fb6d34c60fe2", kill_on_drop: false }` [INFO] [stdout] a26c77740c65e8ea632e67c2b2076c8082c54678d0f741724f09fb6d34c60fe2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] fb66be6bb57ac9da445671bdbd0ee59fcc07b1ba7ee8b4c20bbff8d3ac5be8bf [INFO] running `Command { std: "docker" "start" "-a" "fb66be6bb57ac9da445671bdbd0ee59fcc07b1ba7ee8b4c20bbff8d3ac5be8bf", kill_on_drop: false }` [INFO] [stderr] Checking lang v0.0.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lang/tokenizer.rs:44:13 [INFO] [stdout] | [INFO] [stdout] 44 | char: char, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `char` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lang/errorhandler.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | context: context, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `context` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lang/preprocesser.rs:15:7 [INFO] [stdout] | [INFO] [stdout] 15 | tokens: tokens, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `tokens` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lang/preprocesser.rs:16:7 [INFO] [stdout] | [INFO] [stdout] 16 | pos: pos, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `pos` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/main.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | special_forms: special_forms, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `special_forms` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lang/tokenizer.rs:44:13 [INFO] [stdout] | [INFO] [stdout] 44 | char: char, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `char` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lang/errorhandler.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | context: context, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `context` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lang/preprocesser.rs:15:7 [INFO] [stdout] | [INFO] [stdout] 15 | tokens: tokens, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `tokens` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lang/preprocesser.rs:16:7 [INFO] [stdout] | [INFO] [stdout] 16 | pos: pos, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `pos` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/main.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | special_forms: special_forms, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `special_forms` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/evaluate.rs:31:60 [INFO] [stdout] | [INFO] [stdout] 31 | return self.special_forms.get(&opval)(self, &args, &mut scope); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `scope` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is not `Copy`) usually take `self` by reference [INFO] [stdout] --> src/lang/expr.rs:18:22 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn to_string(self) -> String { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implementation of inherent method `to_string(&self) -> String` for type `lang::expr::Value` [INFO] [stdout] --> src/lang/expr.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | / pub fn to_string(self) -> String { [INFO] [stdout] 19 | | match self { [INFO] [stdout] 20 | | Value::Int(x) => x.to_string(), [INFO] [stdout] ... | [INFO] [stdout] 28 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `lang::expr::Value` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] = note: `#[warn(clippy::inherent_to_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `is_*` usually take `self` by mutable reference or `self` by reference or no `self` [INFO] [stdout] --> src/lang/expr.rs:30:20 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn is_none(self) -> bool { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lang/expr.rs:50:31 [INFO] [stdout] | [INFO] [stdout] 50 | Value::Int(_x) => format!("int"), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"int".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lang/expr.rs:52:34 [INFO] [stdout] | [INFO] [stdout] 52 | Value::String(_x) => format!("string"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"string".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lang/expr.rs:53:32 [INFO] [stdout] | [INFO] [stdout] 53 | Value::Bool(_x) => format!("bool"), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"bool".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lang/expr.rs:54:26 [INFO] [stdout] | [INFO] [stdout] 54 | Value::Do => format!("do"), [INFO] [stdout] | ^^^^^^^^^^^^^ help: consider using `.to_string()`: `"do".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lang/expr.rs:55:27 [INFO] [stdout] | [INFO] [stdout] 55 | Value::End => format!("end"), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"end".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lang/expr.rs:56:28 [INFO] [stdout] | [INFO] [stdout] 56 | Value::None => format!("none"), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"none".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `write!` args [INFO] [stdout] --> src/lang/expr.rs:64:52 [INFO] [stdout] | [INFO] [stdout] 64 | Value::Int(x) => write!(f, "int: {}", x.to_string()), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `write!` args [INFO] [stdout] --> src/lang/expr.rs:66:62 [INFO] [stdout] | [INFO] [stdout] 66 | Value::String(x) => write!(f, "string: \"{}\"", x.to_string()), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `write!` args [INFO] [stdout] --> src/lang/expr.rs:67:54 [INFO] [stdout] | [INFO] [stdout] 67 | Value::Bool(x) => write!(f, "bool: {}", x.to_string()), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is not `Copy`) usually take `self` by reference [INFO] [stdout] --> src/lang/expr.rs:86:22 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn to_string(self) -> String { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implementation of inherent method `to_string(&self) -> String` for type `lang::expr::Type` [INFO] [stdout] --> src/lang/expr.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 86 | / pub fn to_string(self) -> String { [INFO] [stdout] 87 | | match self { [INFO] [stdout] 88 | | Type::Do => "do".to_string(), [INFO] [stdout] 89 | | Type::Apply => "apply".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 95 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `lang::expr::Type` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/expr.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 120 | return self.value.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 120 - return self.value.clone(); [INFO] [stdout] 120 + self.value.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/expr.rs:123:9 [INFO] [stdout] | [INFO] [stdout] 123 | return self.type_of.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 123 - return self.type_of.clone(); [INFO] [stdout] 123 + self.type_of.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/expr.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 130 | return self.operator.as_ref().as_ref().unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 130 - return self.operator.as_ref().as_ref().unwrap().clone(); [INFO] [stdout] 130 + self.operator.as_ref().as_ref().unwrap().clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/expr.rs:134:9 [INFO] [stdout] | [INFO] [stdout] 134 | / return Self { [INFO] [stdout] 135 | | type_of: Type::Do, [INFO] [stdout] 136 | | operator: Box::new(Some(Expr::word(Value::String("do".to_string())))), [INFO] [stdout] 137 | | args: Box::new(Some(args)), [INFO] [stdout] 138 | | value: Value::Do, [INFO] [stdout] 139 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 134 ~ Self { [INFO] [stdout] 135 + type_of: Type::Do, [INFO] [stdout] 136 + operator: Box::new(Some(Expr::word(Value::String("do".to_string())))), [INFO] [stdout] 137 + args: Box::new(Some(args)), [INFO] [stdout] 138 + value: Value::Do, [INFO] [stdout] 139 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/expr.rs:143:9 [INFO] [stdout] | [INFO] [stdout] 143 | / return Self { [INFO] [stdout] 144 | | type_of: Type::Apply, [INFO] [stdout] 145 | | operator: Box::new(Some(op)), [INFO] [stdout] 146 | | args: Box::new(Some(args)), [INFO] [stdout] 147 | | value: Value::None, [INFO] [stdout] 148 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 143 ~ Self { [INFO] [stdout] 144 + type_of: Type::Apply, [INFO] [stdout] 145 + operator: Box::new(Some(op)), [INFO] [stdout] 146 + args: Box::new(Some(args)), [INFO] [stdout] 147 + value: Value::None, [INFO] [stdout] 148 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/expr.rs:152:9 [INFO] [stdout] | [INFO] [stdout] 152 | / return Self { [INFO] [stdout] 153 | | type_of: Type::Value, [INFO] [stdout] 154 | | operator: Box::new(None), [INFO] [stdout] 155 | | args: Box::new(None), [INFO] [stdout] 156 | | value: val, [INFO] [stdout] 157 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 152 ~ Self { [INFO] [stdout] 153 + type_of: Type::Value, [INFO] [stdout] 154 + operator: Box::new(None), [INFO] [stdout] 155 + args: Box::new(None), [INFO] [stdout] 156 + value: val, [INFO] [stdout] 157 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/expr.rs:161:9 [INFO] [stdout] | [INFO] [stdout] 161 | / return Self { [INFO] [stdout] 162 | | type_of: Type::Value, [INFO] [stdout] 163 | | operator: Box::new(Some(Expr::value(Value::String(kind.to_string())))), [INFO] [stdout] 164 | | args: Box::new(None), [INFO] [stdout] 165 | | value: val, [INFO] [stdout] 166 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 161 ~ Self { [INFO] [stdout] 162 + type_of: Type::Value, [INFO] [stdout] 163 + operator: Box::new(Some(Expr::value(Value::String(kind.to_string())))), [INFO] [stdout] 164 + args: Box::new(None), [INFO] [stdout] 165 + value: val, [INFO] [stdout] 166 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/expr.rs:170:9 [INFO] [stdout] | [INFO] [stdout] 170 | / return Self { [INFO] [stdout] 171 | | type_of: Type::Word, [INFO] [stdout] 172 | | operator: Box::new(None), [INFO] [stdout] 173 | | args: Box::new(None), [INFO] [stdout] 174 | | value: val, [INFO] [stdout] 175 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 170 ~ Self { [INFO] [stdout] 171 + type_of: Type::Word, [INFO] [stdout] 172 + operator: Box::new(None), [INFO] [stdout] 173 + args: Box::new(None), [INFO] [stdout] 174 + value: val, [INFO] [stdout] 175 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/expr.rs:179:9 [INFO] [stdout] | [INFO] [stdout] 179 | / return Self { [INFO] [stdout] 180 | | type_of: Type::Word, [INFO] [stdout] 181 | | operator: Box::new(Some(Expr::value(Value::String(kind.to_string())))), [INFO] [stdout] 182 | | args: Box::new(None), [INFO] [stdout] 183 | | value: val, [INFO] [stdout] 184 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 179 ~ Self { [INFO] [stdout] 180 + type_of: Type::Word, [INFO] [stdout] 181 + operator: Box::new(Some(Expr::value(Value::String(kind.to_string())))), [INFO] [stdout] 182 + args: Box::new(None), [INFO] [stdout] 183 + value: val, [INFO] [stdout] 184 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/expr.rs:188:9 [INFO] [stdout] | [INFO] [stdout] 188 | / return Self { [INFO] [stdout] 189 | | type_of: Type::None, [INFO] [stdout] 190 | | value: Value::None, [INFO] [stdout] 191 | | operator: Box::new(None), [INFO] [stdout] 192 | | args: Box::new(None), [INFO] [stdout] 193 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 188 ~ Self { [INFO] [stdout] 189 + type_of: Type::None, [INFO] [stdout] 190 + value: Value::None, [INFO] [stdout] 191 + operator: Box::new(None), [INFO] [stdout] 192 + args: Box::new(None), [INFO] [stdout] 193 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implementation of inherent method `to_string(&self) -> String` for type `lang::expr::Expr` [INFO] [stdout] --> src/lang/expr.rs:200:5 [INFO] [stdout] | [INFO] [stdout] 200 | / pub fn to_string(&self) -> String { [INFO] [stdout] 201 | | return format!( [INFO] [stdout] 202 | | "{{{:?} op:{:?} args {:#?} val:{:?}}}", [INFO] [stdout] 203 | | self.type_of, self.operator, self.args, self.value [INFO] [stdout] 204 | | ); [INFO] [stdout] 205 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `lang::expr::Expr` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/expr.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | / return format!( [INFO] [stdout] 202 | | "{{{:?} op:{:?} args {:#?} val:{:?}}}", [INFO] [stdout] 203 | | self.type_of, self.operator, self.args, self.value [INFO] [stdout] 204 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 201 ~ format!( [INFO] [stdout] 202 + "{{{:?} op:{:?} args {:#?} val:{:?}}}", [INFO] [stdout] 203 + self.type_of, self.operator, self.args, self.value [INFO] [stdout] 204 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/lang/specialforms.rs:23:14 [INFO] [stdout] | [INFO] [stdout] 23 | pub map: HashMap< [INFO] [stdout] | ______________^ [INFO] [stdout] 24 | | String, [INFO] [stdout] 25 | | fn(&mut evaluate::Evaluate, &Vec, &mut Scope) -> Value, [INFO] [stdout] 26 | | >, [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | return Value::Bool(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 51 - return Value::Bool(true); [INFO] [stdout] 51 + Value::Bool(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:34:15 [INFO] [stdout] | [INFO] [stdout] 34 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 34 - args: &Vec, [INFO] [stdout] 34 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:37:26 [INFO] [stdout] | [INFO] [stdout] 37 | if args.len() != (1 as usize) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `1_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | return Value::Bool(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 73 - return Value::Bool(true); [INFO] [stdout] 73 + Value::Bool(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:56:15 [INFO] [stdout] | [INFO] [stdout] 56 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 56 - args: &Vec, [INFO] [stdout] 56 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:59:26 [INFO] [stdout] | [INFO] [stdout] 59 | if args.len() != (1 as usize) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `1_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | return Value::Bool(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 93 - return Value::Bool(true); [INFO] [stdout] 93 + Value::Bool(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:77:15 [INFO] [stdout] | [INFO] [stdout] 77 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 77 - args: &Vec, [INFO] [stdout] 77 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:80:26 [INFO] [stdout] | [INFO] [stdout] 80 | if args.len() != (1 as usize) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `1_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | return eval.evaluate(args[0].clone(), scope); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 106 - return eval.evaluate(args[0].clone(), scope); [INFO] [stdout] 106 + eval.evaluate(args[0].clone(), scope) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:98:15 [INFO] [stdout] | [INFO] [stdout] 98 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 98 - args: &Vec, [INFO] [stdout] 98 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:101:26 [INFO] [stdout] | [INFO] [stdout] 101 | if args.len() != (1 as usize) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `1_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | return Value::Bool(false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 124 - return Value::Bool(false); [INFO] [stdout] 124 + Value::Bool(false) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:111:15 [INFO] [stdout] | [INFO] [stdout] 111 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 111 - args: &Vec, [INFO] [stdout] 111 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:140:9 [INFO] [stdout] | [INFO] [stdout] 140 | return Value::Bool(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 140 - return Value::Bool(true); [INFO] [stdout] 140 + Value::Bool(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:129:15 [INFO] [stdout] | [INFO] [stdout] 129 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 129 - args: &Vec, [INFO] [stdout] 129 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:132:26 [INFO] [stdout] | [INFO] [stdout] 132 | if args.len() != (2 as usize) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `2_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:157:9 [INFO] [stdout] | [INFO] [stdout] 157 | return value; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 157 - return value; [INFO] [stdout] 157 + value [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:181:9 [INFO] [stdout] | [INFO] [stdout] 181 | return value; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 181 - return value; [INFO] [stdout] 181 + value [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:162:15 [INFO] [stdout] | [INFO] [stdout] 162 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 162 - args: &Vec, [INFO] [stdout] 162 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:165:26 [INFO] [stdout] | [INFO] [stdout] 165 | if args.len() != (2 as usize) || args[0].type_of != Type::Word { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `2_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:205:9 [INFO] [stdout] | [INFO] [stdout] 205 | return value; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 205 - return value; [INFO] [stdout] 205 + value [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:186:15 [INFO] [stdout] | [INFO] [stdout] 186 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 186 - args: &Vec, [INFO] [stdout] 186 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:189:26 [INFO] [stdout] | [INFO] [stdout] 189 | if args.len() != (2 as usize) || args[0].type_of != Type::Word { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `2_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:228:9 [INFO] [stdout] | [INFO] [stdout] 228 | return value; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 228 - return value; [INFO] [stdout] 228 + value [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:210:15 [INFO] [stdout] | [INFO] [stdout] 210 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 210 - args: &Vec, [INFO] [stdout] 210 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:213:26 [INFO] [stdout] | [INFO] [stdout] 213 | if args.len() != (2 as usize) || args[0].type_of != Type::Word { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `2_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:246:17 [INFO] [stdout] | [INFO] [stdout] 246 | return Value::String(s1.to_string() + &s2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 246 - return Value::String(s1.to_string() + &s2); [INFO] [stdout] 246 + Value::String(s1.to_string() + &s2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:249:17 [INFO] [stdout] | [INFO] [stdout] 249 | return Value::String(i1.to_string() + &s2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 249 - return Value::String(i1.to_string() + &s2); [INFO] [stdout] 249 + Value::String(i1.to_string() + &s2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:252:17 [INFO] [stdout] | [INFO] [stdout] 252 | return Value::String(s1.to_string() + &i2.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 252 - return Value::String(s1.to_string() + &i2.to_string()); [INFO] [stdout] 252 + Value::String(s1.to_string() + &i2.to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:255:17 [INFO] [stdout] | [INFO] [stdout] 255 | return Value::Int(i1 + i2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 255 - return Value::Int(i1 + i2); [INFO] [stdout] 255 + Value::Int(i1 + i2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:233:15 [INFO] [stdout] | [INFO] [stdout] 233 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 233 - args: &Vec, [INFO] [stdout] 233 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:236:26 [INFO] [stdout] | [INFO] [stdout] 236 | if args.len() != (2 as usize) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `2_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/specialforms.rs:246:55 [INFO] [stdout] | [INFO] [stdout] 246 | return Value::String(s1.to_string() + &s2); [INFO] [stdout] | ^^^ help: change this to: `s2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/specialforms.rs:249:55 [INFO] [stdout] | [INFO] [stdout] 249 | return Value::String(i1.to_string() + &s2); [INFO] [stdout] | ^^^ help: change this to: `s2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:274:9 [INFO] [stdout] | [INFO] [stdout] 274 | return Value::Int(i1 - i2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 274 - return Value::Int(i1 - i2); [INFO] [stdout] 274 + Value::Int(i1 - i2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:286:17 [INFO] [stdout] | [INFO] [stdout] 286 | return Value::String(s1.repeat(s2 as usize)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 286 - return Value::String(s1.repeat(s2 as usize)); [INFO] [stdout] 286 + Value::String(s1.repeat(s2 as usize)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:289:17 [INFO] [stdout] | [INFO] [stdout] 289 | return Value::Int(i1 * i2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 289 - return Value::Int(i1 * i2); [INFO] [stdout] 289 + Value::Int(i1 * i2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:278:15 [INFO] [stdout] | [INFO] [stdout] 278 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 278 - args: &Vec, [INFO] [stdout] 278 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:303:9 [INFO] [stdout] | [INFO] [stdout] 303 | return Value::Int(i1 / i2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 303 - return Value::Int(i1 / i2); [INFO] [stdout] 303 + Value::Int(i1 / i2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:312:9 [INFO] [stdout] | [INFO] [stdout] 312 | return Value::Int(i1 % i2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 312 - return Value::Int(i1 % i2); [INFO] [stdout] 312 + Value::Int(i1 % i2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:321:9 [INFO] [stdout] | [INFO] [stdout] 321 | return Value::Bool(i1 == i2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 321 - return Value::Bool(i1 == i2); [INFO] [stdout] 321 + Value::Bool(i1 == i2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:330:9 [INFO] [stdout] | [INFO] [stdout] 330 | return Value::Bool(i1 != i2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 330 - return Value::Bool(i1 != i2); [INFO] [stdout] 330 + Value::Bool(i1 != i2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:339:9 [INFO] [stdout] | [INFO] [stdout] 339 | return Value::Bool(i1 > i2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 339 - return Value::Bool(i1 > i2); [INFO] [stdout] 339 + Value::Bool(i1 > i2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:348:9 [INFO] [stdout] | [INFO] [stdout] 348 | return Value::Bool(i1 < i2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 348 - return Value::Bool(i1 < i2); [INFO] [stdout] 348 + Value::Bool(i1 < i2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:364:13 [INFO] [stdout] | [INFO] [stdout] 364 | return Value::Bool(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 364 - return Value::Bool(true); [INFO] [stdout] 364 + Value::Bool(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:366:13 [INFO] [stdout] | [INFO] [stdout] 366 | return Value::Bool(false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 366 - return Value::Bool(false); [INFO] [stdout] 366 + Value::Bool(false) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:353:15 [INFO] [stdout] | [INFO] [stdout] 353 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 353 - args: &Vec, [INFO] [stdout] 353 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:356:26 [INFO] [stdout] | [INFO] [stdout] 356 | if args.len() != (2 as usize) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `2_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:383:13 [INFO] [stdout] | [INFO] [stdout] 383 | return Value::Bool(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 383 - return Value::Bool(true); [INFO] [stdout] 383 + Value::Bool(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:385:13 [INFO] [stdout] | [INFO] [stdout] 385 | return Value::Bool(false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 385 - return Value::Bool(false); [INFO] [stdout] 385 + Value::Bool(false) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:372:15 [INFO] [stdout] | [INFO] [stdout] 372 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 372 - args: &Vec, [INFO] [stdout] 372 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:375:26 [INFO] [stdout] | [INFO] [stdout] 375 | if args.len() != (2 as usize) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `2_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:401:13 [INFO] [stdout] | [INFO] [stdout] 401 | return Value::Bool(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 401 - return Value::Bool(true); [INFO] [stdout] 401 + Value::Bool(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:403:13 [INFO] [stdout] | [INFO] [stdout] 403 | return Value::Bool(false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 403 - return Value::Bool(false); [INFO] [stdout] 403 + Value::Bool(false) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:391:15 [INFO] [stdout] | [INFO] [stdout] 391 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 391 - args: &Vec, [INFO] [stdout] 391 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:394:26 [INFO] [stdout] | [INFO] [stdout] 394 | if args.len() != (1 as usize) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `1_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:414:9 [INFO] [stdout] | [INFO] [stdout] 414 | return Value::Bool(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 414 - return Value::Bool(true); [INFO] [stdout] 414 + Value::Bool(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:409:15 [INFO] [stdout] | [INFO] [stdout] 409 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 409 - args: &Vec, [INFO] [stdout] 409 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:437:9 [INFO] [stdout] | [INFO] [stdout] 437 | return (arg1.parse::().unwrap(), arg2.parse::().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 437 - return (arg1.parse::().unwrap(), arg2.parse::().unwrap()); [INFO] [stdout] 437 + (arg1.parse::().unwrap(), arg2.parse::().unwrap()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:422:15 [INFO] [stdout] | [INFO] [stdout] 422 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 422 - args: &Vec, [INFO] [stdout] 422 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:425:26 [INFO] [stdout] | [INFO] [stdout] 425 | if args.len() != (2 as usize) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `2_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:445:24 [INFO] [stdout] | [INFO] [stdout] 445 | Some(f) => return *f, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 445 ~ Some(f) => *f, [INFO] [stdout] 446 | None => panic!(), [INFO] [stdout] 447 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:501:9 [INFO] [stdout] | [INFO] [stdout] 501 | return Self { map: temp }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 501 - return Self { map: temp }; [INFO] [stdout] 501 + Self { map: temp } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/lang/specialforms.rs:451:23 [INFO] [stdout] | [INFO] [stdout] 451 | let mut temp: HashMap< [INFO] [stdout] | _______________________^ [INFO] [stdout] 452 | | _, [INFO] [stdout] 453 | | fn(&mut evaluate::Evaluate, &Vec, &mut Scope) -> Value, [INFO] [stdout] 454 | | > = HashMap::new(); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:497:17 [INFO] [stdout] | [INFO] [stdout] 497 | return Value::Bool(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 497 - return Value::Bool(true); [INFO] [stdout] 497 + Value::Bool(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/lexer.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | / return Self { [INFO] [stdout] 24 | | dict: Dict::new(), [INFO] [stdout] 25 | | source: soruce, [INFO] [stdout] 26 | | i: 0, [INFO] [stdout] ... | [INFO] [stdout] 36 | | bc: 0, [INFO] [stdout] 37 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 23 ~ Self { [INFO] [stdout] 24 + dict: Dict::new(), [INFO] [stdout] 25 + source: soruce, [INFO] [stdout] 26 + i: 0, [INFO] [stdout] 27 + key: String::from(""), [INFO] [stdout] 28 + match_c: '(', [INFO] [stdout] 29 + is_control: false, [INFO] [stdout] 30 + current: vec![], [INFO] [stdout] 31 + list: vec![], [INFO] [stdout] 32 + temp: vec![], [INFO] [stdout] 33 + cond: Expr::empty(), [INFO] [stdout] 34 + ce: Expr::empty(), [INFO] [stdout] 35 + pc: 0, [INFO] [stdout] 36 + bc: 0, [INFO] [stdout] 37 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/lexer.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | return Expr::apply(Expr::word(Value::Do), self.parse()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 42 - return Expr::apply(Expr::word(Value::Do), self.parse()); [INFO] [stdout] 42 + Expr::apply(Expr::word(Value::Do), self.parse()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/lexer.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | return self.list.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 61 - return self.list.clone(); [INFO] [stdout] 61 + self.list.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/lang/dict.rs:6:14 [INFO] [stdout] | [INFO] [stdout] 6 | pub map: HashMap) -> Expr, usize)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | return part[0].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 13 - return part[0].clone(); [INFO] [stdout] 13 + part[0].clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | return Dict::value_int(new_part); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 66 - return Dict::value_int(new_part); [INFO] [stdout] 66 + Dict::value_int(new_part) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lang/dict.rs:22:17 [INFO] [stdout] | [INFO] [stdout] 22 | / if !expr.operator.is_none() { [INFO] [stdout] 23 | | if expr.get_operator().get_value() == Value::to_stringv("math") { [INFO] [stdout] 24 | | if [ [INFO] [stdout] 25 | | Value::to_stringv("*"), [INFO] [stdout] ... | [INFO] [stdout] 46 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 22 ~ if !expr.operator.is_none() [INFO] [stdout] 23 ~ && expr.get_operator().get_value() == Value::to_stringv("math") { [INFO] [stdout] 24 | if [ [INFO] [stdout] ... [INFO] [stdout] 44 | } [INFO] [stdout] 45 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lang/dict.rs:47:17 [INFO] [stdout] | [INFO] [stdout] 47 | i = i - 1; [INFO] [stdout] | ^^^^^^^^^ help: replace it with: `i -= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lang/dict.rs:64:17 [INFO] [stdout] | [INFO] [stdout] 64 | i = i + 1; [INFO] [stdout] | ^^^^^^^^^ help: replace it with: `i += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:128:13 [INFO] [stdout] | [INFO] [stdout] 128 | / return Expr::apply( [INFO] [stdout] 129 | | part[l].clone(), [INFO] [stdout] 130 | | Vec::from([ [INFO] [stdout] 131 | | Dict::value_bool(part[..l].to_vec()), [INFO] [stdout] 132 | | Dict::value_bool(part[l + 1..].to_vec()), [INFO] [stdout] 133 | | ]), [INFO] [stdout] 134 | | ); [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 128 ~ Expr::apply( [INFO] [stdout] 129 + part[l].clone(), [INFO] [stdout] 130 + Vec::from([ [INFO] [stdout] 131 + Dict::value_bool(part[..l].to_vec()), [INFO] [stdout] 132 + Dict::value_bool(part[l + 1..].to_vec()), [INFO] [stdout] 133 + ]), [INFO] [stdout] 134 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:161:13 [INFO] [stdout] | [INFO] [stdout] 161 | return Dict::value_bool(new_part); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 161 - return Dict::value_bool(new_part); [INFO] [stdout] 161 + Dict::value_bool(new_part) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lang/dict.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | / if !part[0].operator.is_none() { [INFO] [stdout] 75 | | if part[0].get_operator().get_value() == Value::to_stringv("bool") [INFO] [stdout] 76 | | || part[0].get_operator().get_operator().get_value() == Value::to_stringv("comp") [INFO] [stdout] ... | [INFO] [stdout] 80 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 74 ~ if !part[0].operator.is_none() [INFO] [stdout] 75 ~ && (part[0].get_operator().get_value() == Value::to_stringv("bool") [INFO] [stdout] 76 ~ || part[0].get_operator().get_operator().get_value() == Value::to_stringv("comp")) [INFO] [stdout] 77 | { [INFO] [stdout] 78 | return part[0].clone(); [INFO] [stdout] 79 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lang/dict.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | / if !part[0].operator.is_none() { [INFO] [stdout] 87 | | if part[0].get_value() == Value::to_stringv("!") { [INFO] [stdout] 88 | | return Expr::apply(part[0].clone(), vec![part[1].clone()]); [INFO] [stdout] 89 | | } [INFO] [stdout] 90 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 86 ~ if !part[0].operator.is_none() [INFO] [stdout] 87 ~ && part[0].get_value() == Value::to_stringv("!") { [INFO] [stdout] 88 | return Expr::apply(part[0].clone(), vec![part[1].clone()]); [INFO] [stdout] 89 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lang/dict.rs:103:13 [INFO] [stdout] | [INFO] [stdout] 103 | / if !expr.operator.is_none() { [INFO] [stdout] 104 | | if expr.get_operator().get_value() == Value::to_stringv("comp") [INFO] [stdout] 105 | | || expr.get_operator().get_value() == Value::to_stringv("log") [INFO] [stdout] ... | [INFO] [stdout] 123 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 103 ~ if !expr.operator.is_none() [INFO] [stdout] 104 ~ && (expr.get_operator().get_value() == Value::to_stringv("comp") [INFO] [stdout] 105 ~ || expr.get_operator().get_value() == Value::to_stringv("log")) [INFO] [stdout] 106 | { [INFO] [stdout] ... [INFO] [stdout] 121 | } [INFO] [stdout] 122 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lang/dict.rs:124:13 [INFO] [stdout] | [INFO] [stdout] 124 | i = i - 1; [INFO] [stdout] | ^^^^^^^^^ help: replace it with: `i -= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/lang/dict.rs:146:21 [INFO] [stdout] | [INFO] [stdout] 146 | let apply; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `apply` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 146 ~ [INFO] [stdout] 147 ~ let apply = if is_not { [INFO] [stdout] 148 ~ Expr::apply(part[l].clone(), Vec::from([part[l + 1].clone()])) [INFO] [stdout] 149 | } else { [INFO] [stdout] 150 ~ Expr::apply( [INFO] [stdout] 151 | part[l].clone(), [INFO] [stdout] 152 | Vec::from([part[l - 1].clone(), part[l + 1].clone()]), [INFO] [stdout] 153 ~ ) [INFO] [stdout] 154 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lang/dict.rs:159:17 [INFO] [stdout] | [INFO] [stdout] 159 | i = i + 1; [INFO] [stdout] | ^^^^^^^^^ help: replace it with: `i += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:168:13 [INFO] [stdout] | [INFO] [stdout] 168 | return part[0].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 168 - return part[0].clone(); [INFO] [stdout] 168 + part[0].clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:215:13 [INFO] [stdout] | [INFO] [stdout] 215 | return Dict::value_int(new_part); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 215 - return Dict::value_int(new_part); [INFO] [stdout] 215 + Dict::value_int(new_part) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lang/dict.rs:177:17 [INFO] [stdout] | [INFO] [stdout] 177 | / if !expr.operator.is_none() { [INFO] [stdout] 178 | | if expr.get_operator().get_value() == Value::to_stringv("math") { [INFO] [stdout] 179 | | if [Value::to_stringv("*")].contains(&expr.get_value()) { [INFO] [stdout] 180 | | if mdr_op { [INFO] [stdout] ... | [INFO] [stdout] 195 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 177 ~ if !expr.operator.is_none() [INFO] [stdout] 178 ~ && expr.get_operator().get_value() == Value::to_stringv("math") { [INFO] [stdout] 179 | if [Value::to_stringv("*")].contains(&expr.get_value()) { [INFO] [stdout] ... [INFO] [stdout] 193 | } [INFO] [stdout] 194 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lang/dict.rs:196:17 [INFO] [stdout] | [INFO] [stdout] 196 | i = i - 1; [INFO] [stdout] | ^^^^^^^^^ help: replace it with: `i -= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lang/dict.rs:213:17 [INFO] [stdout] | [INFO] [stdout] 213 | i = i + 1; [INFO] [stdout] | ^^^^^^^^^ help: replace it with: `i += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:240:9 [INFO] [stdout] | [INFO] [stdout] 240 | return Expr::apply(Expr::word(Value::to_stringv("int")), list); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 240 - return Expr::apply(Expr::word(Value::to_stringv("int")), list); [INFO] [stdout] 240 + Expr::apply(Expr::word(Value::to_stringv("int")), list) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lang/dict.rs:231:12 [INFO] [stdout] | [INFO] [stdout] 231 | if lexed.get_args().len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!lexed.get_args().is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:252:9 [INFO] [stdout] | [INFO] [stdout] 252 | return Expr::apply(Expr::word(Value::to_stringv("int")), list); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 252 - return Expr::apply(Expr::word(Value::to_stringv("int")), list); [INFO] [stdout] 252 + Expr::apply(Expr::word(Value::to_stringv("int")), list) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:265:9 [INFO] [stdout] | [INFO] [stdout] 265 | return Expr::apply(Expr::word(Value::to_stringv("string")), list); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 265 - return Expr::apply(Expr::word(Value::to_stringv("string")), list); [INFO] [stdout] 265 + Expr::apply(Expr::word(Value::to_stringv("string")), list) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:269:9 [INFO] [stdout] | [INFO] [stdout] 269 | / return Expr::apply( [INFO] [stdout] 270 | | Expr::word(Value::to_stringv("output")), [INFO] [stdout] 271 | | Vec::from([args[0].clone()]), [INFO] [stdout] 272 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 269 ~ Expr::apply( [INFO] [stdout] 270 + Expr::word(Value::to_stringv("output")), [INFO] [stdout] 271 + Vec::from([args[0].clone()]), [INFO] [stdout] 272 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:276:9 [INFO] [stdout] | [INFO] [stdout] 276 | / return Expr::apply( [INFO] [stdout] 277 | | Expr::word(Value::to_stringv("outputln")), [INFO] [stdout] 278 | | Vec::from([args[0].clone()]), [INFO] [stdout] 279 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 276 ~ Expr::apply( [INFO] [stdout] 277 + Expr::word(Value::to_stringv("outputln")), [INFO] [stdout] 278 + Vec::from([args[0].clone()]), [INFO] [stdout] 279 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:283:9 [INFO] [stdout] | [INFO] [stdout] 283 | / return Expr::apply( [INFO] [stdout] 284 | | Expr::word(Value::to_stringv("sleep")), [INFO] [stdout] 285 | | Vec::from([args[0].clone()]), [INFO] [stdout] 286 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 283 ~ Expr::apply( [INFO] [stdout] 284 + Expr::word(Value::to_stringv("sleep")), [INFO] [stdout] 285 + Vec::from([args[0].clone()]), [INFO] [stdout] 286 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:290:9 [INFO] [stdout] | [INFO] [stdout] 290 | / return Expr::apply( [INFO] [stdout] 291 | | Expr::word(Value::to_stringv("return")), [INFO] [stdout] 292 | | Vec::from([args[0].clone()]), [INFO] [stdout] 293 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 290 ~ Expr::apply( [INFO] [stdout] 291 + Expr::word(Value::to_stringv("return")), [INFO] [stdout] 292 + Vec::from([args[0].clone()]), [INFO] [stdout] 293 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:309:9 [INFO] [stdout] | [INFO] [stdout] 309 | return Expr::apply(Expr::word(Value::to_stringv("if")), vec![cond, stat]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 309 - return Expr::apply(Expr::word(Value::to_stringv("if")), vec![cond, stat]); [INFO] [stdout] 309 + Expr::apply(Expr::word(Value::to_stringv("if")), vec![cond, stat]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lang/dict.rs:303:12 [INFO] [stdout] | [INFO] [stdout] 303 | if exprs.len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!exprs.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:329:9 [INFO] [stdout] | [INFO] [stdout] 329 | return Some(fun); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 329 - return Some(fun); [INFO] [stdout] 329 + Some(fun) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:341:9 [INFO] [stdout] | [INFO] [stdout] 341 | return fun; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 341 - return fun; [INFO] [stdout] 341 + fun [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:387:9 [INFO] [stdout] | [INFO] [stdout] 387 | return Self { map: temp }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 387 - return Self { map: temp }; [INFO] [stdout] 387 + Self { map: temp } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/lang/dict.rs:375:23 [INFO] [stdout] | [INFO] [stdout] 375 | let mut temp: HashMap<_, (fn(Vec) -> Expr, usize)> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NEWL` contains a capitalized acronym [INFO] [stdout] --> src/lang/tokenizer.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | NEWL = 13, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Newl` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/tokenizer.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | / return Self { [INFO] [stdout] 43 | | i: 1, [INFO] [stdout] 44 | | char: char, [INFO] [stdout] 45 | | lines_expr: vec![], [INFO] [stdout] ... | [INFO] [stdout] 50 | | error_handler: ErrorHandler::new(1, 0, String::from("Tokenizer"), con), [INFO] [stdout] 51 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 42 ~ Self { [INFO] [stdout] 43 + i: 1, [INFO] [stdout] 44 + char: char, [INFO] [stdout] 45 + lines_expr: vec![], [INFO] [stdout] 46 + current: vec![c], [INFO] [stdout] 47 + current_type: ct, [INFO] [stdout] 48 + is_string: false, [INFO] [stdout] 49 + pos: vec![], [INFO] [stdout] 50 + error_handler: ErrorHandler::new(1, 0, String::from("Tokenizer"), con), [INFO] [stdout] 51 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/tokenizer.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | / return match tp { [INFO] [stdout] 57 | | Type::String => Expr::value(Value::to_stringv(&input)), [INFO] [stdout] 58 | | Type::Number => Expr::value(Value::to_intv(&input)), [INFO] [stdout] 59 | | Type::Punc => Expr::sp_word(Value::to_stringv(&input), "punc"), [INFO] [stdout] ... | [INFO] [stdout] 69 | | _ => Expr::word(Value::to_stringv(&input)), [INFO] [stdout] 70 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 56 ~ match tp { [INFO] [stdout] 57 + Type::String => Expr::value(Value::to_stringv(&input)), [INFO] [stdout] 58 + Type::Number => Expr::value(Value::to_intv(&input)), [INFO] [stdout] 59 + Type::Punc => Expr::sp_word(Value::to_stringv(&input), "punc"), [INFO] [stdout] 60 + Type::Asgmt => Expr::sp_word(Value::to_stringv(&input), "asgmt"), [INFO] [stdout] 61 + Type::Par => Expr::sp_value(Value::to_stringv(&input), "par"), [INFO] [stdout] 62 + Type::Sasgmt => Expr::sp_word(Value::to_stringv(&input), "sasgmt"), [INFO] [stdout] 63 + Type::Comp => Expr::sp_word(Value::to_stringv(&input), "comp"), [INFO] [stdout] 64 + Type::Log => Expr::sp_word(Value::to_stringv(&input), "log"), [INFO] [stdout] 65 + Type::Math => Expr::sp_word(Value::to_stringv(&input), "math"), [INFO] [stdout] 66 + Type::Bool => Expr::sp_value(Value::to_boolv(&input), "bool"), [INFO] [stdout] 67 + Type::Ctrl => Expr::sp_word(Value::to_stringv(&input), "ctrl"), [INFO] [stdout] 68 + Type::Key => Expr::sp_value(Value::to_stringv(&input), "key"), [INFO] [stdout] 69 + _ => Expr::word(Value::to_stringv(&input)), [INFO] [stdout] 70 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:55:32 [INFO] [stdout] | [INFO] [stdout] 55 | let tp = self.get_type(&input); [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:57:59 [INFO] [stdout] | [INFO] [stdout] 57 | Type::String => Expr::value(Value::to_stringv(&input)), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:58:56 [INFO] [stdout] | [INFO] [stdout] 58 | Type::Number => Expr::value(Value::to_intv(&input)), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:59:59 [INFO] [stdout] | [INFO] [stdout] 59 | Type::Punc => Expr::sp_word(Value::to_stringv(&input), "punc"), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:60:60 [INFO] [stdout] | [INFO] [stdout] 60 | Type::Asgmt => Expr::sp_word(Value::to_stringv(&input), "asgmt"), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:61:59 [INFO] [stdout] | [INFO] [stdout] 61 | Type::Par => Expr::sp_value(Value::to_stringv(&input), "par"), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:62:61 [INFO] [stdout] | [INFO] [stdout] 62 | Type::Sasgmt => Expr::sp_word(Value::to_stringv(&input), "sasgmt"), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:63:59 [INFO] [stdout] | [INFO] [stdout] 63 | Type::Comp => Expr::sp_word(Value::to_stringv(&input), "comp"), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:64:58 [INFO] [stdout] | [INFO] [stdout] 64 | Type::Log => Expr::sp_word(Value::to_stringv(&input), "log"), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:65:59 [INFO] [stdout] | [INFO] [stdout] 65 | Type::Math => Expr::sp_word(Value::to_stringv(&input), "math"), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:66:58 [INFO] [stdout] | [INFO] [stdout] 66 | Type::Bool => Expr::sp_value(Value::to_boolv(&input), "bool"), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:67:59 [INFO] [stdout] | [INFO] [stdout] 67 | Type::Ctrl => Expr::sp_word(Value::to_stringv(&input), "ctrl"), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:68:59 [INFO] [stdout] | [INFO] [stdout] 68 | Type::Key => Expr::sp_value(Value::to_stringv(&input), "key"), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:69:47 [INFO] [stdout] | [INFO] [stdout] 69 | _ => Expr::word(Value::to_stringv(&input)), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/tokenizer.rs:134:13 [INFO] [stdout] | [INFO] [stdout] 134 | return Type::Word; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 134 - return Type::Word; [INFO] [stdout] 134 + Type::Word [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/lang/tokenizer.rs:87:12 [INFO] [stdout] | [INFO] [stdout] 87 | if input == "" { [INFO] [stdout] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/tokenizer.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | return (self.lines_expr.clone(), self.pos.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 154 - return (self.lines_expr.clone(), self.pos.clone()); [INFO] [stdout] 154 + (self.lines_expr.clone(), self.pos.clone()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lang/tokenizer.rs:150:12 [INFO] [stdout] | [INFO] [stdout] 150 | if self.current.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.current.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:160:35 [INFO] [stdout] | [INFO] [stdout] 160 | let expr = self.make_expr(&input); [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:174:58 [INFO] [stdout] | [INFO] [stdout] 174 | let expr = Expr::value(Value::to_stringv(&input)); [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lang/tokenizer.rs:180:20 [INFO] [stdout] | [INFO] [stdout] 180 | if self.current.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.current.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lang/tokenizer.rs:187:16 [INFO] [stdout] | [INFO] [stdout] 187 | if self.current.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.current.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lang/tokenizer.rs:195:16 [INFO] [stdout] | [INFO] [stdout] 195 | if self.current.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.current.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lang/tokenizer.rs:199:16 [INFO] [stdout] | [INFO] [stdout] 199 | if self.current.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.current.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lang/tokenizer.rs:205:20 [INFO] [stdout] | [INFO] [stdout] 205 | if self.current.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.current.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lang/tokenizer.rs:220:24 [INFO] [stdout] | [INFO] [stdout] 220 | if self.current.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.current.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lang/errorhandler.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 44 | if self.lines_len.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.lines_len.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/lang/errorhandler.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] = note: `#[warn(clippy::println_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/errorhandler.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | return (self.cur_line, self.cur_char); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 70 - return (self.cur_line, self.cur_char); [INFO] [stdout] 70 + (self.cur_line, self.cur_char) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/preprocesser.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | / return Self { [INFO] [stdout] 15 | | tokens: tokens, [INFO] [stdout] 16 | | pos: pos, [INFO] [stdout] 17 | | i: 0, [INFO] [stdout] ... | [INFO] [stdout] 20 | | error_handler: ErrorHandler::new(1, 0, String::from("Preprocesser"), con), [INFO] [stdout] 21 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 14 ~ Self { [INFO] [stdout] 15 + tokens: tokens, [INFO] [stdout] 16 + pos: pos, [INFO] [stdout] 17 + i: 0, [INFO] [stdout] 18 + bc: 0, [INFO] [stdout] 19 + pc: 0, [INFO] [stdout] 20 + error_handler: ErrorHandler::new(1, 0, String::from("Preprocesser"), con), [INFO] [stdout] 21 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/preprocesser.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | return self.tokens.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 53 - return self.tokens.clone(); [INFO] [stdout] 53 + self.tokens.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/lang/preprocesser.rs:41:47 [INFO] [stdout] | [INFO] [stdout] 41 | self.error_handler.throw_error_untraced(String::from(fm)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `fm` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/lang/preprocesser.rs:44:47 [INFO] [stdout] | [INFO] [stdout] 44 | self.error_handler.throw_error_untraced(String::from(fm)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `fm` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/lang/preprocesser.rs:48:47 [INFO] [stdout] | [INFO] [stdout] 48 | self.error_handler.throw_error_untraced(String::from(fm)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `fm` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/lang/preprocesser.rs:51:47 [INFO] [stdout] | [INFO] [stdout] 51 | self.error_handler.throw_error_untraced(String::from(fm)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `fm` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/preprocesser.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | return (b, p); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 76 - return (b, p); [INFO] [stdout] 76 + (b, p) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lang/preprocesser.rs:57:26 [INFO] [stdout] | [INFO] [stdout] 57 | let expr = self.tokens[i as usize].clone(); [INFO] [stdout] | ^^^^^^^^^^ help: try: `{ i }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/scope.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 23 - return None; [INFO] [stdout] 23 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/lang/scope.rs:45:8 [INFO] [stdout] | [INFO] [stdout] 45 | if cond.len() % 2 != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace with: `!cond.len().is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/scope.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 60 - return None; [INFO] [stdout] 60 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `pos` [INFO] [stdout] --> src/lang/mod.rs:15:16 [INFO] [stdout] | [INFO] [stdout] 15 | for i in 0..pos.len() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 15 - for i in 0..pos.len() { [INFO] [stdout] 15 + for in &pos { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `ch` [INFO] [stdout] --> src/lang/mod.rs:28:16 [INFO] [stdout] | [INFO] [stdout] 28 | for i in 0..ch.len() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 28 - for i in 0..ch.len() { [INFO] [stdout] 28 + for in &ch { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:49:8 [INFO] [stdout] | [INFO] [stdout] 49 | if !(split[split.len() - 1] == "lang") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(split[split.len() - 1] != "lang")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/evaluate.rs:31:60 [INFO] [stdout] | [INFO] [stdout] 31 | return self.special_forms.get(&opval)(self, &args, &mut scope); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `scope` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is not `Copy`) usually take `self` by reference [INFO] [stdout] --> src/lang/expr.rs:18:22 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn to_string(self) -> String { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implementation of inherent method `to_string(&self) -> String` for type `lang::expr::Value` [INFO] [stdout] --> src/lang/expr.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | / pub fn to_string(self) -> String { [INFO] [stdout] 19 | | match self { [INFO] [stdout] 20 | | Value::Int(x) => x.to_string(), [INFO] [stdout] ... | [INFO] [stdout] 28 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `lang::expr::Value` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] = note: `#[warn(clippy::inherent_to_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `is_*` usually take `self` by mutable reference or `self` by reference or no `self` [INFO] [stdout] --> src/lang/expr.rs:30:20 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn is_none(self) -> bool { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lang/expr.rs:50:31 [INFO] [stdout] | [INFO] [stdout] 50 | Value::Int(_x) => format!("int"), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"int".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lang/expr.rs:52:34 [INFO] [stdout] | [INFO] [stdout] 52 | Value::String(_x) => format!("string"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"string".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lang/expr.rs:53:32 [INFO] [stdout] | [INFO] [stdout] 53 | Value::Bool(_x) => format!("bool"), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"bool".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lang/expr.rs:54:26 [INFO] [stdout] | [INFO] [stdout] 54 | Value::Do => format!("do"), [INFO] [stdout] | ^^^^^^^^^^^^^ help: consider using `.to_string()`: `"do".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lang/expr.rs:55:27 [INFO] [stdout] | [INFO] [stdout] 55 | Value::End => format!("end"), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"end".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lang/expr.rs:56:28 [INFO] [stdout] | [INFO] [stdout] 56 | Value::None => format!("none"), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"none".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `write!` args [INFO] [stdout] --> src/lang/expr.rs:64:52 [INFO] [stdout] | [INFO] [stdout] 64 | Value::Int(x) => write!(f, "int: {}", x.to_string()), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `write!` args [INFO] [stdout] --> src/lang/expr.rs:66:62 [INFO] [stdout] | [INFO] [stdout] 66 | Value::String(x) => write!(f, "string: \"{}\"", x.to_string()), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `write!` args [INFO] [stdout] --> src/lang/expr.rs:67:54 [INFO] [stdout] | [INFO] [stdout] 67 | Value::Bool(x) => write!(f, "bool: {}", x.to_string()), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is not `Copy`) usually take `self` by reference [INFO] [stdout] --> src/lang/expr.rs:86:22 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn to_string(self) -> String { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implementation of inherent method `to_string(&self) -> String` for type `lang::expr::Type` [INFO] [stdout] --> src/lang/expr.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 86 | / pub fn to_string(self) -> String { [INFO] [stdout] 87 | | match self { [INFO] [stdout] 88 | | Type::Do => "do".to_string(), [INFO] [stdout] 89 | | Type::Apply => "apply".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 95 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `lang::expr::Type` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/expr.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 120 | return self.value.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 120 - return self.value.clone(); [INFO] [stdout] 120 + self.value.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/expr.rs:123:9 [INFO] [stdout] | [INFO] [stdout] 123 | return self.type_of.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 123 - return self.type_of.clone(); [INFO] [stdout] 123 + self.type_of.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/expr.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 130 | return self.operator.as_ref().as_ref().unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 130 - return self.operator.as_ref().as_ref().unwrap().clone(); [INFO] [stdout] 130 + self.operator.as_ref().as_ref().unwrap().clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/expr.rs:134:9 [INFO] [stdout] | [INFO] [stdout] 134 | / return Self { [INFO] [stdout] 135 | | type_of: Type::Do, [INFO] [stdout] 136 | | operator: Box::new(Some(Expr::word(Value::String("do".to_string())))), [INFO] [stdout] 137 | | args: Box::new(Some(args)), [INFO] [stdout] 138 | | value: Value::Do, [INFO] [stdout] 139 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 134 ~ Self { [INFO] [stdout] 135 + type_of: Type::Do, [INFO] [stdout] 136 + operator: Box::new(Some(Expr::word(Value::String("do".to_string())))), [INFO] [stdout] 137 + args: Box::new(Some(args)), [INFO] [stdout] 138 + value: Value::Do, [INFO] [stdout] 139 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/expr.rs:143:9 [INFO] [stdout] | [INFO] [stdout] 143 | / return Self { [INFO] [stdout] 144 | | type_of: Type::Apply, [INFO] [stdout] 145 | | operator: Box::new(Some(op)), [INFO] [stdout] 146 | | args: Box::new(Some(args)), [INFO] [stdout] 147 | | value: Value::None, [INFO] [stdout] 148 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 143 ~ Self { [INFO] [stdout] 144 + type_of: Type::Apply, [INFO] [stdout] 145 + operator: Box::new(Some(op)), [INFO] [stdout] 146 + args: Box::new(Some(args)), [INFO] [stdout] 147 + value: Value::None, [INFO] [stdout] 148 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/expr.rs:152:9 [INFO] [stdout] | [INFO] [stdout] 152 | / return Self { [INFO] [stdout] 153 | | type_of: Type::Value, [INFO] [stdout] 154 | | operator: Box::new(None), [INFO] [stdout] 155 | | args: Box::new(None), [INFO] [stdout] 156 | | value: val, [INFO] [stdout] 157 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 152 ~ Self { [INFO] [stdout] 153 + type_of: Type::Value, [INFO] [stdout] 154 + operator: Box::new(None), [INFO] [stdout] 155 + args: Box::new(None), [INFO] [stdout] 156 + value: val, [INFO] [stdout] 157 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/expr.rs:161:9 [INFO] [stdout] | [INFO] [stdout] 161 | / return Self { [INFO] [stdout] 162 | | type_of: Type::Value, [INFO] [stdout] 163 | | operator: Box::new(Some(Expr::value(Value::String(kind.to_string())))), [INFO] [stdout] 164 | | args: Box::new(None), [INFO] [stdout] 165 | | value: val, [INFO] [stdout] 166 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 161 ~ Self { [INFO] [stdout] 162 + type_of: Type::Value, [INFO] [stdout] 163 + operator: Box::new(Some(Expr::value(Value::String(kind.to_string())))), [INFO] [stdout] 164 + args: Box::new(None), [INFO] [stdout] 165 + value: val, [INFO] [stdout] 166 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/expr.rs:170:9 [INFO] [stdout] | [INFO] [stdout] 170 | / return Self { [INFO] [stdout] 171 | | type_of: Type::Word, [INFO] [stdout] 172 | | operator: Box::new(None), [INFO] [stdout] 173 | | args: Box::new(None), [INFO] [stdout] 174 | | value: val, [INFO] [stdout] 175 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 170 ~ Self { [INFO] [stdout] 171 + type_of: Type::Word, [INFO] [stdout] 172 + operator: Box::new(None), [INFO] [stdout] 173 + args: Box::new(None), [INFO] [stdout] 174 + value: val, [INFO] [stdout] 175 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/expr.rs:179:9 [INFO] [stdout] | [INFO] [stdout] 179 | / return Self { [INFO] [stdout] 180 | | type_of: Type::Word, [INFO] [stdout] 181 | | operator: Box::new(Some(Expr::value(Value::String(kind.to_string())))), [INFO] [stdout] 182 | | args: Box::new(None), [INFO] [stdout] 183 | | value: val, [INFO] [stdout] 184 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 179 ~ Self { [INFO] [stdout] 180 + type_of: Type::Word, [INFO] [stdout] 181 + operator: Box::new(Some(Expr::value(Value::String(kind.to_string())))), [INFO] [stdout] 182 + args: Box::new(None), [INFO] [stdout] 183 + value: val, [INFO] [stdout] 184 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/expr.rs:188:9 [INFO] [stdout] | [INFO] [stdout] 188 | / return Self { [INFO] [stdout] 189 | | type_of: Type::None, [INFO] [stdout] 190 | | value: Value::None, [INFO] [stdout] 191 | | operator: Box::new(None), [INFO] [stdout] 192 | | args: Box::new(None), [INFO] [stdout] 193 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 188 ~ Self { [INFO] [stdout] 189 + type_of: Type::None, [INFO] [stdout] 190 + value: Value::None, [INFO] [stdout] 191 + operator: Box::new(None), [INFO] [stdout] 192 + args: Box::new(None), [INFO] [stdout] 193 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implementation of inherent method `to_string(&self) -> String` for type `lang::expr::Expr` [INFO] [stdout] --> src/lang/expr.rs:200:5 [INFO] [stdout] | [INFO] [stdout] 200 | / pub fn to_string(&self) -> String { [INFO] [stdout] 201 | | return format!( [INFO] [stdout] 202 | | "{{{:?} op:{:?} args {:#?} val:{:?}}}", [INFO] [stdout] 203 | | self.type_of, self.operator, self.args, self.value [INFO] [stdout] 204 | | ); [INFO] [stdout] 205 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `lang::expr::Expr` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/expr.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | / return format!( [INFO] [stdout] 202 | | "{{{:?} op:{:?} args {:#?} val:{:?}}}", [INFO] [stdout] 203 | | self.type_of, self.operator, self.args, self.value [INFO] [stdout] 204 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 201 ~ format!( [INFO] [stdout] 202 + "{{{:?} op:{:?} args {:#?} val:{:?}}}", [INFO] [stdout] 203 + self.type_of, self.operator, self.args, self.value [INFO] [stdout] 204 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/lang/specialforms.rs:23:14 [INFO] [stdout] | [INFO] [stdout] 23 | pub map: HashMap< [INFO] [stdout] | ______________^ [INFO] [stdout] 24 | | String, [INFO] [stdout] 25 | | fn(&mut evaluate::Evaluate, &Vec, &mut Scope) -> Value, [INFO] [stdout] 26 | | >, [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | return Value::Bool(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 51 - return Value::Bool(true); [INFO] [stdout] 51 + Value::Bool(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:34:15 [INFO] [stdout] | [INFO] [stdout] 34 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 34 - args: &Vec, [INFO] [stdout] 34 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:37:26 [INFO] [stdout] | [INFO] [stdout] 37 | if args.len() != (1 as usize) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `1_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | return Value::Bool(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 73 - return Value::Bool(true); [INFO] [stdout] 73 + Value::Bool(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:56:15 [INFO] [stdout] | [INFO] [stdout] 56 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 56 - args: &Vec, [INFO] [stdout] 56 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:59:26 [INFO] [stdout] | [INFO] [stdout] 59 | if args.len() != (1 as usize) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `1_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | return Value::Bool(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 93 - return Value::Bool(true); [INFO] [stdout] 93 + Value::Bool(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:77:15 [INFO] [stdout] | [INFO] [stdout] 77 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 77 - args: &Vec, [INFO] [stdout] 77 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:80:26 [INFO] [stdout] | [INFO] [stdout] 80 | if args.len() != (1 as usize) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `1_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | return eval.evaluate(args[0].clone(), scope); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 106 - return eval.evaluate(args[0].clone(), scope); [INFO] [stdout] 106 + eval.evaluate(args[0].clone(), scope) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:98:15 [INFO] [stdout] | [INFO] [stdout] 98 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 98 - args: &Vec, [INFO] [stdout] 98 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:101:26 [INFO] [stdout] | [INFO] [stdout] 101 | if args.len() != (1 as usize) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `1_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | return Value::Bool(false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 124 - return Value::Bool(false); [INFO] [stdout] 124 + Value::Bool(false) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:111:15 [INFO] [stdout] | [INFO] [stdout] 111 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 111 - args: &Vec, [INFO] [stdout] 111 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:140:9 [INFO] [stdout] | [INFO] [stdout] 140 | return Value::Bool(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 140 - return Value::Bool(true); [INFO] [stdout] 140 + Value::Bool(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:129:15 [INFO] [stdout] | [INFO] [stdout] 129 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 129 - args: &Vec, [INFO] [stdout] 129 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:132:26 [INFO] [stdout] | [INFO] [stdout] 132 | if args.len() != (2 as usize) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `2_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:157:9 [INFO] [stdout] | [INFO] [stdout] 157 | return value; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 157 - return value; [INFO] [stdout] 157 + value [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:181:9 [INFO] [stdout] | [INFO] [stdout] 181 | return value; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 181 - return value; [INFO] [stdout] 181 + value [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:162:15 [INFO] [stdout] | [INFO] [stdout] 162 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 162 - args: &Vec, [INFO] [stdout] 162 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:165:26 [INFO] [stdout] | [INFO] [stdout] 165 | if args.len() != (2 as usize) || args[0].type_of != Type::Word { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `2_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:205:9 [INFO] [stdout] | [INFO] [stdout] 205 | return value; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 205 - return value; [INFO] [stdout] 205 + value [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:186:15 [INFO] [stdout] | [INFO] [stdout] 186 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 186 - args: &Vec, [INFO] [stdout] 186 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:189:26 [INFO] [stdout] | [INFO] [stdout] 189 | if args.len() != (2 as usize) || args[0].type_of != Type::Word { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `2_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:228:9 [INFO] [stdout] | [INFO] [stdout] 228 | return value; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 228 - return value; [INFO] [stdout] 228 + value [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:210:15 [INFO] [stdout] | [INFO] [stdout] 210 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 210 - args: &Vec, [INFO] [stdout] 210 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:213:26 [INFO] [stdout] | [INFO] [stdout] 213 | if args.len() != (2 as usize) || args[0].type_of != Type::Word { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `2_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:246:17 [INFO] [stdout] | [INFO] [stdout] 246 | return Value::String(s1.to_string() + &s2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 246 - return Value::String(s1.to_string() + &s2); [INFO] [stdout] 246 + Value::String(s1.to_string() + &s2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:249:17 [INFO] [stdout] | [INFO] [stdout] 249 | return Value::String(i1.to_string() + &s2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 249 - return Value::String(i1.to_string() + &s2); [INFO] [stdout] 249 + Value::String(i1.to_string() + &s2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:252:17 [INFO] [stdout] | [INFO] [stdout] 252 | return Value::String(s1.to_string() + &i2.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 252 - return Value::String(s1.to_string() + &i2.to_string()); [INFO] [stdout] 252 + Value::String(s1.to_string() + &i2.to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:255:17 [INFO] [stdout] | [INFO] [stdout] 255 | return Value::Int(i1 + i2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 255 - return Value::Int(i1 + i2); [INFO] [stdout] 255 + Value::Int(i1 + i2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:233:15 [INFO] [stdout] | [INFO] [stdout] 233 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 233 - args: &Vec, [INFO] [stdout] 233 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:236:26 [INFO] [stdout] | [INFO] [stdout] 236 | if args.len() != (2 as usize) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `2_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/specialforms.rs:246:55 [INFO] [stdout] | [INFO] [stdout] 246 | return Value::String(s1.to_string() + &s2); [INFO] [stdout] | ^^^ help: change this to: `s2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/specialforms.rs:249:55 [INFO] [stdout] | [INFO] [stdout] 249 | return Value::String(i1.to_string() + &s2); [INFO] [stdout] | ^^^ help: change this to: `s2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:274:9 [INFO] [stdout] | [INFO] [stdout] 274 | return Value::Int(i1 - i2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 274 - return Value::Int(i1 - i2); [INFO] [stdout] 274 + Value::Int(i1 - i2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:286:17 [INFO] [stdout] | [INFO] [stdout] 286 | return Value::String(s1.repeat(s2 as usize)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 286 - return Value::String(s1.repeat(s2 as usize)); [INFO] [stdout] 286 + Value::String(s1.repeat(s2 as usize)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:289:17 [INFO] [stdout] | [INFO] [stdout] 289 | return Value::Int(i1 * i2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 289 - return Value::Int(i1 * i2); [INFO] [stdout] 289 + Value::Int(i1 * i2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:278:15 [INFO] [stdout] | [INFO] [stdout] 278 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 278 - args: &Vec, [INFO] [stdout] 278 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:303:9 [INFO] [stdout] | [INFO] [stdout] 303 | return Value::Int(i1 / i2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 303 - return Value::Int(i1 / i2); [INFO] [stdout] 303 + Value::Int(i1 / i2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:312:9 [INFO] [stdout] | [INFO] [stdout] 312 | return Value::Int(i1 % i2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 312 - return Value::Int(i1 % i2); [INFO] [stdout] 312 + Value::Int(i1 % i2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:321:9 [INFO] [stdout] | [INFO] [stdout] 321 | return Value::Bool(i1 == i2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 321 - return Value::Bool(i1 == i2); [INFO] [stdout] 321 + Value::Bool(i1 == i2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:330:9 [INFO] [stdout] | [INFO] [stdout] 330 | return Value::Bool(i1 != i2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 330 - return Value::Bool(i1 != i2); [INFO] [stdout] 330 + Value::Bool(i1 != i2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:339:9 [INFO] [stdout] | [INFO] [stdout] 339 | return Value::Bool(i1 > i2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 339 - return Value::Bool(i1 > i2); [INFO] [stdout] 339 + Value::Bool(i1 > i2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:348:9 [INFO] [stdout] | [INFO] [stdout] 348 | return Value::Bool(i1 < i2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 348 - return Value::Bool(i1 < i2); [INFO] [stdout] 348 + Value::Bool(i1 < i2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:364:13 [INFO] [stdout] | [INFO] [stdout] 364 | return Value::Bool(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 364 - return Value::Bool(true); [INFO] [stdout] 364 + Value::Bool(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:366:13 [INFO] [stdout] | [INFO] [stdout] 366 | return Value::Bool(false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 366 - return Value::Bool(false); [INFO] [stdout] 366 + Value::Bool(false) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:353:15 [INFO] [stdout] | [INFO] [stdout] 353 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 353 - args: &Vec, [INFO] [stdout] 353 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:356:26 [INFO] [stdout] | [INFO] [stdout] 356 | if args.len() != (2 as usize) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `2_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:383:13 [INFO] [stdout] | [INFO] [stdout] 383 | return Value::Bool(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 383 - return Value::Bool(true); [INFO] [stdout] 383 + Value::Bool(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:385:13 [INFO] [stdout] | [INFO] [stdout] 385 | return Value::Bool(false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 385 - return Value::Bool(false); [INFO] [stdout] 385 + Value::Bool(false) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:372:15 [INFO] [stdout] | [INFO] [stdout] 372 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 372 - args: &Vec, [INFO] [stdout] 372 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:375:26 [INFO] [stdout] | [INFO] [stdout] 375 | if args.len() != (2 as usize) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `2_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:401:13 [INFO] [stdout] | [INFO] [stdout] 401 | return Value::Bool(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 401 - return Value::Bool(true); [INFO] [stdout] 401 + Value::Bool(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:403:13 [INFO] [stdout] | [INFO] [stdout] 403 | return Value::Bool(false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 403 - return Value::Bool(false); [INFO] [stdout] 403 + Value::Bool(false) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:391:15 [INFO] [stdout] | [INFO] [stdout] 391 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 391 - args: &Vec, [INFO] [stdout] 391 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:394:26 [INFO] [stdout] | [INFO] [stdout] 394 | if args.len() != (1 as usize) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `1_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:414:9 [INFO] [stdout] | [INFO] [stdout] 414 | return Value::Bool(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 414 - return Value::Bool(true); [INFO] [stdout] 414 + Value::Bool(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:409:15 [INFO] [stdout] | [INFO] [stdout] 409 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 409 - args: &Vec, [INFO] [stdout] 409 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:437:9 [INFO] [stdout] | [INFO] [stdout] 437 | return (arg1.parse::().unwrap(), arg2.parse::().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 437 - return (arg1.parse::().unwrap(), arg2.parse::().unwrap()); [INFO] [stdout] 437 + (arg1.parse::().unwrap(), arg2.parse::().unwrap()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lang/specialforms.rs:422:15 [INFO] [stdout] | [INFO] [stdout] 422 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 422 - args: &Vec, [INFO] [stdout] 422 + args: &[Expr], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/lang/specialforms.rs:425:26 [INFO] [stdout] | [INFO] [stdout] 425 | if args.len() != (2 as usize) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `2_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:445:24 [INFO] [stdout] | [INFO] [stdout] 445 | Some(f) => return *f, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 445 ~ Some(f) => *f, [INFO] [stdout] 446 | None => panic!(), [INFO] [stdout] 447 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:501:9 [INFO] [stdout] | [INFO] [stdout] 501 | return Self { map: temp }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 501 - return Self { map: temp }; [INFO] [stdout] 501 + Self { map: temp } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/lang/specialforms.rs:451:23 [INFO] [stdout] | [INFO] [stdout] 451 | let mut temp: HashMap< [INFO] [stdout] | _______________________^ [INFO] [stdout] 452 | | _, [INFO] [stdout] 453 | | fn(&mut evaluate::Evaluate, &Vec, &mut Scope) -> Value, [INFO] [stdout] 454 | | > = HashMap::new(); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/specialforms.rs:497:17 [INFO] [stdout] | [INFO] [stdout] 497 | return Value::Bool(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 497 - return Value::Bool(true); [INFO] [stdout] 497 + Value::Bool(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/lexer.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | / return Self { [INFO] [stdout] 24 | | dict: Dict::new(), [INFO] [stdout] 25 | | source: soruce, [INFO] [stdout] 26 | | i: 0, [INFO] [stdout] ... | [INFO] [stdout] 36 | | bc: 0, [INFO] [stdout] 37 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 23 ~ Self { [INFO] [stdout] 24 + dict: Dict::new(), [INFO] [stdout] 25 + source: soruce, [INFO] [stdout] 26 + i: 0, [INFO] [stdout] 27 + key: String::from(""), [INFO] [stdout] 28 + match_c: '(', [INFO] [stdout] 29 + is_control: false, [INFO] [stdout] 30 + current: vec![], [INFO] [stdout] 31 + list: vec![], [INFO] [stdout] 32 + temp: vec![], [INFO] [stdout] 33 + cond: Expr::empty(), [INFO] [stdout] 34 + ce: Expr::empty(), [INFO] [stdout] 35 + pc: 0, [INFO] [stdout] 36 + bc: 0, [INFO] [stdout] 37 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/lexer.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | return Expr::apply(Expr::word(Value::Do), self.parse()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 42 - return Expr::apply(Expr::word(Value::Do), self.parse()); [INFO] [stdout] 42 + Expr::apply(Expr::word(Value::Do), self.parse()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/lexer.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | return self.list.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 61 - return self.list.clone(); [INFO] [stdout] 61 + self.list.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/lang/dict.rs:6:14 [INFO] [stdout] | [INFO] [stdout] 6 | pub map: HashMap) -> Expr, usize)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | return part[0].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 13 - return part[0].clone(); [INFO] [stdout] 13 + part[0].clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | return Dict::value_int(new_part); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 66 - return Dict::value_int(new_part); [INFO] [stdout] 66 + Dict::value_int(new_part) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lang/dict.rs:22:17 [INFO] [stdout] | [INFO] [stdout] 22 | / if !expr.operator.is_none() { [INFO] [stdout] 23 | | if expr.get_operator().get_value() == Value::to_stringv("math") { [INFO] [stdout] 24 | | if [ [INFO] [stdout] 25 | | Value::to_stringv("*"), [INFO] [stdout] ... | [INFO] [stdout] 46 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 22 ~ if !expr.operator.is_none() [INFO] [stdout] 23 ~ && expr.get_operator().get_value() == Value::to_stringv("math") { [INFO] [stdout] 24 | if [ [INFO] [stdout] ... [INFO] [stdout] 44 | } [INFO] [stdout] 45 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lang/dict.rs:47:17 [INFO] [stdout] | [INFO] [stdout] 47 | i = i - 1; [INFO] [stdout] | ^^^^^^^^^ help: replace it with: `i -= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lang/dict.rs:64:17 [INFO] [stdout] | [INFO] [stdout] 64 | i = i + 1; [INFO] [stdout] | ^^^^^^^^^ help: replace it with: `i += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:128:13 [INFO] [stdout] | [INFO] [stdout] 128 | / return Expr::apply( [INFO] [stdout] 129 | | part[l].clone(), [INFO] [stdout] 130 | | Vec::from([ [INFO] [stdout] 131 | | Dict::value_bool(part[..l].to_vec()), [INFO] [stdout] 132 | | Dict::value_bool(part[l + 1..].to_vec()), [INFO] [stdout] 133 | | ]), [INFO] [stdout] 134 | | ); [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 128 ~ Expr::apply( [INFO] [stdout] 129 + part[l].clone(), [INFO] [stdout] 130 + Vec::from([ [INFO] [stdout] 131 + Dict::value_bool(part[..l].to_vec()), [INFO] [stdout] 132 + Dict::value_bool(part[l + 1..].to_vec()), [INFO] [stdout] 133 + ]), [INFO] [stdout] 134 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:161:13 [INFO] [stdout] | [INFO] [stdout] 161 | return Dict::value_bool(new_part); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 161 - return Dict::value_bool(new_part); [INFO] [stdout] 161 + Dict::value_bool(new_part) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lang/dict.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | / if !part[0].operator.is_none() { [INFO] [stdout] 75 | | if part[0].get_operator().get_value() == Value::to_stringv("bool") [INFO] [stdout] 76 | | || part[0].get_operator().get_operator().get_value() == Value::to_stringv("comp") [INFO] [stdout] ... | [INFO] [stdout] 80 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 74 ~ if !part[0].operator.is_none() [INFO] [stdout] 75 ~ && (part[0].get_operator().get_value() == Value::to_stringv("bool") [INFO] [stdout] 76 ~ || part[0].get_operator().get_operator().get_value() == Value::to_stringv("comp")) [INFO] [stdout] 77 | { [INFO] [stdout] 78 | return part[0].clone(); [INFO] [stdout] 79 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lang/dict.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | / if !part[0].operator.is_none() { [INFO] [stdout] 87 | | if part[0].get_value() == Value::to_stringv("!") { [INFO] [stdout] 88 | | return Expr::apply(part[0].clone(), vec![part[1].clone()]); [INFO] [stdout] 89 | | } [INFO] [stdout] 90 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 86 ~ if !part[0].operator.is_none() [INFO] [stdout] 87 ~ && part[0].get_value() == Value::to_stringv("!") { [INFO] [stdout] 88 | return Expr::apply(part[0].clone(), vec![part[1].clone()]); [INFO] [stdout] 89 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lang/dict.rs:103:13 [INFO] [stdout] | [INFO] [stdout] 103 | / if !expr.operator.is_none() { [INFO] [stdout] 104 | | if expr.get_operator().get_value() == Value::to_stringv("comp") [INFO] [stdout] 105 | | || expr.get_operator().get_value() == Value::to_stringv("log") [INFO] [stdout] ... | [INFO] [stdout] 123 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 103 ~ if !expr.operator.is_none() [INFO] [stdout] 104 ~ && (expr.get_operator().get_value() == Value::to_stringv("comp") [INFO] [stdout] 105 ~ || expr.get_operator().get_value() == Value::to_stringv("log")) [INFO] [stdout] 106 | { [INFO] [stdout] ... [INFO] [stdout] 121 | } [INFO] [stdout] 122 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lang/dict.rs:124:13 [INFO] [stdout] | [INFO] [stdout] 124 | i = i - 1; [INFO] [stdout] | ^^^^^^^^^ help: replace it with: `i -= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/lang/dict.rs:146:21 [INFO] [stdout] | [INFO] [stdout] 146 | let apply; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `apply` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 146 ~ [INFO] [stdout] 147 ~ let apply = if is_not { [INFO] [stdout] 148 ~ Expr::apply(part[l].clone(), Vec::from([part[l + 1].clone()])) [INFO] [stdout] 149 | } else { [INFO] [stdout] 150 ~ Expr::apply( [INFO] [stdout] 151 | part[l].clone(), [INFO] [stdout] 152 | Vec::from([part[l - 1].clone(), part[l + 1].clone()]), [INFO] [stdout] 153 ~ ) [INFO] [stdout] 154 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lang/dict.rs:159:17 [INFO] [stdout] | [INFO] [stdout] 159 | i = i + 1; [INFO] [stdout] | ^^^^^^^^^ help: replace it with: `i += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:168:13 [INFO] [stdout] | [INFO] [stdout] 168 | return part[0].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 168 - return part[0].clone(); [INFO] [stdout] 168 + part[0].clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:215:13 [INFO] [stdout] | [INFO] [stdout] 215 | return Dict::value_int(new_part); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 215 - return Dict::value_int(new_part); [INFO] [stdout] 215 + Dict::value_int(new_part) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lang/dict.rs:177:17 [INFO] [stdout] | [INFO] [stdout] 177 | / if !expr.operator.is_none() { [INFO] [stdout] 178 | | if expr.get_operator().get_value() == Value::to_stringv("math") { [INFO] [stdout] 179 | | if [Value::to_stringv("*")].contains(&expr.get_value()) { [INFO] [stdout] 180 | | if mdr_op { [INFO] [stdout] ... | [INFO] [stdout] 195 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 177 ~ if !expr.operator.is_none() [INFO] [stdout] 178 ~ && expr.get_operator().get_value() == Value::to_stringv("math") { [INFO] [stdout] 179 | if [Value::to_stringv("*")].contains(&expr.get_value()) { [INFO] [stdout] ... [INFO] [stdout] 193 | } [INFO] [stdout] 194 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lang/dict.rs:196:17 [INFO] [stdout] | [INFO] [stdout] 196 | i = i - 1; [INFO] [stdout] | ^^^^^^^^^ help: replace it with: `i -= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lang/dict.rs:213:17 [INFO] [stdout] | [INFO] [stdout] 213 | i = i + 1; [INFO] [stdout] | ^^^^^^^^^ help: replace it with: `i += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:240:9 [INFO] [stdout] | [INFO] [stdout] 240 | return Expr::apply(Expr::word(Value::to_stringv("int")), list); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 240 - return Expr::apply(Expr::word(Value::to_stringv("int")), list); [INFO] [stdout] 240 + Expr::apply(Expr::word(Value::to_stringv("int")), list) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lang/dict.rs:231:12 [INFO] [stdout] | [INFO] [stdout] 231 | if lexed.get_args().len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!lexed.get_args().is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:252:9 [INFO] [stdout] | [INFO] [stdout] 252 | return Expr::apply(Expr::word(Value::to_stringv("int")), list); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 252 - return Expr::apply(Expr::word(Value::to_stringv("int")), list); [INFO] [stdout] 252 + Expr::apply(Expr::word(Value::to_stringv("int")), list) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:265:9 [INFO] [stdout] | [INFO] [stdout] 265 | return Expr::apply(Expr::word(Value::to_stringv("string")), list); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 265 - return Expr::apply(Expr::word(Value::to_stringv("string")), list); [INFO] [stdout] 265 + Expr::apply(Expr::word(Value::to_stringv("string")), list) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:269:9 [INFO] [stdout] | [INFO] [stdout] 269 | / return Expr::apply( [INFO] [stdout] 270 | | Expr::word(Value::to_stringv("output")), [INFO] [stdout] 271 | | Vec::from([args[0].clone()]), [INFO] [stdout] 272 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 269 ~ Expr::apply( [INFO] [stdout] 270 + Expr::word(Value::to_stringv("output")), [INFO] [stdout] 271 + Vec::from([args[0].clone()]), [INFO] [stdout] 272 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:276:9 [INFO] [stdout] | [INFO] [stdout] 276 | / return Expr::apply( [INFO] [stdout] 277 | | Expr::word(Value::to_stringv("outputln")), [INFO] [stdout] 278 | | Vec::from([args[0].clone()]), [INFO] [stdout] 279 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 276 ~ Expr::apply( [INFO] [stdout] 277 + Expr::word(Value::to_stringv("outputln")), [INFO] [stdout] 278 + Vec::from([args[0].clone()]), [INFO] [stdout] 279 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:283:9 [INFO] [stdout] | [INFO] [stdout] 283 | / return Expr::apply( [INFO] [stdout] 284 | | Expr::word(Value::to_stringv("sleep")), [INFO] [stdout] 285 | | Vec::from([args[0].clone()]), [INFO] [stdout] 286 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 283 ~ Expr::apply( [INFO] [stdout] 284 + Expr::word(Value::to_stringv("sleep")), [INFO] [stdout] 285 + Vec::from([args[0].clone()]), [INFO] [stdout] 286 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:290:9 [INFO] [stdout] | [INFO] [stdout] 290 | / return Expr::apply( [INFO] [stdout] 291 | | Expr::word(Value::to_stringv("return")), [INFO] [stdout] 292 | | Vec::from([args[0].clone()]), [INFO] [stdout] 293 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 290 ~ Expr::apply( [INFO] [stdout] 291 + Expr::word(Value::to_stringv("return")), [INFO] [stdout] 292 + Vec::from([args[0].clone()]), [INFO] [stdout] 293 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:309:9 [INFO] [stdout] | [INFO] [stdout] 309 | return Expr::apply(Expr::word(Value::to_stringv("if")), vec![cond, stat]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 309 - return Expr::apply(Expr::word(Value::to_stringv("if")), vec![cond, stat]); [INFO] [stdout] 309 + Expr::apply(Expr::word(Value::to_stringv("if")), vec![cond, stat]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lang/dict.rs:303:12 [INFO] [stdout] | [INFO] [stdout] 303 | if exprs.len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!exprs.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:329:9 [INFO] [stdout] | [INFO] [stdout] 329 | return Some(fun); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 329 - return Some(fun); [INFO] [stdout] 329 + Some(fun) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:341:9 [INFO] [stdout] | [INFO] [stdout] 341 | return fun; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 341 - return fun; [INFO] [stdout] 341 + fun [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/dict.rs:387:9 [INFO] [stdout] | [INFO] [stdout] 387 | return Self { map: temp }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 387 - return Self { map: temp }; [INFO] [stdout] 387 + Self { map: temp } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/lang/dict.rs:375:23 [INFO] [stdout] | [INFO] [stdout] 375 | let mut temp: HashMap<_, (fn(Vec) -> Expr, usize)> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NEWL` contains a capitalized acronym [INFO] [stdout] --> src/lang/tokenizer.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | NEWL = 13, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Newl` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/tokenizer.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | / return Self { [INFO] [stdout] 43 | | i: 1, [INFO] [stdout] 44 | | char: char, [INFO] [stdout] 45 | | lines_expr: vec![], [INFO] [stdout] ... | [INFO] [stdout] 50 | | error_handler: ErrorHandler::new(1, 0, String::from("Tokenizer"), con), [INFO] [stdout] 51 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 42 ~ Self { [INFO] [stdout] 43 + i: 1, [INFO] [stdout] 44 + char: char, [INFO] [stdout] 45 + lines_expr: vec![], [INFO] [stdout] 46 + current: vec![c], [INFO] [stdout] 47 + current_type: ct, [INFO] [stdout] 48 + is_string: false, [INFO] [stdout] 49 + pos: vec![], [INFO] [stdout] 50 + error_handler: ErrorHandler::new(1, 0, String::from("Tokenizer"), con), [INFO] [stdout] 51 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/tokenizer.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | / return match tp { [INFO] [stdout] 57 | | Type::String => Expr::value(Value::to_stringv(&input)), [INFO] [stdout] 58 | | Type::Number => Expr::value(Value::to_intv(&input)), [INFO] [stdout] 59 | | Type::Punc => Expr::sp_word(Value::to_stringv(&input), "punc"), [INFO] [stdout] ... | [INFO] [stdout] 69 | | _ => Expr::word(Value::to_stringv(&input)), [INFO] [stdout] 70 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 56 ~ match tp { [INFO] [stdout] 57 + Type::String => Expr::value(Value::to_stringv(&input)), [INFO] [stdout] 58 + Type::Number => Expr::value(Value::to_intv(&input)), [INFO] [stdout] 59 + Type::Punc => Expr::sp_word(Value::to_stringv(&input), "punc"), [INFO] [stdout] 60 + Type::Asgmt => Expr::sp_word(Value::to_stringv(&input), "asgmt"), [INFO] [stdout] 61 + Type::Par => Expr::sp_value(Value::to_stringv(&input), "par"), [INFO] [stdout] 62 + Type::Sasgmt => Expr::sp_word(Value::to_stringv(&input), "sasgmt"), [INFO] [stdout] 63 + Type::Comp => Expr::sp_word(Value::to_stringv(&input), "comp"), [INFO] [stdout] 64 + Type::Log => Expr::sp_word(Value::to_stringv(&input), "log"), [INFO] [stdout] 65 + Type::Math => Expr::sp_word(Value::to_stringv(&input), "math"), [INFO] [stdout] 66 + Type::Bool => Expr::sp_value(Value::to_boolv(&input), "bool"), [INFO] [stdout] 67 + Type::Ctrl => Expr::sp_word(Value::to_stringv(&input), "ctrl"), [INFO] [stdout] 68 + Type::Key => Expr::sp_value(Value::to_stringv(&input), "key"), [INFO] [stdout] 69 + _ => Expr::word(Value::to_stringv(&input)), [INFO] [stdout] 70 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:55:32 [INFO] [stdout] | [INFO] [stdout] 55 | let tp = self.get_type(&input); [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:57:59 [INFO] [stdout] | [INFO] [stdout] 57 | Type::String => Expr::value(Value::to_stringv(&input)), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:58:56 [INFO] [stdout] | [INFO] [stdout] 58 | Type::Number => Expr::value(Value::to_intv(&input)), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:59:59 [INFO] [stdout] | [INFO] [stdout] 59 | Type::Punc => Expr::sp_word(Value::to_stringv(&input), "punc"), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:60:60 [INFO] [stdout] | [INFO] [stdout] 60 | Type::Asgmt => Expr::sp_word(Value::to_stringv(&input), "asgmt"), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:61:59 [INFO] [stdout] | [INFO] [stdout] 61 | Type::Par => Expr::sp_value(Value::to_stringv(&input), "par"), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:62:61 [INFO] [stdout] | [INFO] [stdout] 62 | Type::Sasgmt => Expr::sp_word(Value::to_stringv(&input), "sasgmt"), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:63:59 [INFO] [stdout] | [INFO] [stdout] 63 | Type::Comp => Expr::sp_word(Value::to_stringv(&input), "comp"), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:64:58 [INFO] [stdout] | [INFO] [stdout] 64 | Type::Log => Expr::sp_word(Value::to_stringv(&input), "log"), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:65:59 [INFO] [stdout] | [INFO] [stdout] 65 | Type::Math => Expr::sp_word(Value::to_stringv(&input), "math"), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:66:58 [INFO] [stdout] | [INFO] [stdout] 66 | Type::Bool => Expr::sp_value(Value::to_boolv(&input), "bool"), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:67:59 [INFO] [stdout] | [INFO] [stdout] 67 | Type::Ctrl => Expr::sp_word(Value::to_stringv(&input), "ctrl"), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:68:59 [INFO] [stdout] | [INFO] [stdout] 68 | Type::Key => Expr::sp_value(Value::to_stringv(&input), "key"), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:69:47 [INFO] [stdout] | [INFO] [stdout] 69 | _ => Expr::word(Value::to_stringv(&input)), [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/tokenizer.rs:134:13 [INFO] [stdout] | [INFO] [stdout] 134 | return Type::Word; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 134 - return Type::Word; [INFO] [stdout] 134 + Type::Word [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/lang/tokenizer.rs:87:12 [INFO] [stdout] | [INFO] [stdout] 87 | if input == "" { [INFO] [stdout] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/tokenizer.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | return (self.lines_expr.clone(), self.pos.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 154 - return (self.lines_expr.clone(), self.pos.clone()); [INFO] [stdout] 154 + (self.lines_expr.clone(), self.pos.clone()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lang/tokenizer.rs:150:12 [INFO] [stdout] | [INFO] [stdout] 150 | if self.current.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.current.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:160:35 [INFO] [stdout] | [INFO] [stdout] 160 | let expr = self.make_expr(&input); [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lang/tokenizer.rs:174:58 [INFO] [stdout] | [INFO] [stdout] 174 | let expr = Expr::value(Value::to_stringv(&input)); [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lang/tokenizer.rs:180:20 [INFO] [stdout] | [INFO] [stdout] 180 | if self.current.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.current.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lang/tokenizer.rs:187:16 [INFO] [stdout] | [INFO] [stdout] 187 | if self.current.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.current.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lang/tokenizer.rs:195:16 [INFO] [stdout] | [INFO] [stdout] 195 | if self.current.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.current.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lang/tokenizer.rs:199:16 [INFO] [stdout] | [INFO] [stdout] 199 | if self.current.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.current.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lang/tokenizer.rs:205:20 [INFO] [stdout] | [INFO] [stdout] 205 | if self.current.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.current.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lang/tokenizer.rs:220:24 [INFO] [stdout] | [INFO] [stdout] 220 | if self.current.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.current.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lang/errorhandler.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 44 | if self.lines_len.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.lines_len.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/lang/errorhandler.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] = note: `#[warn(clippy::println_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/errorhandler.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | return (self.cur_line, self.cur_char); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 70 - return (self.cur_line, self.cur_char); [INFO] [stdout] 70 + (self.cur_line, self.cur_char) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/preprocesser.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | / return Self { [INFO] [stdout] 15 | | tokens: tokens, [INFO] [stdout] 16 | | pos: pos, [INFO] [stdout] 17 | | i: 0, [INFO] [stdout] ... | [INFO] [stdout] 20 | | error_handler: ErrorHandler::new(1, 0, String::from("Preprocesser"), con), [INFO] [stdout] 21 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 14 ~ Self { [INFO] [stdout] 15 + tokens: tokens, [INFO] [stdout] 16 + pos: pos, [INFO] [stdout] 17 + i: 0, [INFO] [stdout] 18 + bc: 0, [INFO] [stdout] 19 + pc: 0, [INFO] [stdout] 20 + error_handler: ErrorHandler::new(1, 0, String::from("Preprocesser"), con), [INFO] [stdout] 21 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/preprocesser.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | return self.tokens.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 53 - return self.tokens.clone(); [INFO] [stdout] 53 + self.tokens.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/lang/preprocesser.rs:41:47 [INFO] [stdout] | [INFO] [stdout] 41 | self.error_handler.throw_error_untraced(String::from(fm)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `fm` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/lang/preprocesser.rs:44:47 [INFO] [stdout] | [INFO] [stdout] 44 | self.error_handler.throw_error_untraced(String::from(fm)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `fm` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/lang/preprocesser.rs:48:47 [INFO] [stdout] | [INFO] [stdout] 48 | self.error_handler.throw_error_untraced(String::from(fm)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `fm` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/lang/preprocesser.rs:51:47 [INFO] [stdout] | [INFO] [stdout] 51 | self.error_handler.throw_error_untraced(String::from(fm)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `fm` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/preprocesser.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | return (b, p); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 76 - return (b, p); [INFO] [stdout] 76 + (b, p) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lang/preprocesser.rs:57:26 [INFO] [stdout] | [INFO] [stdout] 57 | let expr = self.tokens[i as usize].clone(); [INFO] [stdout] | ^^^^^^^^^^ help: try: `{ i }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/scope.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 23 - return None; [INFO] [stdout] 23 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/lang/scope.rs:45:8 [INFO] [stdout] | [INFO] [stdout] 45 | if cond.len() % 2 != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace with: `!cond.len().is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lang/scope.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 60 - return None; [INFO] [stdout] 60 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `pos` [INFO] [stdout] --> src/lang/mod.rs:15:16 [INFO] [stdout] | [INFO] [stdout] 15 | for i in 0..pos.len() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 15 - for i in 0..pos.len() { [INFO] [stdout] 15 + for in &pos { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `ch` [INFO] [stdout] --> src/lang/mod.rs:28:16 [INFO] [stdout] | [INFO] [stdout] 28 | for i in 0..ch.len() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 28 - for i in 0..ch.len() { [INFO] [stdout] 28 + for in &ch { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:49:8 [INFO] [stdout] | [INFO] [stdout] 49 | if !(split[split.len() - 1] == "lang") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(split[split.len() - 1] != "lang")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.74s [INFO] running `Command { std: "docker" "inspect" "fb66be6bb57ac9da445671bdbd0ee59fcc07b1ba7ee8b4c20bbff8d3ac5be8bf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fb66be6bb57ac9da445671bdbd0ee59fcc07b1ba7ee8b4c20bbff8d3ac5be8bf", kill_on_drop: false }` [INFO] [stdout] fb66be6bb57ac9da445671bdbd0ee59fcc07b1ba7ee8b4c20bbff8d3ac5be8bf