[INFO] updating cached repository sha0coder/spocky [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/sha0coder/spocky [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/sha0coder/spocky" "work/ex/clippy-test-run/sources/stable/gh/sha0coder/spocky"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/sha0coder/spocky'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/sha0coder/spocky" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/sha0coder/spocky"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/sha0coder/spocky'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 4b84695852b5f89ec7e94bc9989093e47a3ee1b4 [INFO] sha for GitHub repo sha0coder/spocky: 4b84695852b5f89ec7e94bc9989093e47a3ee1b4 [INFO] validating manifest of sha0coder/spocky on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of sha0coder/spocky on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing sha0coder/spocky [INFO] finished frobbing sha0coder/spocky [INFO] frobbed toml for sha0coder/spocky written to work/ex/clippy-test-run/sources/stable/gh/sha0coder/spocky/Cargo.toml [INFO] started frobbing sha0coder/spocky [INFO] finished frobbing sha0coder/spocky [INFO] frobbed toml for sha0coder/spocky written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/sha0coder/spocky/Cargo.toml [INFO] crate sha0coder/spocky has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting sha0coder/spocky against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/sha0coder/spocky:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dclippy::into_iter_on_array" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] d030a4a0f50e6c5e7c2e8f1aa6e7922f2c4e6b60fa0039e0a9a4aa3cd36fce97 [INFO] running `"docker" "start" "-a" "d030a4a0f50e6c5e7c2e8f1aa6e7922f2c4e6b60fa0039e0a9a4aa3cd36fce97"` [INFO] [stderr] Checking memchr v1.0.2 [INFO] [stderr] Checking rand v0.4.2 [INFO] [stderr] Checking csv v0.15.0 [INFO] [stderr] Checking rand v0.3.22 [INFO] [stderr] Checking spocky v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction.rs:38:9 [INFO] [stderr] | [INFO] [stderr] 38 | return self.a; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `self.a` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction.rs:42:9 [INFO] [stderr] | [INFO] [stderr] 42 | return self.b; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `self.b` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | return self.op; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.op` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/record.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 21 | return self.hist.len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.hist.len()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/record.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | return &self.hist[n]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.hist[n]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::vec::Vec` [INFO] [stderr] --> src/trader.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::vec::Vec; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/trader.rs:8:24 [INFO] [stderr] | [INFO] [stderr] 8 | const INIT_MONEY:f32 = 100000.0; [INFO] [stderr] | ^^^^^^^^ help: consider: `100_000.0` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/trader.rs:56:9 [INFO] [stderr] | [INFO] [stderr] 56 | return self.usd; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.usd` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/trader.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | return self.eth; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.eth` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/trader.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | return self.buy.get_code_sz() + self.sell.get_code_sz(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.buy.get_code_sz() + self.sell.get_code_sz()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/trader.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | return self.usd; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.usd` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/trader.rs:77:9 [INFO] [stderr] | [INFO] [stderr] 77 | return &self.buy; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.buy` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/trader.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | return &self.sell; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.sell` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/trader.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | return self.buy.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.buy.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/trader.rs:89:9 [INFO] [stderr] | [INFO] [stderr] 89 | return self.sell.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.sell.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/trader.rs:124:9 [INFO] [stderr] | [INFO] [stderr] 124 | return trader; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `trader` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/trader.rs:167:9 [INFO] [stderr] | [INFO] [stderr] 167 | return (tr1, tr2); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(tr1, tr2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | return self.vars.len() as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.vars.len() as u8` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | return raw; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `raw` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:107:9 [INFO] [stderr] | [INFO] [stderr] 107 | return self.tv.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.tv.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:111:9 [INFO] [stderr] | [INFO] [stderr] 111 | return self.fitness; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.fitness` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:122:9 [INFO] [stderr] | [INFO] [stderr] 122 | return self.vars[i].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.vars[i].clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:126:9 [INFO] [stderr] | [INFO] [stderr] 126 | return self.code.len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.code.len()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:134:9 [INFO] [stderr] | [INFO] [stderr] 134 | return self.vars[0]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.vars[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:143:9 [INFO] [stderr] | [INFO] [stderr] 143 | return self.code.len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.code.len()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:152:9 [INFO] [stderr] | [INFO] [stderr] 152 | return rng.gen_range::(0,n); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `rng.gen_range::(0,n)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:278:9 [INFO] [stderr] | [INFO] [stderr] 278 | return opcodes; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `opcodes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:292:9 [INFO] [stderr] | [INFO] [stderr] 292 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:338:9 [INFO] [stderr] | [INFO] [stderr] 338 | return new_cpu; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `new_cpu` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:396:9 [INFO] [stderr] | [INFO] [stderr] 396 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:416:9 [INFO] [stderr] | [INFO] [stderr] 416 | return childs; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `childs` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:442:9 [INFO] [stderr] | [INFO] [stderr] 442 | return (child1,child2); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(child1,child2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/cpu.rs:559:17 [INFO] [stderr] | [INFO] [stderr] 559 | / if self.code[i].op == 0 || self.opcode_is_if(self.code[i].op) { [INFO] [stderr] 560 | | if self.code[i].a == self.code[i].b { [INFO] [stderr] 561 | | to_remove.push(i); [INFO] [stderr] 562 | | } [INFO] [stderr] 563 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 559 | if (self.code[i].op == 0 || self.opcode_is_if(self.code[i].op)) && self.code[i].a == self.code[i].b { [INFO] [stderr] 560 | to_remove.push(i); [INFO] [stderr] 561 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ga.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | return rng.gen_range::(0,n); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `rng.gen_range::(0,n)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ga.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | return sorted; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `sorted` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/ga.rs:61:24 [INFO] [stderr] | [INFO] [stderr] 61 | } else if self.population[sorted[j]].get_fitness() == self.population[sorted[k]].get_fitness() { [INFO] [stderr] | ________________________^ [INFO] [stderr] 62 | | if self.population[sorted[j]].code_sz() > self.population[sorted[k]].code_sz() { [INFO] [stderr] 63 | | k = j; [INFO] [stderr] 64 | | } [INFO] [stderr] 65 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 61 | } else if self.population[sorted[j]].get_fitness() == self.population[sorted[k]].get_fitness() && self.population[sorted[j]].code_sz() > self.population[sorted[k]].code_sz() { [INFO] [stderr] 62 | k = j; [INFO] [stderr] 63 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ga.rs:93:9 [INFO] [stderr] | [INFO] [stderr] 93 | return sum as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `sum as i32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ga.rs:109:9 [INFO] [stderr] | [INFO] [stderr] 109 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ga.rs:200:9 [INFO] [stderr] | [INFO] [stderr] 200 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction.rs:38:9 [INFO] [stderr] | [INFO] [stderr] 38 | return self.a; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `self.a` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction.rs:42:9 [INFO] [stderr] | [INFO] [stderr] 42 | return self.b; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `self.b` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | return self.op; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.op` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/record.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 21 | return self.hist.len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.hist.len()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/record.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | return &self.hist[n]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.hist[n]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::vec::Vec` [INFO] [stderr] --> src/trader.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::vec::Vec; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/trader.rs:8:24 [INFO] [stderr] | [INFO] [stderr] 8 | const INIT_MONEY:f32 = 100000.0; [INFO] [stderr] | ^^^^^^^^ help: consider: `100_000.0` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/trader.rs:56:9 [INFO] [stderr] | [INFO] [stderr] 56 | return self.usd; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.usd` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/trader.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | return self.eth; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.eth` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/trader.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | return self.buy.get_code_sz() + self.sell.get_code_sz(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.buy.get_code_sz() + self.sell.get_code_sz()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/trader.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | return self.usd; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.usd` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/trader.rs:77:9 [INFO] [stderr] | [INFO] [stderr] 77 | return &self.buy; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.buy` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/trader.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | return &self.sell; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.sell` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/trader.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | return self.buy.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.buy.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/trader.rs:89:9 [INFO] [stderr] | [INFO] [stderr] 89 | return self.sell.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.sell.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/trader.rs:124:9 [INFO] [stderr] | [INFO] [stderr] 124 | return trader; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `trader` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/trader.rs:167:9 [INFO] [stderr] | [INFO] [stderr] 167 | return (tr1, tr2); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(tr1, tr2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | return self.vars.len() as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.vars.len() as u8` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | return raw; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `raw` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:107:9 [INFO] [stderr] | [INFO] [stderr] 107 | return self.tv.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.tv.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:111:9 [INFO] [stderr] | [INFO] [stderr] 111 | return self.fitness; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.fitness` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:122:9 [INFO] [stderr] | [INFO] [stderr] 122 | return self.vars[i].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.vars[i].clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:126:9 [INFO] [stderr] | [INFO] [stderr] 126 | return self.code.len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.code.len()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:134:9 [INFO] [stderr] | [INFO] [stderr] 134 | return self.vars[0]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.vars[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:143:9 [INFO] [stderr] | [INFO] [stderr] 143 | return self.code.len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.code.len()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:152:9 [INFO] [stderr] | [INFO] [stderr] 152 | return rng.gen_range::(0,n); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `rng.gen_range::(0,n)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:278:9 [INFO] [stderr] | [INFO] [stderr] 278 | return opcodes; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `opcodes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:292:9 [INFO] [stderr] | [INFO] [stderr] 292 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:338:9 [INFO] [stderr] | [INFO] [stderr] 338 | return new_cpu; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `new_cpu` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:396:9 [INFO] [stderr] | [INFO] [stderr] 396 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:416:9 [INFO] [stderr] | [INFO] [stderr] 416 | return childs; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `childs` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu.rs:442:9 [INFO] [stderr] | [INFO] [stderr] 442 | return (child1,child2); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(child1,child2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/cpu.rs:559:17 [INFO] [stderr] | [INFO] [stderr] 559 | / if self.code[i].op == 0 || self.opcode_is_if(self.code[i].op) { [INFO] [stderr] 560 | | if self.code[i].a == self.code[i].b { [INFO] [stderr] 561 | | to_remove.push(i); [INFO] [stderr] 562 | | } [INFO] [stderr] 563 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 559 | if (self.code[i].op == 0 || self.opcode_is_if(self.code[i].op)) && self.code[i].a == self.code[i].b { [INFO] [stderr] 560 | to_remove.push(i); [INFO] [stderr] 561 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ga.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | return rng.gen_range::(0,n); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `rng.gen_range::(0,n)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ga.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | return sorted; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `sorted` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/ga.rs:61:24 [INFO] [stderr] | [INFO] [stderr] 61 | } else if self.population[sorted[j]].get_fitness() == self.population[sorted[k]].get_fitness() { [INFO] [stderr] | ________________________^ [INFO] [stderr] 62 | | if self.population[sorted[j]].code_sz() > self.population[sorted[k]].code_sz() { [INFO] [stderr] 63 | | k = j; [INFO] [stderr] 64 | | } [INFO] [stderr] 65 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 61 | } else if self.population[sorted[j]].get_fitness() == self.population[sorted[k]].get_fitness() && self.population[sorted[j]].code_sz() > self.population[sorted[k]].code_sz() { [INFO] [stderr] 62 | k = j; [INFO] [stderr] 63 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ga.rs:93:9 [INFO] [stderr] | [INFO] [stderr] 93 | return sum as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `sum as i32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ga.rs:109:9 [INFO] [stderr] | [INFO] [stderr] 109 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ga.rs:200:9 [INFO] [stderr] | [INFO] [stderr] 200 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused variable: `prev_usd` [INFO] [stderr] --> src/record.rs:33:17 [INFO] [stderr] | [INFO] [stderr] 33 | let mut prev_usd:f32 = 0.0; [INFO] [stderr] | ^^^^^^^^ help: consider using `_prev_usd` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `precios` [INFO] [stderr] --> src/record.rs:35:17 [INFO] [stderr] | [INFO] [stderr] 35 | let mut precios:Vec = Vec::new(); [INFO] [stderr] | ^^^^^^^ help: consider using `_precios` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `bought` [INFO] [stderr] --> src/trader.rs:251:17 [INFO] [stderr] | [INFO] [stderr] 251 | let mut bought = false; [INFO] [stderr] | ^^^^^^ help: consider using `_bought` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `i` is never read [INFO] [stderr] --> src/cpu.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | i+=2; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/cpu.rs:167:17 [INFO] [stderr] | [INFO] [stderr] 167 | let mut i:usize = 0; [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/cpu.rs:171:13 [INFO] [stderr] | [INFO] [stderr] 171 | for i in 0..num_lines { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `v` [INFO] [stderr] --> src/cpu.rs:334:13 [INFO] [stderr] | [INFO] [stderr] 334 | for v in self.vars.iter() { [INFO] [stderr] | ^ help: consider using `_v` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/record.rs:33:13 [INFO] [stderr] | [INFO] [stderr] 33 | let mut prev_usd:f32 = 0.0; [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/record.rs:35:13 [INFO] [stderr] | [INFO] [stderr] 35 | let mut precios:Vec = Vec::new(); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/trader.rs:251:13 [INFO] [stderr] | [INFO] [stderr] 251 | let mut bought = false; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `prev_usd` [INFO] [stderr] --> src/record.rs:33:17 [INFO] [stderr] | [INFO] [stderr] 33 | let mut prev_usd:f32 = 0.0; [INFO] [stderr] | ^^^^^^^^ help: consider using `_prev_usd` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `precios` [INFO] [stderr] --> src/record.rs:35:17 [INFO] [stderr] | [INFO] [stderr] 35 | let mut precios:Vec = Vec::new(); [INFO] [stderr] | ^^^^^^^ help: consider using `_precios` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `bought` [INFO] [stderr] --> src/trader.rs:251:17 [INFO] [stderr] | [INFO] [stderr] 251 | let mut bought = false; [INFO] [stderr] | ^^^^^^ help: consider using `_bought` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `i` is never read [INFO] [stderr] --> src/cpu.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | i+=2; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/cpu.rs:167:17 [INFO] [stderr] | [INFO] [stderr] 167 | let mut i:usize = 0; [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/cpu.rs:171:13 [INFO] [stderr] | [INFO] [stderr] 171 | for i in 0..num_lines { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `v` [INFO] [stderr] --> src/cpu.rs:334:13 [INFO] [stderr] | [INFO] [stderr] 334 | for v in self.vars.iter() { [INFO] [stderr] | ^ help: consider using `_v` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | let mut raw:&mut [u8] = &mut[]; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | let mut num_vars = self.get_num_vars().clone(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu.rs:163:13 [INFO] [stderr] | [INFO] [stderr] 163 | let mut num_vars = self.get_num_vars().clone(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu.rs:167:13 [INFO] [stderr] | [INFO] [stderr] 167 | let mut i:usize = 0; [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/record.rs:33:13 [INFO] [stderr] | [INFO] [stderr] 33 | let mut prev_usd:f32 = 0.0; [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/record.rs:35:13 [INFO] [stderr] | [INFO] [stderr] 35 | let mut precios:Vec = Vec::new(); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/trader.rs:251:13 [INFO] [stderr] | [INFO] [stderr] 251 | let mut bought = false; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: method is never used: `clear` [INFO] [stderr] --> src/record.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | pub fn clear(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `disp` [INFO] [stderr] --> src/record.rs:64:5 [INFO] [stderr] | [INFO] [stderr] 64 | pub fn disp(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `VARS` [INFO] [stderr] --> src/trader.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | const VARS:u8 = 9; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set_usd` [INFO] [stderr] --> src/trader.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn set_usd(&mut self, usd: f32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set_eth` [INFO] [stderr] --> src/trader.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn set_eth(&mut self, eth: f32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `load` [INFO] [stderr] --> src/trader.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | pub fn load(&mut self, buy:&str, sell:&str) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `print` [INFO] [stderr] --> src/trader.rs:102:5 [INFO] [stderr] | [INFO] [stderr] 102 | pub fn print(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `do_buy_all` [INFO] [stderr] --> src/trader.rs:170:5 [INFO] [stderr] | [INFO] [stderr] 170 | pub fn do_buy_all(&mut self, pr: &Prize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `do_buy_one` [INFO] [stderr] --> src/trader.rs:199:5 [INFO] [stderr] | [INFO] [stderr] 199 | pub fn do_buy_one(&mut self, pr: &Prize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `do_sell_one` [INFO] [stderr] --> src/trader.rs:211:5 [INFO] [stderr] | [INFO] [stderr] 211 | pub fn do_sell_one(&mut self, pr: &Prize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `fitness` [INFO] [stderr] --> src/cpu.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | fitness: f32, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `tv` [INFO] [stderr] --> src/cpu.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | tv: Vec, // tests results vector [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set_raw_code` [INFO] [stderr] --> src/cpu.rs:55:5 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn set_raw_code(&mut self, raw:&[u8]) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `load` [INFO] [stderr] --> src/cpu.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | pub fn load(&mut self, filename:&str) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set_fitness` [INFO] [stderr] --> src/cpu.rs:97:5 [INFO] [stderr] | [INFO] [stderr] 97 | pub fn set_fitness(&mut self, fitness: f32, tv: Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `debug` [INFO] [stderr] --> src/cpu.rs:102:5 [INFO] [stderr] | [INFO] [stderr] 102 | pub fn debug(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_tv` [INFO] [stderr] --> src/cpu.rs:106:5 [INFO] [stderr] | [INFO] [stderr] 106 | pub fn get_tv(&self) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_fitness` [INFO] [stderr] --> src/cpu.rs:110:5 [INFO] [stderr] | [INFO] [stderr] 110 | pub fn get_fitness(&self) -> f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add_instruction` [INFO] [stderr] --> src/cpu.rs:129:5 [INFO] [stderr] | [INFO] [stderr] 129 | pub fn add_instruction(&mut self, i: Instruction) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `instructions` [INFO] [stderr] --> src/cpu.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | pub fn instructions(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `load_instructions` [INFO] [stderr] --> src/cpu.rs:146:5 [INFO] [stderr] | [INFO] [stderr] 146 | pub fn load_instructions(&mut self, code: Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `init` [INFO] [stderr] --> src/cpu.rs:178:5 [INFO] [stderr] | [INFO] [stderr] 178 | pub fn init(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set_opcodes` [INFO] [stderr] --> src/cpu.rs:259:5 [INFO] [stderr] | [INFO] [stderr] 259 | pub fn set_opcodes(&mut self, opcodes: Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_opcodes` [INFO] [stderr] --> src/cpu.rs:269:5 [INFO] [stderr] | [INFO] [stderr] 269 | pub fn get_opcodes(&self) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `crossover2` [INFO] [stderr] --> src/cpu.rs:399:5 [INFO] [stderr] | [INFO] [stderr] 399 | pub fn crossover2(&self, cpu_mother: &Cpu) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | let mut raw:&mut [u8] = &mut[]; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: field is never used: `mutation_probability` [INFO] [stderr] --> src/ga.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | mutation_probability: u16, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `test` [INFO] [stderr] --> src/main.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | fn test() { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `operandA` should have a snake case name such as `operand_a` [INFO] [stderr] --> src/instruction.rs:9:27 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn new(opcode:u8, operandA:u8, operandB:u8) -> Instruction { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `operandB` should have a snake case name such as `operand_b` [INFO] [stderr] --> src/instruction.rs:9:40 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn new(opcode:u8, operandA:u8, operandB:u8) -> Instruction { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/instruction.rs:19:17 [INFO] [stderr] | [INFO] [stderr] 19 | op: self.op.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.op` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/instruction.rs:20:16 [INFO] [stderr] | [INFO] [stderr] 20 | a: self.a.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.a` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/instruction.rs:21:16 [INFO] [stderr] | [INFO] [stderr] 21 | b: self.b.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.b` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | let mut num_vars = self.get_num_vars().clone(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu.rs:163:13 [INFO] [stderr] | [INFO] [stderr] 163 | let mut num_vars = self.get_num_vars().clone(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu.rs:167:13 [INFO] [stderr] | [INFO] [stderr] 167 | let mut i:usize = 0; [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/instruction.rs:83:28 [INFO] [stderr] | [INFO] [stderr] 83 | 27 => { return format!("nop") } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using .to_string(): `"nop".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/instruction.rs:84:27 [INFO] [stderr] | [INFO] [stderr] 84 | _ => { return format!("err") } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using .to_string(): `"err".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `r`. [INFO] [stderr] --> src/record.rs:46:22 [INFO] [stderr] | [INFO] [stderr] 46 | for i in 0..r.len() { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 46 | for in &r { [INFO] [stderr] | ^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `doTrace` should have a snake case name such as `do_trace` [INFO] [stderr] --> src/trader.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | doTrace: bool [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `getBuy` should have a snake case name such as `get_buy` [INFO] [stderr] --> src/trader.rs:76:5 [INFO] [stderr] | [INFO] [stderr] 76 | / pub fn getBuy(&self) -> &Cpu { [INFO] [stderr] 77 | | return &self.buy; [INFO] [stderr] 78 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `getSell` should have a snake case name such as `get_sell` [INFO] [stderr] --> src/trader.rs:80:5 [INFO] [stderr] | [INFO] [stderr] 80 | / pub fn getSell(&self) -> &Cpu { [INFO] [stderr] 81 | | return &self.sell; [INFO] [stderr] 82 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/trader.rs:170:38 [INFO] [stderr] | [INFO] [stderr] 170 | pub fn do_buy_all(&mut self, pr: &Prize) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/trader.rs:185:39 [INFO] [stderr] | [INFO] [stderr] 185 | pub fn do_sell_all(&mut self, pr: &Prize) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: method is never used: `clear` [INFO] [stderr] --> src/record.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | pub fn clear(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `disp` [INFO] [stderr] --> src/record.rs:64:5 [INFO] [stderr] | [INFO] [stderr] 64 | pub fn disp(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `VARS` [INFO] [stderr] --> src/trader.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | const VARS:u8 = 9; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set_usd` [INFO] [stderr] --> src/trader.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn set_usd(&mut self, usd: f32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set_eth` [INFO] [stderr] --> src/trader.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn set_eth(&mut self, eth: f32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `load` [INFO] [stderr] --> src/trader.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | pub fn load(&mut self, buy:&str, sell:&str) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `print` [INFO] [stderr] --> src/trader.rs:102:5 [INFO] [stderr] | [INFO] [stderr] 102 | pub fn print(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `do_buy_all` [INFO] [stderr] --> src/trader.rs:170:5 [INFO] [stderr] | [INFO] [stderr] 170 | pub fn do_buy_all(&mut self, pr: &Prize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `do_buy_one` [INFO] [stderr] --> src/trader.rs:199:5 [INFO] [stderr] | [INFO] [stderr] 199 | pub fn do_buy_one(&mut self, pr: &Prize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `do_sell_one` [INFO] [stderr] --> src/trader.rs:211:5 [INFO] [stderr] | [INFO] [stderr] 211 | pub fn do_sell_one(&mut self, pr: &Prize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `fitness` [INFO] [stderr] --> src/cpu.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | fitness: f32, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `tv` [INFO] [stderr] --> src/cpu.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | tv: Vec, // tests results vector [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set_raw_code` [INFO] [stderr] --> src/cpu.rs:55:5 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn set_raw_code(&mut self, raw:&[u8]) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/trader.rs:199:38 [INFO] [stderr] | [INFO] [stderr] 199 | pub fn do_buy_one(&mut self, pr: &Prize) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] warning: method is never used: `load` [INFO] [stderr] --> src/cpu.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | pub fn load(&mut self, filename:&str) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set_fitness` [INFO] [stderr] --> src/cpu.rs:97:5 [INFO] [stderr] | [INFO] [stderr] 97 | pub fn set_fitness(&mut self, fitness: f32, tv: Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `debug` [INFO] [stderr] --> src/cpu.rs:102:5 [INFO] [stderr] | [INFO] [stderr] 102 | pub fn debug(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_tv` [INFO] [stderr] --> src/cpu.rs:106:5 [INFO] [stderr] | [INFO] [stderr] 106 | pub fn get_tv(&self) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_fitness` [INFO] [stderr] --> src/cpu.rs:110:5 [INFO] [stderr] | [INFO] [stderr] 110 | pub fn get_fitness(&self) -> f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add_instruction` [INFO] [stderr] --> src/cpu.rs:129:5 [INFO] [stderr] | [INFO] [stderr] 129 | pub fn add_instruction(&mut self, i: Instruction) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `instructions` [INFO] [stderr] --> src/cpu.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | pub fn instructions(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `load_instructions` [INFO] [stderr] --> src/cpu.rs:146:5 [INFO] [stderr] | [INFO] [stderr] 146 | pub fn load_instructions(&mut self, code: Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `init` [INFO] [stderr] --> src/cpu.rs:178:5 [INFO] [stderr] | [INFO] [stderr] 178 | pub fn init(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set_opcodes` [INFO] [stderr] --> src/cpu.rs:259:5 [INFO] [stderr] | [INFO] [stderr] 259 | pub fn set_opcodes(&mut self, opcodes: Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_opcodes` [INFO] [stderr] --> src/cpu.rs:269:5 [INFO] [stderr] | [INFO] [stderr] 269 | pub fn get_opcodes(&self) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `crossover2` [INFO] [stderr] --> src/cpu.rs:399:5 [INFO] [stderr] | [INFO] [stderr] 399 | pub fn crossover2(&self, cpu_mother: &Cpu) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `mutation_probability` [INFO] [stderr] --> src/ga.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | mutation_probability: u16, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `test` [INFO] [stderr] --> src/main.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | fn test() { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/trader.rs:211:39 [INFO] [stderr] | [INFO] [stderr] 211 | pub fn do_sell_one(&mut self, pr: &Prize) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: variable `operandA` should have a snake case name such as `operand_a` [INFO] [stderr] --> src/instruction.rs:9:27 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn new(opcode:u8, operandA:u8, operandB:u8) -> Instruction { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `operandB` should have a snake case name such as `operand_b` [INFO] [stderr] --> src/instruction.rs:9:40 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn new(opcode:u8, operandA:u8, operandB:u8) -> Instruction { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/instruction.rs:19:17 [INFO] [stderr] | [INFO] [stderr] 19 | op: self.op.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.op` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/instruction.rs:20:16 [INFO] [stderr] | [INFO] [stderr] 20 | a: self.a.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.a` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/instruction.rs:21:16 [INFO] [stderr] | [INFO] [stderr] 21 | b: self.b.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.b` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/trader.rs:223:44 [INFO] [stderr] | [INFO] [stderr] 223 | pub fn do_buy_selective(&mut self, pr: &Prize, amount:f32) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/trader.rs:238:45 [INFO] [stderr] | [INFO] [stderr] 238 | pub fn do_sell_selective(&mut self, pr: &Prize, amount:f32) { // amount is the number of eth's to buy/sell [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/instruction.rs:83:28 [INFO] [stderr] | [INFO] [stderr] 83 | 27 => { return format!("nop") } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using .to_string(): `"nop".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/instruction.rs:84:27 [INFO] [stderr] | [INFO] [stderr] 84 | _ => { return format!("err") } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using .to_string(): `"err".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/trader.rs:250:33 [INFO] [stderr] | [INFO] [stderr] 250 | pub fn trade(&mut self, pr: &Prize) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/trader.rs:261:12 [INFO] [stderr] | [INFO] [stderr] 261 | if self.buy.result() == 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(self.buy.result() - 1.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/trader.rs:261:12 [INFO] [stderr] | [INFO] [stderr] 261 | if self.buy.result() == 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/trader.rs:267:16 [INFO] [stderr] | [INFO] [stderr] 267 | if self.sell.result() == 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(self.sell.result() - 1.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/trader.rs:267:16 [INFO] [stderr] | [INFO] [stderr] 267 | if self.sell.result() == 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: structure field `debugMode` should have a snake case name such as `debug_mode` [INFO] [stderr] --> src/cpu.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | debugMode: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cpu.rs:48:12 [INFO] [stderr] | [INFO] [stderr] 48 | if self.vars.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.vars.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `r`. [INFO] [stderr] --> src/record.rs:46:22 [INFO] [stderr] | [INFO] [stderr] 46 | for i in 0..r.len() { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 46 | for in &r { [INFO] [stderr] | ^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `doTrace` should have a snake case name such as `do_trace` [INFO] [stderr] --> src/trader.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | doTrace: bool [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/cpu.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | f.write(self.get_raw_code().as_slice()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: method `getBuy` should have a snake case name such as `get_buy` [INFO] [stderr] --> src/trader.rs:76:5 [INFO] [stderr] | [INFO] [stderr] 76 | / pub fn getBuy(&self) -> &Cpu { [INFO] [stderr] 77 | | return &self.buy; [INFO] [stderr] 78 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/cpu.rs:92:9 [INFO] [stderr] | [INFO] [stderr] 92 | f.read(raw).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: method `getSell` should have a snake case name such as `get_sell` [INFO] [stderr] --> src/trader.rs:80:5 [INFO] [stderr] | [INFO] [stderr] 80 | / pub fn getSell(&self) -> &Cpu { [INFO] [stderr] 81 | | return &self.sell; [INFO] [stderr] 82 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/cpu.rs:122:16 [INFO] [stderr] | [INFO] [stderr] 122 | return self.vars[i].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.vars[i]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/cpu.rs:156:28 [INFO] [stderr] | [INFO] [stderr] 156 | let mut num_vars = self.get_num_vars().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.get_num_vars()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/cpu.rs:163:28 [INFO] [stderr] | [INFO] [stderr] 163 | let mut num_vars = self.get_num_vars().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.get_num_vars()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/trader.rs:170:38 [INFO] [stderr] | [INFO] [stderr] 170 | pub fn do_buy_all(&mut self, pr: &Prize) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/trader.rs:185:39 [INFO] [stderr] | [INFO] [stderr] 185 | pub fn do_sell_all(&mut self, pr: &Prize) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/trader.rs:199:38 [INFO] [stderr] | [INFO] [stderr] 199 | pub fn do_buy_one(&mut self, pr: &Prize) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/trader.rs:211:39 [INFO] [stderr] | [INFO] [stderr] 211 | pub fn do_sell_one(&mut self, pr: &Prize) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/trader.rs:223:44 [INFO] [stderr] | [INFO] [stderr] 223 | pub fn do_buy_selective(&mut self, pr: &Prize, amount:f32) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/trader.rs:238:45 [INFO] [stderr] | [INFO] [stderr] 238 | pub fn do_sell_selective(&mut self, pr: &Prize, amount:f32) { // amount is the number of eth's to buy/sell [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/trader.rs:250:33 [INFO] [stderr] | [INFO] [stderr] 250 | pub fn trade(&mut self, pr: &Prize) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/cpu.rs:236:28 [INFO] [stderr] | [INFO] [stderr] 236 | 19 => { if self.vars[a] == self.vars[b] { line+=1 } } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(self.vars[a] - self.vars[b]).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/cpu.rs:236:28 [INFO] [stderr] | [INFO] [stderr] 236 | 19 => { if self.vars[a] == self.vars[b] { line+=1 } } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/cpu.rs:237:28 [INFO] [stderr] | [INFO] [stderr] 237 | 20 => { if self.vars[a] != self.vars[b] { line+=1 } } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(self.vars[a] - self.vars[b]).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/cpu.rs:237:28 [INFO] [stderr] | [INFO] [stderr] 237 | 20 => { if self.vars[a] != self.vars[b] { line+=1 } } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/trader.rs:261:12 [INFO] [stderr] | [INFO] [stderr] 261 | if self.buy.result() == 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(self.buy.result() - 1.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/trader.rs:261:12 [INFO] [stderr] | [INFO] [stderr] 261 | if self.buy.result() == 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/trader.rs:267:16 [INFO] [stderr] | [INFO] [stderr] 267 | if self.sell.result() == 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(self.sell.result() - 1.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/trader.rs:267:16 [INFO] [stderr] | [INFO] [stderr] 267 | if self.sell.result() == 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/cpu.rs:243:42 [INFO] [stderr] | [INFO] [stderr] 243 | 25 => { self.stack.push(self.vars[a].clone()); } // push [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.vars[a]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cpu.rs:261:16 [INFO] [stderr] | [INFO] [stderr] 261 | if opcodes.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `opcodes.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: structure field `debugMode` should have a snake case name such as `debug_mode` [INFO] [stderr] --> src/cpu.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | debugMode: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cpu.rs:48:12 [INFO] [stderr] | [INFO] [stderr] 48 | if self.vars.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.vars.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/cpu.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | f.write(self.get_raw_code().as_slice()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/cpu.rs:92:9 [INFO] [stderr] | [INFO] [stderr] 92 | f.read(raw).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/cpu.rs:122:16 [INFO] [stderr] | [INFO] [stderr] 122 | return self.vars[i].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.vars[i]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/cpu.rs:156:28 [INFO] [stderr] | [INFO] [stderr] 156 | let mut num_vars = self.get_num_vars().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.get_num_vars()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/cpu.rs:163:28 [INFO] [stderr] | [INFO] [stderr] 163 | let mut num_vars = self.get_num_vars().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.get_num_vars()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/cpu.rs:363:13 [INFO] [stderr] | [INFO] [stderr] 363 | / let mut add:bool = true; [INFO] [stderr] 364 | | [INFO] [stderr] 365 | | if self.code.len() > 25 { [INFO] [stderr] 366 | | add = false; [INFO] [stderr] 367 | | } [INFO] [stderr] | |_____________^ help: it is more idiomatic to write: `let add = if self.code.len() > 25 { false } else { true };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/cpu.rs:236:28 [INFO] [stderr] | [INFO] [stderr] 236 | 19 => { if self.vars[a] == self.vars[b] { line+=1 } } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(self.vars[a] - self.vars[b]).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/cpu.rs:236:28 [INFO] [stderr] | [INFO] [stderr] 236 | 19 => { if self.vars[a] == self.vars[b] { line+=1 } } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/cpu.rs:237:28 [INFO] [stderr] | [INFO] [stderr] 237 | 20 => { if self.vars[a] != self.vars[b] { line+=1 } } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(self.vars[a] - self.vars[b]).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/cpu.rs:237:28 [INFO] [stderr] | [INFO] [stderr] 237 | 20 => { if self.vars[a] != self.vars[b] { line+=1 } } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: the loop variable `j` is only used to index `childs`. [INFO] [stderr] --> src/cpu.rs:407:22 [INFO] [stderr] | [INFO] [stderr] 407 | for j in 0..4 { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 407 | for in childs.iter_mut().take(4) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/cpu.rs:243:42 [INFO] [stderr] | [INFO] [stderr] 243 | 25 => { self.stack.push(self.vars[a].clone()); } // push [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.vars[a]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cpu.rs:261:16 [INFO] [stderr] | [INFO] [stderr] 261 | if opcodes.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `opcodes.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: the variable `ctx` is used as a loop counter. Consider using `for (ctx, item) in 0..to_remove.len().enumerate()` or similar iterators [INFO] [stderr] --> src/cpu.rs:447:18 [INFO] [stderr] | [INFO] [stderr] 447 | for i in 0..to_remove.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/cpu.rs:363:13 [INFO] [stderr] | [INFO] [stderr] 363 | / let mut add:bool = true; [INFO] [stderr] 364 | | [INFO] [stderr] 365 | | if self.code.len() > 25 { [INFO] [stderr] 366 | | add = false; [INFO] [stderr] 367 | | } [INFO] [stderr] | |_____________^ help: it is more idiomatic to write: `let add = if self.code.len() > 25 { false } else { true };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: the loop variable `j` is only used to index `childs`. [INFO] [stderr] --> src/cpu.rs:407:22 [INFO] [stderr] | [INFO] [stderr] 407 | for j in 0..4 { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 407 | for in childs.iter_mut().take(4) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the variable `ctx` is used as a loop counter. Consider using `for (ctx, item) in 0..to_remove.len().enumerate()` or similar iterators [INFO] [stderr] --> src/cpu.rs:447:18 [INFO] [stderr] | [INFO] [stderr] 447 | for i in 0..to_remove.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: variable `existsPush` should have a snake case name such as `exists_push` [INFO] [stderr] --> src/cpu.rs:539:13 [INFO] [stderr] | [INFO] [stderr] 539 | let mut existsPush:bool = false; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `existsPop` should have a snake case name such as `exists_pop` [INFO] [stderr] --> src/cpu.rs:540:13 [INFO] [stderr] | [INFO] [stderr] 540 | let mut existsPop:bool = false; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `existsPush` should have a snake case name such as `exists_push` [INFO] [stderr] --> src/cpu.rs:539:13 [INFO] [stderr] | [INFO] [stderr] 539 | let mut existsPush:bool = false; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `existsPop` should have a snake case name such as `exists_pop` [INFO] [stderr] --> src/cpu.rs:540:13 [INFO] [stderr] | [INFO] [stderr] 540 | let mut existsPop:bool = false; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/ga.rs:61:27 [INFO] [stderr] | [INFO] [stderr] 61 | } else if self.population[sorted[j]].get_fitness() == self.population[sorted[k]].get_fitness() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(self.population[sorted[j]].get_fitness() - self.population[sorted[k]].get_fitness()).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/ga.rs:61:27 [INFO] [stderr] | [INFO] [stderr] 61 | } else if self.population[sorted[j]].get_fitness() == self.population[sorted[k]].get_fitness() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/ga.rs:61:27 [INFO] [stderr] | [INFO] [stderr] 61 | } else if self.population[sorted[j]].get_fitness() == self.population[sorted[k]].get_fitness() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(self.population[sorted[j]].get_fitness() - self.population[sorted[k]].get_fitness()).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/ga.rs:61:27 [INFO] [stderr] | [INFO] [stderr] 61 | } else if self.population[sorted[j]].get_fitness() == self.population[sorted[k]].get_fitness() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/ga.rs:118:22 [INFO] [stderr] | [INFO] [stderr] 118 | for cycle in 1..num_cycles+1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use: `1..=num_cycles` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/ga.rs:118:22 [INFO] [stderr] | [INFO] [stderr] 118 | for cycle in 1..num_cycles+1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use: `1..=num_cycles` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `sorted`. [INFO] [stderr] --> src/ga.rs:171:22 [INFO] [stderr] | [INFO] [stderr] 171 | for i in 0..3 { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 171 | for in sorted.iter().take(3) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `ng`. [INFO] [stderr] --> src/ga.rs:184:22 [INFO] [stderr] | [INFO] [stderr] 184 | for i in 0..ng.len() { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 184 | for in &mut ng { [INFO] [stderr] | ^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `sorted`. [INFO] [stderr] --> src/ga.rs:171:22 [INFO] [stderr] | [INFO] [stderr] 171 | for i in 0..3 { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 171 | for in sorted.iter().take(3) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `Spocky_AI` should have a snake case name such as `spocky_ai` [INFO] [stderr] --> src/main.rs:27:1 [INFO] [stderr] | [INFO] [stderr] 27 | / fn Spocky_AI() { [INFO] [stderr] 28 | | println!("Booting Spocky ..."); [INFO] [stderr] 29 | | let mut rec = Record::new(); [INFO] [stderr] 30 | | rec.load("/home/user/src/spocky/data/bitcoin.csv"); [INFO] [stderr] ... | [INFO] [stderr] 49 | | } [INFO] [stderr] 50 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `ng`. [INFO] [stderr] --> src/ga.rs:184:22 [INFO] [stderr] | [INFO] [stderr] 184 | for i in 0..ng.len() { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 184 | for in &mut ng { [INFO] [stderr] | ^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `Spocky_AI` should have a snake case name such as `spocky_ai` [INFO] [stderr] --> src/main.rs:27:1 [INFO] [stderr] | [INFO] [stderr] 27 | / fn Spocky_AI() { [INFO] [stderr] 28 | | println!("Booting Spocky ..."); [INFO] [stderr] 29 | | let mut rec = Record::new(); [INFO] [stderr] 30 | | rec.load("/home/user/src/spocky/data/bitcoin.csv"); [INFO] [stderr] ... | [INFO] [stderr] 49 | | } [INFO] [stderr] 50 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 6 previous errors [INFO] [stderr] [INFO] [stderr] error: aborting due to 6 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `spocky`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: Could not compile `spocky`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "d030a4a0f50e6c5e7c2e8f1aa6e7922f2c4e6b60fa0039e0a9a4aa3cd36fce97"` [INFO] running `"docker" "rm" "-f" "d030a4a0f50e6c5e7c2e8f1aa6e7922f2c4e6b60fa0039e0a9a4aa3cd36fce97"` [INFO] [stdout] d030a4a0f50e6c5e7c2e8f1aa6e7922f2c4e6b60fa0039e0a9a4aa3cd36fce97