[INFO] fetching crate gym-rs 0.3.0... [INFO] linting gym-rs-0.3.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate gym-rs 0.3.0 into /workspace/builds/worker-0-tc1/source [INFO] started tweaking crates.io crate gym-rs 0.3.0 [INFO] finished tweaking crates.io crate gym-rs 0.3.0 [INFO] tweaked toml for crates.io crate gym-rs 0.3.0 written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate gym-rs 0.3.0 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate gym-rs 0.3.0 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded derive-new v0.5.9 [INFO] [stderr] Downloaded ordered-float v3.9.1 [INFO] [stderr] Downloaded serde_derive v1.0.185 [INFO] [stderr] Downloaded cosyne v0.3.4 [INFO] [stderr] Downloaded simba v0.5.1 [INFO] [stderr] Downloaded serde v1.0.185 [INFO] [stderr] Downloaded regex v1.9.3 [INFO] [stderr] Downloaded regex-syntax v0.7.4 [INFO] [stderr] Downloaded nalgebra v0.28.0 [INFO] [stderr] Downloaded regex-automata v0.3.6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 637d17df4822837cf8b62e4f1026f708caa37d9adbf88619a3341a6966328c0d [INFO] running `Command { std: "docker" "start" "-a" "637d17df4822837cf8b62e4f1026f708caa37d9adbf88619a3341a6966328c0d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "637d17df4822837cf8b62e4f1026f708caa37d9adbf88619a3341a6966328c0d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "637d17df4822837cf8b62e4f1026f708caa37d9adbf88619a3341a6966328c0d", kill_on_drop: false }` [INFO] [stdout] 637d17df4822837cf8b62e4f1026f708caa37d9adbf88619a3341a6966328c0d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 83bdaaf2c928b5c76aee7c12e109086dd042d922f37b62b7d8cb0d50f690b8a8 [INFO] running `Command { std: "docker" "start" "-a" "83bdaaf2c928b5c76aee7c12e109086dd042d922f37b62b7d8cb0d50f690b8a8", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.66 [INFO] [stderr] Compiling unicode-ident v1.0.11 [INFO] [stderr] Compiling num-traits v0.2.16 [INFO] [stderr] Compiling libc v0.2.147 [INFO] [stderr] Compiling serde v1.0.185 [INFO] [stderr] Compiling num-integer v0.1.45 [INFO] [stderr] Compiling paste v1.0.14 [INFO] [stderr] Checking bytemuck v1.13.1 [INFO] [stderr] Compiling num-rational v0.4.1 [INFO] [stderr] Compiling matrixmultiply v0.3.7 [INFO] [stderr] Compiling typenum v1.16.0 [INFO] [stderr] Compiling sdl2 v0.35.2 [INFO] [stderr] Checking c_vec v2.0.0 [INFO] [stderr] Checking getrandom v0.2.10 [INFO] [stderr] Checking safe_arch v0.7.1 [INFO] [stderr] Checking wide v0.7.11 [INFO] [stderr] Compiling quote v1.0.33 [INFO] [stderr] Compiling cc v1.0.83 [INFO] [stderr] Compiling syn v2.0.29 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling cmake v0.1.50 [INFO] [stderr] Checking num-complex v0.4.4 [INFO] [stderr] Checking approx v0.5.1 [INFO] [stderr] Compiling sdl2-sys v0.35.2 [INFO] [stderr] Checking simba v0.8.1 [INFO] [stderr] Compiling serde_derive v1.0.185 [INFO] [stderr] Compiling nalgebra-macros v0.2.1 [INFO] [stderr] Compiling derive-new v0.5.9 [INFO] [stderr] Compiling derivative v2.2.0 [INFO] [stderr] Checking nalgebra v0.32.3 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand_pcg v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking ordered-float v3.9.1 [INFO] [stderr] Checking gym-rs v0.3.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/core.rs:16:30 [INFO] [stdout] | [INFO] [stdout] 16 | const DEFAULT_REWARD_RANGE: &'static RewardRange = &(RewardRange { [INFO] [stdout] | -^^^^^^^------------ help: consider removing `'static`: `&RewardRange` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/core.rs:16:30 [INFO] [stdout] | [INFO] [stdout] 16 | const DEFAULT_REWARD_RANGE: &'static RewardRange = &(RewardRange { [INFO] [stdout] | -^^^^^^^------------ help: consider removing `'static`: `&RewardRange` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/core.rs:22:29 [INFO] [stdout] | [INFO] [stdout] 22 | const DEFAULT_RENDER_MODE: &'static RenderMode = &RenderMode::None; [INFO] [stdout] | -^^^^^^^----------- help: consider removing `'static`: `&RenderMode` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/core.rs:22:29 [INFO] [stdout] | [INFO] [stdout] 22 | const DEFAULT_RENDER_MODE: &'static RenderMode = &RenderMode::None; [INFO] [stdout] | -^^^^^^^----------- help: consider removing `'static`: `&RenderMode` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/envs/classical_control/cartpole.rs:265:32 [INFO] [stdout] | [INFO] [stdout] 265 | const CART_POLE_RENDER_MODES: &'static [RenderMode] = &[RenderMode::Human, RenderMode::RgbArray]; [INFO] [stdout] | -^^^^^^^------------- help: consider removing `'static`: `&[RenderMode]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:108:35 [INFO] [stdout] | [INFO] [stdout] 108 | const MOUNTAIN_CAR_RENDER_MODES: &'static [RenderMode] = &[ [INFO] [stdout] | -^^^^^^^------------- help: consider removing `'static`: `&[RenderMode]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/envs/classical_control/cartpole.rs:265:32 [INFO] [stdout] | [INFO] [stdout] 265 | const CART_POLE_RENDER_MODES: &'static [RenderMode] = &[RenderMode::Human, RenderMode::RgbArray]; [INFO] [stdout] | -^^^^^^^------------- help: consider removing `'static`: `&[RenderMode]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around closure body [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:235:34 [INFO] [stdout] | [INFO] [stdout] 235 | .map(|index| (((max_position - min_position) / 100.) * index as f64)) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 235 - .map(|index| (((max_position - min_position) / 100.) * index as f64)) [INFO] [stdout] 235 + .map(|index| ((max_position - min_position) / 100.) * index as f64 ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:108:35 [INFO] [stdout] | [INFO] [stdout] 108 | const MOUNTAIN_CAR_RENDER_MODES: &'static [RenderMode] = &[ [INFO] [stdout] | -^^^^^^^------------- help: consider removing `'static`: `&[RenderMode]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around closure body [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:235:34 [INFO] [stdout] | [INFO] [stdout] 235 | .map(|index| (((max_position - min_position) / 100.) * index as f64)) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 235 - .map(|index| (((max_position - min_position) / 100.) * index as f64)) [INFO] [stdout] 235 + .map(|index| ((max_position - min_position) / 100.) * index as f64 ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/envs/classical_control/cartpole.rs:431:13 [INFO] [stdout] | [INFO] [stdout] 431 | x = x + self.tau * x_dot; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x += self.tau * x_dot` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/envs/classical_control/cartpole.rs:432:13 [INFO] [stdout] | [INFO] [stdout] 432 | x_dot = x_dot + self.tau * xacc; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x_dot += self.tau * xacc` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/envs/classical_control/cartpole.rs:433:13 [INFO] [stdout] | [INFO] [stdout] 433 | theta = theta + self.tau * theta_dot; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `theta += self.tau * theta_dot` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/envs/classical_control/cartpole.rs:434:13 [INFO] [stdout] | [INFO] [stdout] 434 | theta_dot = theta_dot + self.tau * thetaacc; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `theta_dot += self.tau * thetaacc` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/envs/classical_control/cartpole.rs:436:13 [INFO] [stdout] | [INFO] [stdout] 436 | x_dot = x_dot + self.tau * xacc; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x_dot += self.tau * xacc` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/envs/classical_control/cartpole.rs:437:13 [INFO] [stdout] | [INFO] [stdout] 437 | x = x + self.tau * x_dot; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x += self.tau * x_dot` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/envs/classical_control/cartpole.rs:438:13 [INFO] [stdout] | [INFO] [stdout] 438 | theta_dot = theta_dot + self.tau * thetaacc; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `theta_dot += self.tau * thetaacc` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/envs/classical_control/cartpole.rs:439:13 [INFO] [stdout] | [INFO] [stdout] 439 | theta = theta + self.tau * theta_dot; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `theta += self.tau * theta_dot` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/envs/classical_control/cartpole.rs:431:13 [INFO] [stdout] | [INFO] [stdout] 431 | x = x + self.tau * x_dot; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x += self.tau * x_dot` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/envs/classical_control/cartpole.rs:432:13 [INFO] [stdout] | [INFO] [stdout] 432 | x_dot = x_dot + self.tau * xacc; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x_dot += self.tau * xacc` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/envs/classical_control/cartpole.rs:433:13 [INFO] [stdout] | [INFO] [stdout] 433 | theta = theta + self.tau * theta_dot; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `theta += self.tau * theta_dot` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/envs/classical_control/cartpole.rs:434:13 [INFO] [stdout] | [INFO] [stdout] 434 | theta_dot = theta_dot + self.tau * thetaacc; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `theta_dot += self.tau * thetaacc` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/envs/classical_control/cartpole.rs:436:13 [INFO] [stdout] | [INFO] [stdout] 436 | x_dot = x_dot + self.tau * xacc; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x_dot += self.tau * xacc` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/envs/classical_control/cartpole.rs:437:13 [INFO] [stdout] | [INFO] [stdout] 437 | x = x + self.tau * x_dot; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x += self.tau * x_dot` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/envs/classical_control/cartpole.rs:438:13 [INFO] [stdout] | [INFO] [stdout] 438 | theta_dot = theta_dot + self.tau * thetaacc; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `theta_dot += self.tau * thetaacc` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/envs/classical_control/cartpole.rs:439:13 [INFO] [stdout] | [INFO] [stdout] 439 | theta = theta + self.tau * theta_dot; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `theta += self.tau * theta_dot` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `OrderedFloat` which implements the `Copy` trait [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:89:27 [INFO] [stdout] | [INFO] [stdout] 89 | min_position: self.min_position.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.min_position` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `OrderedFloat` which implements the `Copy` trait [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:90:27 [INFO] [stdout] | [INFO] [stdout] 90 | max_position: self.max_position.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.max_position` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `OrderedFloat` which implements the `Copy` trait [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:91:24 [INFO] [stdout] | [INFO] [stdout] 91 | max_speed: self.max_speed.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.max_speed` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `OrderedFloat` which implements the `Copy` trait [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:92:28 [INFO] [stdout] | [INFO] [stdout] 92 | goal_position: self.goal_position.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.goal_position` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `OrderedFloat` which implements the `Copy` trait [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:93:28 [INFO] [stdout] | [INFO] [stdout] 93 | goal_velocity: self.goal_velocity.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.goal_velocity` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `OrderedFloat` which implements the `Copy` trait [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:94:20 [INFO] [stdout] | [INFO] [stdout] 94 | force: self.force.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.force` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `OrderedFloat` which implements the `Copy` trait [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:95:22 [INFO] [stdout] | [INFO] [stdout] 95 | gravity: self.gravity.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.gravity` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `RenderMode` which implements the `Copy` trait [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:96:26 [INFO] [stdout] | [INFO] [stdout] 96 | render_mode: self.render_mode.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.render_mode` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `MountainCarObservation` which implements the `Copy` trait [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:101:20 [INFO] [stdout] | [INFO] [stdout] 101 | state: self.state.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `OrderedFloat` which implements the `Copy` trait [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:89:27 [INFO] [stdout] | [INFO] [stdout] 89 | min_position: self.min_position.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.min_position` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `OrderedFloat` which implements the `Copy` trait [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:90:27 [INFO] [stdout] | [INFO] [stdout] 90 | max_position: self.max_position.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.max_position` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `OrderedFloat` which implements the `Copy` trait [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:91:24 [INFO] [stdout] | [INFO] [stdout] 91 | max_speed: self.max_speed.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.max_speed` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `OrderedFloat` which implements the `Copy` trait [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:92:28 [INFO] [stdout] | [INFO] [stdout] 92 | goal_position: self.goal_position.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.goal_position` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `OrderedFloat` which implements the `Copy` trait [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:93:28 [INFO] [stdout] | [INFO] [stdout] 93 | goal_velocity: self.goal_velocity.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.goal_velocity` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `OrderedFloat` which implements the `Copy` trait [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:94:20 [INFO] [stdout] | [INFO] [stdout] 94 | force: self.force.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.force` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `OrderedFloat` which implements the `Copy` trait [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:95:22 [INFO] [stdout] | [INFO] [stdout] 95 | gravity: self.gravity.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.gravity` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `RenderMode` which implements the `Copy` trait [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:96:26 [INFO] [stdout] | [INFO] [stdout] 96 | render_mode: self.render_mode.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.render_mode` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `MountainCarObservation` which implements the `Copy` trait [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:101:20 [INFO] [stdout] | [INFO] [stdout] 101 | state: self.state.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:200:19 [INFO] [stdout] | [INFO] [stdout] 200 | fn height(xs: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 200 ~ fn height(xs: &[O64]) -> Vec { [INFO] [stdout] 201 ~ xs.to_owned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::ops::Range` [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:233:34 [INFO] [stdout] | [INFO] [stdout] 233 | let xs: Vec<_> = (0..100) [INFO] [stdout] | __________________________________^ [INFO] [stdout] 234 | | .into_iter() [INFO] [stdout] | |________________________________^ help: consider removing `.into_iter()`: `(0..100)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:200:19 [INFO] [stdout] | [INFO] [stdout] 200 | fn height(xs: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 200 ~ fn height(xs: &[O64]) -> Vec { [INFO] [stdout] 201 ~ xs.to_owned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::ops::Range` [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:233:34 [INFO] [stdout] | [INFO] [stdout] 233 | let xs: Vec<_> = (0..100) [INFO] [stdout] | __________________________________^ [INFO] [stdout] 234 | | .into_iter() [INFO] [stdout] | |________________________________^ help: consider removing `.into_iter()`: `(0..100)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:283:45 [INFO] [stdout] | [INFO] [stdout] 283 | let point = Point2::new(x as f64, y as f64); [INFO] [stdout] | ^^^^^^^^ help: try: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:283:55 [INFO] [stdout] | [INFO] [stdout] 283 | let point = Point2::new(x as f64, y as f64); [INFO] [stdout] | ^^^^^^^^ help: try: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:283:45 [INFO] [stdout] | [INFO] [stdout] 283 | let point = Point2::new(x as f64, y as f64); [INFO] [stdout] | ^^^^^^^^ help: try: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:283:55 [INFO] [stdout] | [INFO] [stdout] 283 | let point = Point2::new(x as f64, y as f64); [INFO] [stdout] | ^^^^^^^^ help: try: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> src/utils/custom/screen.rs:69:21 [INFO] [stdout] | [INFO] [stdout] 69 | height: self.height.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.height` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> src/utils/custom/screen.rs:70:20 [INFO] [stdout] | [INFO] [stdout] 70 | width: self.width.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.width` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> src/utils/custom/screen.rs:72:25 [INFO] [stdout] | [INFO] [stdout] 72 | render_fps: self.render_fps.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.render_fps` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `RenderMode` which implements the `Copy` trait [INFO] [stdout] --> src/utils/custom/screen.rs:73:19 [INFO] [stdout] | [INFO] [stdout] 73 | mode: self.mode.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.mode` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/utils/custom/screen.rs:80:28 [INFO] [stdout] | [INFO] [stdout] 80 | pub fn close(&mut self) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/utils/custom/screen.rs:136:48 [INFO] [stdout] | [INFO] [stdout] 136 | using_fn: impl FnMut(&mut WindowCanvas) -> (), [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> src/utils/custom/screen.rs:69:21 [INFO] [stdout] | [INFO] [stdout] 69 | height: self.height.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.height` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/utils/custom/screen.rs:139:9 [INFO] [stdout] | [INFO] [stdout] 139 | / match self.gui.as_mut() { [INFO] [stdout] 140 | | Some(ScreenGui { canvas, .. }) => { [INFO] [stdout] 141 | | let texture_creator = canvas.texture_creator(); [INFO] [stdout] 142 | | let mut texture = texture_creator [INFO] [stdout] ... | [INFO] [stdout] 162 | | _ => (), [INFO] [stdout] 163 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 139 ~ if let Some(ScreenGui { canvas, .. }) = self.gui.as_mut() { [INFO] [stdout] 140 + let texture_creator = canvas.texture_creator(); [INFO] [stdout] 141 + let mut texture = texture_creator [INFO] [stdout] 142 + .create_texture_target(PixelFormatEnum::RGB24, self.width, self.height) [INFO] [stdout] 143 + .expect("Create texture."); [INFO] [stdout] 144 + [INFO] [stdout] 145 + canvas [INFO] [stdout] 146 + .with_texture_canvas(&mut texture, using_fn) [INFO] [stdout] 147 + .expect("Was unable to render."); [INFO] [stdout] 148 + [INFO] [stdout] 149 + canvas [INFO] [stdout] 150 + .copy_ex( [INFO] [stdout] 151 + &mut texture, [INFO] [stdout] 152 + with_transformations.src, [INFO] [stdout] 153 + with_transformations.dst, [INFO] [stdout] 154 + with_transformations.angle, [INFO] [stdout] 155 + with_transformations.center, [INFO] [stdout] 156 + with_transformations.flip_horizontal, [INFO] [stdout] 157 + with_transformations.flip_vertical, [INFO] [stdout] 158 + ) [INFO] [stdout] 159 + .expect("Transformations failed to be applied."); [INFO] [stdout] 160 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> src/utils/custom/screen.rs:70:20 [INFO] [stdout] | [INFO] [stdout] 70 | width: self.width.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.width` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> src/utils/custom/screen.rs:72:25 [INFO] [stdout] | [INFO] [stdout] 72 | render_fps: self.render_fps.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.render_fps` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `copy_ex` doesn't need a mutable reference [INFO] [stdout] --> src/utils/custom/screen.rs:152:25 [INFO] [stdout] | [INFO] [stdout] 152 | &mut texture, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] = note: `#[warn(clippy::unnecessary_mut_passed)]` on by default [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 152 - &mut texture, [INFO] [stdout] 152 + &texture, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `RenderMode` which implements the `Copy` trait [INFO] [stdout] --> src/utils/custom/screen.rs:73:19 [INFO] [stdout] | [INFO] [stdout] 73 | mode: self.mode.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.mode` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/utils/custom/screen.rs:80:28 [INFO] [stdout] | [INFO] [stdout] 80 | pub fn close(&mut self) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/utils/custom/screen.rs:168:9 [INFO] [stdout] | [INFO] [stdout] 168 | / match self.gui.as_mut() { [INFO] [stdout] 169 | | Some(ScreenGui { event_pump, .. }) => { [INFO] [stdout] 170 | | for event in event_pump.poll_iter() { [INFO] [stdout] 171 | | match event { [INFO] [stdout] ... | [INFO] [stdout] 179 | | _ => (), [INFO] [stdout] 180 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 168 ~ if let Some(ScreenGui { event_pump, .. }) = self.gui.as_mut() { [INFO] [stdout] 169 + for event in event_pump.poll_iter() { [INFO] [stdout] 170 + match event { [INFO] [stdout] 171 + Event::Quit { .. } => { [INFO] [stdout] 172 + panic!("Animation was forced to exit.") [INFO] [stdout] 173 + } [INFO] [stdout] 174 + _ => (), [INFO] [stdout] 175 + } [INFO] [stdout] 176 + } [INFO] [stdout] 177 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/utils/custom/screen.rs:171:21 [INFO] [stdout] | [INFO] [stdout] 171 | / match event { [INFO] [stdout] 172 | | Event::Quit { .. } => { [INFO] [stdout] 173 | | panic!("Animation was forced to exit.") [INFO] [stdout] ... | [INFO] [stdout] 176 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 171 ~ if let Event::Quit { .. } = event { [INFO] [stdout] 172 + panic!("Animation was forced to exit.") [INFO] [stdout] 173 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/utils/custom/screen.rs:195:65 [INFO] [stdout] | [INFO] [stdout] 195 | let mut window_builder = video_subsystem.window(&title, width, height); [INFO] [stdout] | ^^^^^^ help: change this to: `title` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/utils/custom/screen.rs:136:48 [INFO] [stdout] | [INFO] [stdout] 136 | using_fn: impl FnMut(&mut WindowCanvas) -> (), [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/utils/custom/screen.rs:139:9 [INFO] [stdout] | [INFO] [stdout] 139 | / match self.gui.as_mut() { [INFO] [stdout] 140 | | Some(ScreenGui { canvas, .. }) => { [INFO] [stdout] 141 | | let texture_creator = canvas.texture_creator(); [INFO] [stdout] 142 | | let mut texture = texture_creator [INFO] [stdout] ... | [INFO] [stdout] 162 | | _ => (), [INFO] [stdout] 163 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 139 ~ if let Some(ScreenGui { canvas, .. }) = self.gui.as_mut() { [INFO] [stdout] 140 + let texture_creator = canvas.texture_creator(); [INFO] [stdout] 141 + let mut texture = texture_creator [INFO] [stdout] 142 + .create_texture_target(PixelFormatEnum::RGB24, self.width, self.height) [INFO] [stdout] 143 + .expect("Create texture."); [INFO] [stdout] 144 + [INFO] [stdout] 145 + canvas [INFO] [stdout] 146 + .with_texture_canvas(&mut texture, using_fn) [INFO] [stdout] 147 + .expect("Was unable to render."); [INFO] [stdout] 148 + [INFO] [stdout] 149 + canvas [INFO] [stdout] 150 + .copy_ex( [INFO] [stdout] 151 + &mut texture, [INFO] [stdout] 152 + with_transformations.src, [INFO] [stdout] 153 + with_transformations.dst, [INFO] [stdout] 154 + with_transformations.angle, [INFO] [stdout] 155 + with_transformations.center, [INFO] [stdout] 156 + with_transformations.flip_horizontal, [INFO] [stdout] 157 + with_transformations.flip_vertical, [INFO] [stdout] 158 + ) [INFO] [stdout] 159 + .expect("Transformations failed to be applied."); [INFO] [stdout] 160 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `copy_ex` doesn't need a mutable reference [INFO] [stdout] --> src/utils/custom/screen.rs:152:25 [INFO] [stdout] | [INFO] [stdout] 152 | &mut texture, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] = note: `#[warn(clippy::unnecessary_mut_passed)]` on by default [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 152 - &mut texture, [INFO] [stdout] 152 + &texture, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/utils/custom/screen.rs:168:9 [INFO] [stdout] | [INFO] [stdout] 168 | / match self.gui.as_mut() { [INFO] [stdout] 169 | | Some(ScreenGui { event_pump, .. }) => { [INFO] [stdout] 170 | | for event in event_pump.poll_iter() { [INFO] [stdout] 171 | | match event { [INFO] [stdout] ... | [INFO] [stdout] 179 | | _ => (), [INFO] [stdout] 180 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 168 ~ if let Some(ScreenGui { event_pump, .. }) = self.gui.as_mut() { [INFO] [stdout] 169 + for event in event_pump.poll_iter() { [INFO] [stdout] 170 + match event { [INFO] [stdout] 171 + Event::Quit { .. } => { [INFO] [stdout] 172 + panic!("Animation was forced to exit.") [INFO] [stdout] 173 + } [INFO] [stdout] 174 + _ => (), [INFO] [stdout] 175 + } [INFO] [stdout] 176 + } [INFO] [stdout] 177 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/utils/custom/screen.rs:171:21 [INFO] [stdout] | [INFO] [stdout] 171 | / match event { [INFO] [stdout] 172 | | Event::Quit { .. } => { [INFO] [stdout] 173 | | panic!("Animation was forced to exit.") [INFO] [stdout] ... | [INFO] [stdout] 176 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 171 ~ if let Event::Quit { .. } = event { [INFO] [stdout] 172 + panic!("Animation was forced to exit.") [INFO] [stdout] 173 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/utils/custom/screen.rs:195:65 [INFO] [stdout] | [INFO] [stdout] 195 | let mut window_builder = video_subsystem.window(&title, width, height); [INFO] [stdout] | ^^^^^^ help: change this to: `title` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/utils/renderer.rs:44:17 [INFO] [stdout] | [INFO] [stdout] 44 | / match render_return { [INFO] [stdout] 45 | | Renders::SingleRgbArray(frame) => self.render_list.push(frame), [INFO] [stdout] 46 | | _ => (), [INFO] [stdout] 47 | | } [INFO] [stdout] | |_________________^ help: try: `if let Renders::SingleRgbArray(frame) = render_return { self.render_list.push(frame) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/utils/renderer.rs:44:17 [INFO] [stdout] | [INFO] [stdout] 44 | / match render_return { [INFO] [stdout] 45 | | Renders::SingleRgbArray(frame) => self.render_list.push(frame), [INFO] [stdout] 46 | | _ => (), [INFO] [stdout] 47 | | } [INFO] [stdout] | |_________________^ help: try: `if let Renders::SingleRgbArray(frame) = render_return { self.render_list.push(frame) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/utils/renderer.rs:100:1 [INFO] [stdout] | [INFO] [stdout] 100 | / impl Default for RenderMode { [INFO] [stdout] 101 | | fn default() -> Self { [INFO] [stdout] 102 | | Self::None [INFO] [stdout] 103 | | } [INFO] [stdout] 104 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 84 + #[derive(Default)] [INFO] [stdout] 85 | pub enum RenderMode { [INFO] [stdout] 86 | /// Indicates that that renderer should be done through the terminal or an external display. [INFO] [stdout] ... [INFO] [stdout] 97 | /// Indicates that renderer should be skipped. [INFO] [stdout] 98 ~ #[default] [INFO] [stdout] 99 ~ None, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/utils/seeding.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | return (generator, seed_no); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 25 - return (generator, seed_no); [INFO] [stdout] 25 + (generator, seed_no) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/utils/seeding.rs:22:34 [INFO] [stdout] | [INFO] [stdout] 22 | let seed_no = seed.unwrap_or((&mut thread_rng()).gen()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `thread_rng()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/envs/classical_control/cartpole.rs:338:10 [INFO] [stdout] | [INFO] [stdout] 338 | (vec![ [INFO] [stdout] | __________^ [INFO] [stdout] 339 | | observation.x, [INFO] [stdout] 340 | | observation.x_dot, [INFO] [stdout] 341 | | observation.theta, [INFO] [stdout] 342 | | observation.theta_dot, [INFO] [stdout] 343 | | ]) [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 338 ~ ([observation.x, [INFO] [stdout] 339 + observation.x_dot, [INFO] [stdout] 340 + observation.theta, [INFO] [stdout] 341 ~ observation.theta_dot]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:321:25 [INFO] [stdout] | [INFO] [stdout] 321 | &vec![flagx, flagx, flagx + 25], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[flagx, flagx, flagx + 25]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:322:25 [INFO] [stdout] | [INFO] [stdout] 322 | &vec![flagy2, flagy2 - 10, flagy2 - 5], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[flagy2, flagy2 - 10, flagy2 - 5]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:328:25 [INFO] [stdout] | [INFO] [stdout] 328 | &vec![flagx, flagx, flagx + 25], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[flagx, flagx, flagx + 25]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:329:25 [INFO] [stdout] | [INFO] [stdout] 329 | &vec![flagy2, flagy2 - 10, flagy2 - 5], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[flagy2, flagy2 - 10, flagy2 - 5]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/utils/renderer.rs:100:1 [INFO] [stdout] | [INFO] [stdout] 100 | / impl Default for RenderMode { [INFO] [stdout] 101 | | fn default() -> Self { [INFO] [stdout] 102 | | Self::None [INFO] [stdout] 103 | | } [INFO] [stdout] 104 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 84 + #[derive(Default)] [INFO] [stdout] 85 | pub enum RenderMode { [INFO] [stdout] 86 | /// Indicates that that renderer should be done through the terminal or an external display. [INFO] [stdout] ... [INFO] [stdout] 97 | /// Indicates that renderer should be skipped. [INFO] [stdout] 98 ~ #[default] [INFO] [stdout] 99 ~ None, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/utils/seeding.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | return (generator, seed_no); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 25 - return (generator, seed_no); [INFO] [stdout] 25 + (generator, seed_no) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/utils/seeding.rs:22:34 [INFO] [stdout] | [INFO] [stdout] 22 | let seed_no = seed.unwrap_or((&mut thread_rng()).gen()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `thread_rng()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/envs/classical_control/cartpole.rs:338:10 [INFO] [stdout] | [INFO] [stdout] 338 | (vec![ [INFO] [stdout] | __________^ [INFO] [stdout] 339 | | observation.x, [INFO] [stdout] 340 | | observation.x_dot, [INFO] [stdout] 341 | | observation.theta, [INFO] [stdout] 342 | | observation.theta_dot, [INFO] [stdout] 343 | | ]) [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 338 ~ ([observation.x, [INFO] [stdout] 339 + observation.x_dot, [INFO] [stdout] 340 + observation.theta, [INFO] [stdout] 341 ~ observation.theta_dot]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:321:25 [INFO] [stdout] | [INFO] [stdout] 321 | &vec![flagx, flagx, flagx + 25], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[flagx, flagx, flagx + 25]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:322:25 [INFO] [stdout] | [INFO] [stdout] 322 | &vec![flagy2, flagy2 - 10, flagy2 - 5], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[flagy2, flagy2 - 10, flagy2 - 5]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:328:25 [INFO] [stdout] | [INFO] [stdout] 328 | &vec![flagx, flagx, flagx + 25], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[flagx, flagx, flagx + 25]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/envs/classical_control/mountain_car.rs:329:25 [INFO] [stdout] | [INFO] [stdout] 329 | &vec![flagy2, flagy2 - 10, flagy2 - 5], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[flagy2, flagy2 - 10, flagy2 - 5]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> examples/mountain_car.rs:18:22 [INFO] [stdout] | [INFO] [stdout] 18 | let action = (&mut thread_rng()).gen_range(0..3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `thread_rng()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> examples/mountain_car.rs:28:22 [INFO] [stdout] | [INFO] [stdout] 28 | let action = (&mut thread_rng()).gen_range(0..3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `thread_rng()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> examples/cartpole.rs:17:26 [INFO] [stdout] | [INFO] [stdout] 17 | let action = (&mut thread_rng()).gen_range(0..=1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `thread_rng()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 00s [INFO] running `Command { std: "docker" "inspect" "83bdaaf2c928b5c76aee7c12e109086dd042d922f37b62b7d8cb0d50f690b8a8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "83bdaaf2c928b5c76aee7c12e109086dd042d922f37b62b7d8cb0d50f690b8a8", kill_on_drop: false }` [INFO] [stdout] 83bdaaf2c928b5c76aee7c12e109086dd042d922f37b62b7d8cb0d50f690b8a8