[INFO] fetching crate rlox-burn 0.2.0...
[INFO] checking rlox-burn-0.2.0 against c60b92c03ca8a3b101eb9d57f51e2232690638c7 for pr-164148-crater-rollup
[INFO] extracting crate rlox-burn 0.2.0 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate rlox-burn 0.2.0
[INFO] finished tweaking crates.io crate rlox-burn 0.2.0
[INFO] tweaked toml for crates.io crate rlox-burn 0.2.0 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate rlox-burn 0.2.0 on toolchain c60b92c03ca8a3b101eb9d57f51e2232690638c7
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c60b92c03ca8a3b101eb9d57f51e2232690638c7" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate rlox-burn 0.2.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" "+c60b92c03ca8a3b101eb9d57f51e2232690638c7" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 5c06d138f3b3303feff81c5f647008c11ea9285be1c40bdd932281b9fb9fffa3
[INFO] running `Command { std: "docker" "start" "5c06d138f3b3303feff81c5f647008c11ea9285be1c40bdd932281b9fb9fffa3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5c06d138f3b3303feff81c5f647008c11ea9285be1c40bdd932281b9fb9fffa3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5c06d138f3b3303feff81c5f647008c11ea9285be1c40bdd932281b9fb9fffa3" "/opt/rustwide/cargo-home/bin/cargo" "+c60b92c03ca8a3b101eb9d57f51e2232690638c7" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5c06d138f3b3303feff81c5f647008c11ea9285be1c40bdd932281b9fb9fffa3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5c06d138f3b3303feff81c5f647008c11ea9285be1c40bdd932281b9fb9fffa3" "/opt/rustwide/cargo-home/bin/cargo" "+c60b92c03ca8a3b101eb9d57f51e2232690638c7" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.40
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]     Checking fastrand v2.3.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling cubecl-common v0.4.0
[INFO] [stderr]     Checking embassy-futures v0.1.2
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling cubecl-runtime v0.4.0
[INFO] [stderr]    Compiling naga v23.1.0
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking futures-lite v2.6.1
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]     Checking codespan-reporting v0.11.1
[INFO] [stderr]     Checking gpu-alloc-types v0.3.0
[INFO] [stderr]     Checking gpu-descriptor-types v0.2.0
[INFO] [stderr]     Checking spirv v0.3.0+sdk-1.3.268.0
[INFO] [stderr]    Compiling wgpu-hal v23.0.1
[INFO] [stderr]     Checking md5 v0.7.0
[INFO] [stderr]     Checking hexf-parse v0.2.1
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking unicode-xid v0.2.6
[INFO] [stderr]     Checking ash v0.38.0+1.3.281
[INFO] [stderr]     Checking khronos-egl v6.0.0
[INFO] [stderr]     Checking gpu-alloc v0.6.0
[INFO] [stderr]     Checking wgpu-types v23.0.0
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling wgpu-core v23.0.1
[INFO] [stderr]     Checking async-lock v3.4.2
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking glow v0.14.2
[INFO] [stderr]     Checking profiling v1.0.17
[INFO] [stderr]    Compiling wgpu v23.0.1
[INFO] [stderr]    Compiling cubecl-wgpu v0.4.0
[INFO] [stderr]     Checking colored v2.2.0
[INFO] [stderr]     Checking serde_bytes v0.11.19
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]     Checking thread-tree v0.3.3
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]    Compiling burn-ndarray v0.16.1
[INFO] [stderr]     Checking rmp v0.8.15
[INFO] [stderr]     Checking atomic_float v1.1.0
[INFO] [stderr]     Checking data-encoding v2.10.0
[INFO] [stderr]     Checking uuid v1.22.0
[INFO] [stderr]     Checking ndarray v0.16.1
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking sanitize-filename v0.5.0
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerocopy-derive v0.8.40
[INFO] [stderr]    Compiling derive-new v0.6.0
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling derive_more-impl v1.0.0
[INFO] [stderr]    Compiling derive-new v0.7.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling burn-derive v0.16.1
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking rlox-nn v0.2.0
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]     Checking derive_more v1.0.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]     Checking rmp-serde v1.3.1
[INFO] [stderr]     Checking bincode v2.0.1
[INFO] [stderr]    Compiling cubecl-macros v0.4.0
[INFO] [stderr]     Checking gpu-descriptor v0.3.2
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking hashbrown v0.13.2
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking text_placeholder v0.5.1
[INFO] [stderr]     Checking rand_distr v0.4.3
[INFO] [stderr]     Checking burn-common v0.16.1
[INFO] [stderr]     Checking cubecl-core v0.4.0
[INFO] [stderr]     Checking cubecl-linalg v0.4.0
[INFO] [stderr]     Checking cubecl-reduce v0.4.0
[INFO] [stderr]     Checking cubecl v0.4.0
[INFO] [stderr]     Checking burn-tensor v0.16.1
[INFO] [stderr]     Checking burn-fusion v0.16.1
[INFO] [stderr]     Checking burn-autodiff v0.16.1
[INFO] [stderr]     Checking burn-jit v0.16.1
[INFO] [stderr]     Checking burn-wgpu v0.16.1
[INFO] [stderr]     Checking burn-core v0.16.1
[INFO] [stderr]     Checking burn v0.16.1
[INFO] [stderr]     Checking rlox-burn v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/actor_critic.rs:139:64
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 139 -         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 139 +         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 139 -         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 139 +         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &<<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/actor_critic.rs:190:64
[INFO] [stdout]     |
[INFO] [stdout] 190 |         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 190 -         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 190 +         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 190 -         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 190 +         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &<<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/actor_critic.rs:384:72
[INFO] [stdout]     |
[INFO] [stdout] 384 |         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device().into(), 42);
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 384 -         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device().into(), 42);
[INFO] [stdout] 384 +         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device(), 42);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 384 -         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device().into(), 42);
[INFO] [stdout] 384 +         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, <NdArrayDevice as Into<_>>::into(device()), 42);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/actor_critic.rs:401:72
[INFO] [stdout]     |
[INFO] [stdout] 401 |         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device().into(), 42);
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 401 -         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device().into(), 42);
[INFO] [stdout] 401 +         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device(), 42);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 401 -         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device().into(), 42);
[INFO] [stdout] 401 +         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, <NdArrayDevice as Into<_>>::into(device()), 42);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/actor_critic.rs:409:72
[INFO] [stdout]     |
[INFO] [stdout] 409 |         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device().into(), 42);
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 409 -         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device().into(), 42);
[INFO] [stdout] 409 +         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device(), 42);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 409 -         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device().into(), 42);
[INFO] [stdout] 409 +         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, <NdArrayDevice as Into<_>>::into(device()), 42);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/actor_critic.rs:421:76
[INFO] [stdout]     |
[INFO] [stdout] 421 |         let mut ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device().into(), 42);
[INFO] [stdout]     |                                                                            ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 421 -         let mut ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device().into(), 42);
[INFO] [stdout] 421 +         let mut ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device(), 42);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 421 -         let mut ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device().into(), 42);
[INFO] [stdout] 421 +         let mut ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, <NdArrayDevice as Into<_>>::into(device()), 42);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/actor_critic.rs:453:74
[INFO] [stdout]     |
[INFO] [stdout] 453 |         let mut ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 1e-3, device().into(), 42);
[INFO] [stdout]     |                                                                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 453 -         let mut ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 1e-3, device().into(), 42);
[INFO] [stdout] 453 +         let mut ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 1e-3, device(), 42);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 453 -         let mut ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 1e-3, device().into(), 42);
[INFO] [stdout] 453 +         let mut ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 1e-3, <NdArrayDevice as Into<_>>::into(device()), 42);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/actor_critic.rs:500:76
[INFO] [stdout]     |
[INFO] [stdout] 500 |         let mut ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device().into(), 42);
[INFO] [stdout]     |                                                                            ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 500 -         let mut ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device().into(), 42);
[INFO] [stdout] 500 +         let mut ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device(), 42);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 500 -         let mut ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device().into(), 42);
[INFO] [stdout] 500 +         let mut ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, <NdArrayDevice as Into<_>>::into(device()), 42);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/actor_critic.rs:508:72
[INFO] [stdout]     |
[INFO] [stdout] 508 |         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device().into(), 42);
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 508 -         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device().into(), 42);
[INFO] [stdout] 508 +         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device(), 42);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 508 -         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device().into(), 42);
[INFO] [stdout] 508 +         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, <NdArrayDevice as Into<_>>::into(device()), 42);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/actor_critic.rs:515:72
[INFO] [stdout]     |
[INFO] [stdout] 515 |         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device().into(), 42);
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 515 -         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device().into(), 42);
[INFO] [stdout] 515 +         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device(), 42);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 515 -         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, device().into(), 42);
[INFO] [stdout] 515 +         let ac = BurnActorCritic::<TestBackend>::new(4, 2, 64, 2.5e-4, <NdArrayDevice as Into<_>>::into(device()), 42);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/continuous_q.rs:132:59
[INFO] [stdout]     |
[INFO] [stdout] 132 |         let obs_t = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 132 -         let obs_t = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 132 +         let obs_t = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 132 -         let obs_t = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 132 +         let obs_t = to_tensor_2d::<B::InnerBackend>(obs, &<<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/continuous_q.rs:133:63
[INFO] [stdout]     |
[INFO] [stdout] 133 |         let act_t = to_tensor_2d::<B::InnerBackend>(actions, &self.device.clone().into());
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 133 -         let act_t = to_tensor_2d::<B::InnerBackend>(actions, &self.device.clone().into());
[INFO] [stdout] 133 +         let act_t = to_tensor_2d::<B::InnerBackend>(actions, &self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 133 -         let act_t = to_tensor_2d::<B::InnerBackend>(actions, &self.device.clone().into());
[INFO] [stdout] 133 +         let act_t = to_tensor_2d::<B::InnerBackend>(actions, &<<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/continuous_q.rs:143:57
[INFO] [stdout]     |
[INFO] [stdout] 143 |         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 143 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 143 +         let dev: <B::InnerBackend as Backend>::Device = self.device.clone();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 143 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 143 +         let dev: <B::InnerBackend as Backend>::Device = <<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/continuous_q.rs:160:57
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 160 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 160 +         let dev: <B::InnerBackend as Backend>::Device = self.device.clone();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 160 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 160 +         let dev: <B::InnerBackend as Backend>::Device = <<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/actor_critic.rs:139:64
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 139 -         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 139 +         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 139 -         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 139 +         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &<<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/continuous_q.rs:224:18
[INFO] [stdout]     |
[INFO] [stdout] 224 |                 &self.device.clone().into(),
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 224 -                 &self.device.clone().into(),
[INFO] [stdout] 224 +                 &self.device.clone(),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 224 -                 &self.device.clone().into(),
[INFO] [stdout] 224 +                 &<<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/continuous_q.rs:230:18
[INFO] [stdout]     |
[INFO] [stdout] 230 |                 &self.device.clone().into(),
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 230 -                 &self.device.clone().into(),
[INFO] [stdout] 230 +                 &self.device.clone(),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 230 -                 &self.device.clone().into(),
[INFO] [stdout] 230 +                 &<<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/actor_critic.rs:190:64
[INFO] [stdout]     |
[INFO] [stdout] 190 |         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 190 -         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 190 +         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 190 -         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 190 +         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &<<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/continuous_q.rs:132:59
[INFO] [stdout]     |
[INFO] [stdout] 132 |         let obs_t = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 132 -         let obs_t = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 132 +         let obs_t = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 132 -         let obs_t = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 132 +         let obs_t = to_tensor_2d::<B::InnerBackend>(obs, &<<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/continuous_q.rs:293:66
[INFO] [stdout]     |
[INFO] [stdout] 293 |         let twin = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device().into());
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 293 -         let twin = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device().into());
[INFO] [stdout] 293 +         let twin = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 293 -         let twin = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device().into());
[INFO] [stdout] 293 +         let twin = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, <NdArrayDevice as Into<_>>::into(device()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/continuous_q.rs:133:63
[INFO] [stdout]     |
[INFO] [stdout] 133 |         let act_t = to_tensor_2d::<B::InnerBackend>(actions, &self.device.clone().into());
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 133 -         let act_t = to_tensor_2d::<B::InnerBackend>(actions, &self.device.clone().into());
[INFO] [stdout] 133 +         let act_t = to_tensor_2d::<B::InnerBackend>(actions, &self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 133 -         let act_t = to_tensor_2d::<B::InnerBackend>(actions, &self.device.clone().into());
[INFO] [stdout] 133 +         let act_t = to_tensor_2d::<B::InnerBackend>(actions, &<<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/continuous_q.rs:303:66
[INFO] [stdout]     |
[INFO] [stdout] 303 |         let twin = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device().into());
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 303 -         let twin = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device().into());
[INFO] [stdout] 303 +         let twin = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 303 -         let twin = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device().into());
[INFO] [stdout] 303 +         let twin = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, <NdArrayDevice as Into<_>>::into(device()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/continuous_q.rs:313:70
[INFO] [stdout]     |
[INFO] [stdout] 313 |         let mut twin = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device().into());
[INFO] [stdout]     |                                                                      ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 313 -         let mut twin = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device().into());
[INFO] [stdout] 313 +         let mut twin = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 313 -         let mut twin = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device().into());
[INFO] [stdout] 313 +         let mut twin = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, <NdArrayDevice as Into<_>>::into(device()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/continuous_q.rs:326:70
[INFO] [stdout]     |
[INFO] [stdout] 326 |         let mut twin = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device().into());
[INFO] [stdout]     |                                                                      ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 326 -         let mut twin = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device().into());
[INFO] [stdout] 326 +         let mut twin = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 326 -         let mut twin = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device().into());
[INFO] [stdout] 326 +         let mut twin = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, <NdArrayDevice as Into<_>>::into(device()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/continuous_q.rs:143:57
[INFO] [stdout]     |
[INFO] [stdout] 143 |         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 143 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 143 +         let dev: <B::InnerBackend as Backend>::Device = self.device.clone();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 143 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 143 +         let dev: <B::InnerBackend as Backend>::Device = <<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/continuous_q.rs:160:57
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 160 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 160 +         let dev: <B::InnerBackend as Backend>::Device = self.device.clone();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 160 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 160 +         let dev: <B::InnerBackend as Backend>::Device = <<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/continuous_q.rs:224:18
[INFO] [stdout]     |
[INFO] [stdout] 224 |                 &self.device.clone().into(),
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 224 -                 &self.device.clone().into(),
[INFO] [stdout] 224 +                 &self.device.clone(),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 224 -                 &self.device.clone().into(),
[INFO] [stdout] 224 +                 &<<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/continuous_q.rs:230:18
[INFO] [stdout]     |
[INFO] [stdout] 230 |                 &self.device.clone().into(),
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 230 -                 &self.device.clone().into(),
[INFO] [stdout] 230 +                 &self.device.clone(),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 230 -                 &self.device.clone().into(),
[INFO] [stdout] 230 +                 &<<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/deterministic.rs:169:57
[INFO] [stdout]     |
[INFO] [stdout] 169 |         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 169 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 169 +         let dev: <B::InnerBackend as Backend>::Device = self.device.clone();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 169 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 169 +         let dev: <B::InnerBackend as Backend>::Device = <<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/deterministic.rs:176:57
[INFO] [stdout]     |
[INFO] [stdout] 176 |         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 176 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 176 +         let dev: <B::InnerBackend as Backend>::Device = self.device.clone();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 176 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 176 +         let dev: <B::InnerBackend as Backend>::Device = <<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/deterministic.rs:189:61
[INFO] [stdout]     |
[INFO] [stdout] 189 |             let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 189 -             let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 189 +             let dev: <B::InnerBackend as Backend>::Device = self.device.clone();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 189 -             let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 189 +             let dev: <B::InnerBackend as Backend>::Device = <<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/deterministic.rs:169:57
[INFO] [stdout]     |
[INFO] [stdout] 169 |         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 169 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 169 +         let dev: <B::InnerBackend as Backend>::Device = self.device.clone();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 169 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 169 +         let dev: <B::InnerBackend as Backend>::Device = <<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/deterministic.rs:176:57
[INFO] [stdout]     |
[INFO] [stdout] 176 |         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 176 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 176 +         let dev: <B::InnerBackend as Backend>::Device = self.device.clone();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 176 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 176 +         let dev: <B::InnerBackend as Backend>::Device = <<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/deterministic.rs:288:78
[INFO] [stdout]     |
[INFO] [stdout] 288 |             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 3e-4, device().into());
[INFO] [stdout]     |                                                                              ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 288 -             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 3e-4, device().into());
[INFO] [stdout] 288 +             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 3e-4, device());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 288 -             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 3e-4, device().into());
[INFO] [stdout] 288 +             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 3e-4, <NdArrayDevice as Into<_>>::into(device()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/deterministic.rs:297:78
[INFO] [stdout]     |
[INFO] [stdout] 297 |             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 3e-4, device().into());
[INFO] [stdout]     |                                                                              ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 297 -             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 3e-4, device().into());
[INFO] [stdout] 297 +             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 3e-4, device());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 297 -             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 3e-4, device().into());
[INFO] [stdout] 297 +             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 3e-4, <NdArrayDevice as Into<_>>::into(device()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/deterministic.rs:189:61
[INFO] [stdout]     |
[INFO] [stdout] 189 |             let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 189 -             let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 189 +             let dev: <B::InnerBackend as Backend>::Device = self.device.clone();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 189 -             let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 189 +             let dev: <B::InnerBackend as Backend>::Device = <<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/deterministic.rs:310:78
[INFO] [stdout]     |
[INFO] [stdout] 310 |             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 3e-4, device().into());
[INFO] [stdout]     |                                                                              ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 310 -             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 3e-4, device().into());
[INFO] [stdout] 310 +             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 3e-4, device());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 310 -             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 3e-4, device().into());
[INFO] [stdout] 310 +             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 3e-4, <NdArrayDevice as Into<_>>::into(device()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/dqn.rs:205:64
[INFO] [stdout]     |
[INFO] [stdout] 205 |         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 205 -         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 205 +         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 205 -         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 205 +         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &<<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/dqn.rs:205:64
[INFO] [stdout]     |
[INFO] [stdout] 205 |         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 205 -         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 205 +         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 205 -         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 205 +         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &<<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/dqn.rs:211:64
[INFO] [stdout]     |
[INFO] [stdout] 211 |         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 211 -         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 211 +         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 211 -         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 211 +         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &<<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/dqn.rs:213:73
[INFO] [stdout]     |
[INFO] [stdout] 213 |         let actions_int = to_int_tensor_1d::<B::InnerBackend>(actions, &self.device.clone().into());
[INFO] [stdout]     |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 213 -         let actions_int = to_int_tensor_1d::<B::InnerBackend>(actions, &self.device.clone().into());
[INFO] [stdout] 213 +         let actions_int = to_int_tensor_1d::<B::InnerBackend>(actions, &self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 213 -         let actions_int = to_int_tensor_1d::<B::InnerBackend>(actions, &self.device.clone().into());
[INFO] [stdout] 213 +         let actions_int = to_int_tensor_1d::<B::InnerBackend>(actions, &<<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/dqn.rs:256:64
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 256 -         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 256 +         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 256 -         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 256 +         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &<<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/dqn.rs:298:63
[INFO] [stdout]     |
[INFO] [stdout] 298 |         let dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, device().into());
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 298 -         let dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, device().into());
[INFO] [stdout] 298 +         let dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, device());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 298 -         let dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, device().into());
[INFO] [stdout] 298 +         let dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, <NdArrayDevice as Into<_>>::into(device()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/dqn.rs:307:63
[INFO] [stdout]     |
[INFO] [stdout] 307 |         let dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, device().into());
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 307 -         let dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, device().into());
[INFO] [stdout] 307 +         let dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, device());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 307 -         let dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, device().into());
[INFO] [stdout] 307 +         let dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, <NdArrayDevice as Into<_>>::into(device()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/dqn.rs:211:64
[INFO] [stdout]     |
[INFO] [stdout] 211 |         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 211 -         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 211 +         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 211 -         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 211 +         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &<<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/dqn.rs:317:67
[INFO] [stdout]     |
[INFO] [stdout] 317 |         let mut dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, device().into());
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 317 -         let mut dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, device().into());
[INFO] [stdout] 317 +         let mut dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, device());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 317 -         let mut dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, device().into());
[INFO] [stdout] 317 +         let mut dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, <NdArrayDevice as Into<_>>::into(device()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/dqn.rs:330:67
[INFO] [stdout]     |
[INFO] [stdout] 330 |         let mut dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, device().into());
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 330 -         let mut dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, device().into());
[INFO] [stdout] 330 +         let mut dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, device());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 330 -         let mut dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, device().into());
[INFO] [stdout] 330 +         let mut dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, <NdArrayDevice as Into<_>>::into(device()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/dqn.rs:345:67
[INFO] [stdout]     |
[INFO] [stdout] 345 |         let mut dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, device().into());
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 345 -         let mut dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, device().into());
[INFO] [stdout] 345 +         let mut dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, device());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 345 -         let mut dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, device().into());
[INFO] [stdout] 345 +         let mut dqn = BurnDQN::<TestBackend>::new(4, 2, 64, 1e-4, <NdArrayDevice as Into<_>>::into(device()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/dqn.rs:213:73
[INFO] [stdout]     |
[INFO] [stdout] 213 |         let actions_int = to_int_tensor_1d::<B::InnerBackend>(actions, &self.device.clone().into());
[INFO] [stdout]     |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 213 -         let actions_int = to_int_tensor_1d::<B::InnerBackend>(actions, &self.device.clone().into());
[INFO] [stdout] 213 +         let actions_int = to_int_tensor_1d::<B::InnerBackend>(actions, &self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 213 -         let actions_int = to_int_tensor_1d::<B::InnerBackend>(actions, &self.device.clone().into());
[INFO] [stdout] 213 +         let actions_int = to_int_tensor_1d::<B::InnerBackend>(actions, &<<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/dqn.rs:256:64
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 256 -         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 256 +         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 256 -         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &self.device.clone().into());
[INFO] [stdout] 256 +         let obs_tensor = to_tensor_2d::<B::InnerBackend>(obs, &<<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]   --> src/entropy.rs:94:64
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let tuner = BurnEntropyTuner::<TestBackend>::new(3e-4, device().into());
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 94 -         let tuner = BurnEntropyTuner::<TestBackend>::new(3e-4, device().into());
[INFO] [stdout] 94 +         let tuner = BurnEntropyTuner::<TestBackend>::new(3e-4, device());
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 94 -         let tuner = BurnEntropyTuner::<TestBackend>::new(3e-4, device().into());
[INFO] [stdout] 94 +         let tuner = BurnEntropyTuner::<TestBackend>::new(3e-4, <NdArrayDevice as Into<_>>::into(device()));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/entropy.rs:101:68
[INFO] [stdout]     |
[INFO] [stdout] 101 |         let mut tuner = BurnEntropyTuner::<TestBackend>::new(3e-4, device().into());
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 101 -         let mut tuner = BurnEntropyTuner::<TestBackend>::new(3e-4, device().into());
[INFO] [stdout] 101 +         let mut tuner = BurnEntropyTuner::<TestBackend>::new(3e-4, device());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 101 -         let mut tuner = BurnEntropyTuner::<TestBackend>::new(3e-4, device().into());
[INFO] [stdout] 101 +         let mut tuner = BurnEntropyTuner::<TestBackend>::new(3e-4, <NdArrayDevice as Into<_>>::into(device()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/entropy.rs:109:68
[INFO] [stdout]     |
[INFO] [stdout] 109 |         let mut tuner = BurnEntropyTuner::<TestBackend>::new(1e-2, device().into());
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 109 -         let mut tuner = BurnEntropyTuner::<TestBackend>::new(1e-2, device().into());
[INFO] [stdout] 109 +         let mut tuner = BurnEntropyTuner::<TestBackend>::new(1e-2, device());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 109 -         let mut tuner = BurnEntropyTuner::<TestBackend>::new(1e-2, device().into());
[INFO] [stdout] 109 +         let mut tuner = BurnEntropyTuner::<TestBackend>::new(1e-2, <NdArrayDevice as Into<_>>::into(device()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/entropy.rs:124:68
[INFO] [stdout]     |
[INFO] [stdout] 124 |         let mut tuner = BurnEntropyTuner::<TestBackend>::new(1e-1, device().into());
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 124 -         let mut tuner = BurnEntropyTuner::<TestBackend>::new(1e-1, device().into());
[INFO] [stdout] 124 +         let mut tuner = BurnEntropyTuner::<TestBackend>::new(1e-1, device());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 124 -         let mut tuner = BurnEntropyTuner::<TestBackend>::new(1e-1, device().into());
[INFO] [stdout] 124 +         let mut tuner = BurnEntropyTuner::<TestBackend>::new(1e-1, <NdArrayDevice as Into<_>>::into(device()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/stochastic.rs:202:57
[INFO] [stdout]     |
[INFO] [stdout] 202 |         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 202 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 202 +         let dev: <B::InnerBackend as Backend>::Device = self.device.clone();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 202 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 202 +         let dev: <B::InnerBackend as Backend>::Device = <<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/stochastic.rs:253:57
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 253 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 253 +         let dev: <B::InnerBackend as Backend>::Device = self.device.clone();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 253 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 253 +         let dev: <B::InnerBackend as Backend>::Device = <<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/stochastic.rs:202:57
[INFO] [stdout]     |
[INFO] [stdout] 202 |         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 202 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 202 +         let dev: <B::InnerBackend as Backend>::Device = self.device.clone();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 202 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 202 +         let dev: <B::InnerBackend as Backend>::Device = <<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `<B as burn::prelude::Backend>::Device` rlox_burn
[INFO] [stdout]    --> src/stochastic.rs:253:57
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 253 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 253 +         let dev: <B::InnerBackend as Backend>::Device = self.device.clone();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 253 -         let dev: <B::InnerBackend as Backend>::Device = self.device.clone().into();
[INFO] [stdout] 253 +         let dev: <B::InnerBackend as Backend>::Device = <<B as burn::prelude::Backend>::Device as Into<_>>::into(self.device.clone());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/stochastic.rs:333:79
[INFO] [stdout]     |
[INFO] [stdout] 333 |         let policy = BurnStochasticPolicy::<TestBackend>::new(3, 2, 64, 3e-4, device().into(), 42);
[INFO] [stdout]     |                                                                               ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 333 -         let policy = BurnStochasticPolicy::<TestBackend>::new(3, 2, 64, 3e-4, device().into(), 42);
[INFO] [stdout] 333 +         let policy = BurnStochasticPolicy::<TestBackend>::new(3, 2, 64, 3e-4, device(), 42);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 333 -         let policy = BurnStochasticPolicy::<TestBackend>::new(3, 2, 64, 3e-4, device().into(), 42);
[INFO] [stdout] 333 +         let policy = BurnStochasticPolicy::<TestBackend>::new(3, 2, 64, 3e-4, <NdArrayDevice as Into<_>>::into(device()), 42);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/stochastic.rs:342:79
[INFO] [stdout]     |
[INFO] [stdout] 342 |         let policy = BurnStochasticPolicy::<TestBackend>::new(3, 1, 64, 3e-4, device().into(), 42);
[INFO] [stdout]     |                                                                               ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 342 -         let policy = BurnStochasticPolicy::<TestBackend>::new(3, 1, 64, 3e-4, device().into(), 42);
[INFO] [stdout] 342 +         let policy = BurnStochasticPolicy::<TestBackend>::new(3, 1, 64, 3e-4, device(), 42);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 342 -         let policy = BurnStochasticPolicy::<TestBackend>::new(3, 1, 64, 3e-4, device().into(), 42);
[INFO] [stdout] 342 +         let policy = BurnStochasticPolicy::<TestBackend>::new(3, 1, 64, 3e-4, <NdArrayDevice as Into<_>>::into(device()), 42);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/stochastic.rs:355:79
[INFO] [stdout]     |
[INFO] [stdout] 355 |         let policy = BurnStochasticPolicy::<TestBackend>::new(3, 2, 64, 3e-4, device().into(), 42);
[INFO] [stdout]     |                                                                               ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 355 -         let policy = BurnStochasticPolicy::<TestBackend>::new(3, 2, 64, 3e-4, device().into(), 42);
[INFO] [stdout] 355 +         let policy = BurnStochasticPolicy::<TestBackend>::new(3, 2, 64, 3e-4, device(), 42);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 355 -         let policy = BurnStochasticPolicy::<TestBackend>::new(3, 2, 64, 3e-4, device().into(), 42);
[INFO] [stdout] 355 +         let policy = BurnStochasticPolicy::<TestBackend>::new(3, 2, 64, 3e-4, <NdArrayDevice as Into<_>>::into(device()), 42);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/stochastic.rs:363:79
[INFO] [stdout]     |
[INFO] [stdout] 363 |         let policy = BurnStochasticPolicy::<TestBackend>::new(3, 1, 64, 3e-4, device().into(), 42);
[INFO] [stdout]     |                                                                               ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 363 -         let policy = BurnStochasticPolicy::<TestBackend>::new(3, 1, 64, 3e-4, device().into(), 42);
[INFO] [stdout] 363 +         let policy = BurnStochasticPolicy::<TestBackend>::new(3, 1, 64, 3e-4, device(), 42);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 363 -         let policy = BurnStochasticPolicy::<TestBackend>::new(3, 1, 64, 3e-4, device().into(), 42);
[INFO] [stdout] 363 +         let policy = BurnStochasticPolicy::<TestBackend>::new(3, 1, 64, 3e-4, <NdArrayDevice as Into<_>>::into(device()), 42);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]   --> src/training.rs:31:78
[INFO] [stdout]    |
[INFO] [stdout] 31 |             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 1e-2, device().into());
[INFO] [stdout]    |                                                                              ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 31 -             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 1e-2, device().into());
[INFO] [stdout] 31 +             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 1e-2, device());
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 31 -             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 1e-2, device().into());
[INFO] [stdout] 31 +             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 1e-2, <NdArrayDevice as Into<_>>::into(device()));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]   --> src/training.rs:32:68
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let critic = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device().into());
[INFO] [stdout]    |                                                                    ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 32 -         let critic = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device().into());
[INFO] [stdout] 32 +         let critic = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device());
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 32 -         let critic = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device().into());
[INFO] [stdout] 32 +         let critic = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, <NdArrayDevice as Into<_>>::into(device()));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]   --> src/training.rs:64:78
[INFO] [stdout]    |
[INFO] [stdout] 64 |             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 1e-2, device().into());
[INFO] [stdout]    |                                                                              ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 64 -             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 1e-2, device().into());
[INFO] [stdout] 64 +             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 1e-2, device());
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 64 -             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 1e-2, device().into());
[INFO] [stdout] 64 +             BurnDeterministicPolicy::<TestBackend>::new(3, 1, 64, 1.0, 1e-2, <NdArrayDevice as Into<_>>::into(device()));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]   --> src/training.rs:65:68
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let critic = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device().into());
[INFO] [stdout]    |                                                                    ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 65 -         let critic = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device().into());
[INFO] [stdout] 65 +         let critic = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device());
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 65 -         let critic = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device().into());
[INFO] [stdout] 65 +         let critic = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, <NdArrayDevice as Into<_>>::into(device()));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]   --> src/training.rs:95:70
[INFO] [stdout]    |
[INFO] [stdout] 95 |             BurnStochasticPolicy::<TestBackend>::new(3, 2, 64, 1e-2, device().into(), 42);
[INFO] [stdout]    |                                                                      ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 95 -             BurnStochasticPolicy::<TestBackend>::new(3, 2, 64, 1e-2, device().into(), 42);
[INFO] [stdout] 95 +             BurnStochasticPolicy::<TestBackend>::new(3, 2, 64, 1e-2, device(), 42);
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 95 -             BurnStochasticPolicy::<TestBackend>::new(3, 2, 64, 1e-2, device().into(), 42);
[INFO] [stdout] 95 +             BurnStochasticPolicy::<TestBackend>::new(3, 2, 64, 1e-2, <NdArrayDevice as Into<_>>::into(device()), 42);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]   --> src/training.rs:96:68
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let critic = BurnTwinQ::<TestBackend>::new(3, 2, 64, 3e-4, device().into());
[INFO] [stdout]    |                                                                    ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 96 -         let critic = BurnTwinQ::<TestBackend>::new(3, 2, 64, 3e-4, device().into());
[INFO] [stdout] 96 +         let critic = BurnTwinQ::<TestBackend>::new(3, 2, 64, 3e-4, device());
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 96 -         let critic = BurnTwinQ::<TestBackend>::new(3, 2, 64, 3e-4, device().into());
[INFO] [stdout] 96 +         let critic = BurnTwinQ::<TestBackend>::new(3, 2, 64, 3e-4, <NdArrayDevice as Into<_>>::into(device()));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/training.rs:126:70
[INFO] [stdout]     |
[INFO] [stdout] 126 |             BurnStochasticPolicy::<TestBackend>::new(3, 1, 64, 1e-2, device().into(), 42);
[INFO] [stdout]     |                                                                      ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 126 -             BurnStochasticPolicy::<TestBackend>::new(3, 1, 64, 1e-2, device().into(), 42);
[INFO] [stdout] 126 +             BurnStochasticPolicy::<TestBackend>::new(3, 1, 64, 1e-2, device(), 42);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 126 -             BurnStochasticPolicy::<TestBackend>::new(3, 1, 64, 1e-2, device().into(), 42);
[INFO] [stdout] 126 +             BurnStochasticPolicy::<TestBackend>::new(3, 1, 64, 1e-2, <NdArrayDevice as Into<_>>::into(device()), 42);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NdArrayDevice` rlox_burn
[INFO] [stdout]    --> src/training.rs:127:68
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let critic = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device().into());
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 127 -         let critic = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device().into());
[INFO] [stdout] 127 +         let critic = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device());
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 127 -         let critic = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, device().into());
[INFO] [stdout] 127 +         let critic = BurnTwinQ::<TestBackend>::new(3, 1, 64, 3e-4, <NdArrayDevice as Into<_>>::into(device()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rlox-burn` (lib) due to 17 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `rlox-burn` (lib test) due to 53 previous errors
[INFO] running `Command { std: "docker" "inspect" "5c06d138f3b3303feff81c5f647008c11ea9285be1c40bdd932281b9fb9fffa3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5c06d138f3b3303feff81c5f647008c11ea9285be1c40bdd932281b9fb9fffa3", kill_on_drop: false }`
[INFO] [stdout] 5c06d138f3b3303feff81c5f647008c11ea9285be1c40bdd932281b9fb9fffa3
