[INFO] cloning repository https://github.com/dthelegend/street-fighter-ai-reloaded [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dthelegend/street-fighter-ai-reloaded" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdthelegend%2Fstreet-fighter-ai-reloaded", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdthelegend%2Fstreet-fighter-ai-reloaded'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 209c63b96b131578b101d75e0c94dc4c6b315798 [INFO] checking dthelegend/street-fighter-ai-reloaded against master#f8c27dfe1a2e7fb538fd91dad53de06992c7c967 for pr-138915 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdthelegend%2Fstreet-fighter-ai-reloaded" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/dthelegend/street-fighter-ai-reloaded on toolchain f8c27dfe1a2e7fb538fd91dad53de06992c7c967 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f8c27dfe1a2e7fb538fd91dad53de06992c7c967" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/dthelegend/street-fighter-ai-reloaded [INFO] finished tweaking git repo https://github.com/dthelegend/street-fighter-ai-reloaded [INFO] tweaked toml for git repo https://github.com/dthelegend/street-fighter-ai-reloaded written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/dthelegend/street-fighter-ai-reloaded 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" "+f8c27dfe1a2e7fb538fd91dad53de06992c7c967" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded printf-compat v0.1.1 [INFO] [stderr] Downloaded printf v0.1.0 [INFO] [stderr] Downloaded numpy v0.19.0 [INFO] [stderr] Downloaded cstr_core v0.2.6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4b26683ee3c49f365255c425c23003cbf4366de097804722c29c5bbbee3624d2" "/opt/rustwide/cargo-home/bin/cargo" "+f8c27dfe1a2e7fb538fd91dad53de06992c7c967" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f68599da9d81cea25888405c216065f86859e5dcb84c89f5d05cd955b8ca0596 [INFO] running `Command { std: "docker" "start" "-a" "f68599da9d81cea25888405c216065f86859e5dcb84c89f5d05cd955b8ca0596", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f68599da9d81cea25888405c216065f86859e5dcb84c89f5d05cd955b8ca0596", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f68599da9d81cea25888405c216065f86859e5dcb84c89f5d05cd955b8ca0596", kill_on_drop: false }` [INFO] [stdout] f68599da9d81cea25888405c216065f86859e5dcb84c89f5d05cd955b8ca0596 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4b26683ee3c49f365255c425c23003cbf4366de097804722c29c5bbbee3624d2" "/opt/rustwide/cargo-home/bin/cargo" "+f8c27dfe1a2e7fb538fd91dad53de06992c7c967" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1dd479d46b410a9239cf05a325859685fccae976ecf327edd1c35645bc51fcbb [INFO] running `Command { std: "docker" "start" "-a" "1dd479d46b410a9239cf05a325859685fccae976ecf327edd1c35645bc51fcbb", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.1.0 [INFO] [stderr] Compiling proc-macro2 v1.0.67 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling target-lexicon v0.12.11 [INFO] [stderr] Compiling libc v0.2.149 [INFO] [stderr] Compiling once_cell v1.18.0 [INFO] [stderr] Compiling glob v0.3.1 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling rustix v0.38.17 [INFO] [stderr] Compiling prettyplease v0.2.15 [INFO] [stderr] Compiling bitflags v2.4.0 [INFO] [stderr] Compiling regex-syntax v0.7.5 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling memchr v2.6.4 [INFO] [stderr] Compiling linux-raw-sys v0.4.8 [INFO] [stderr] Compiling minimal-lexical v0.2.1 [INFO] [stderr] Compiling parking_lot_core v0.9.8 [INFO] [stderr] Compiling libloading v0.7.4 [INFO] [stderr] Compiling bindgen v0.65.1 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Compiling home v0.5.5 [INFO] [stderr] Checking smallvec v1.11.1 [INFO] [stderr] Compiling either v1.9.0 [INFO] [stderr] Compiling lazycell v1.3.0 [INFO] [stderr] Compiling num-traits v0.2.16 [INFO] [stderr] Compiling lock_api v0.4.10 [INFO] [stderr] Compiling num-integer v0.1.45 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling memoffset v0.9.0 [INFO] [stderr] Compiling clang-sys v1.6.1 [INFO] [stderr] Compiling matrixmultiply v0.3.8 [INFO] [stderr] Compiling shlex v1.2.0 [INFO] [stderr] Compiling gcc v0.3.55 [INFO] [stderr] Compiling peeking_take_while v0.1.2 [INFO] [stderr] Compiling rustc-hash v1.1.0 [INFO] [stderr] Compiling quote v1.0.33 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling bitflags v1.3.2 [INFO] [stderr] Compiling log v0.4.20 [INFO] [stderr] Checking rawpointer v0.2.1 [INFO] [stderr] Compiling pyo3-build-config v0.19.2 [INFO] [stderr] Compiling syn v2.0.38 [INFO] [stderr] Compiling indoc v1.0.9 [INFO] [stderr] Checking unindent v0.1.11 [INFO] [stderr] Checking cty v0.2.2 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking itertools v0.9.0 [INFO] [stderr] Compiling cc v1.0.83 [INFO] [stderr] Checking libloading v0.8.1 [INFO] [stderr] Compiling printf v0.1.0 [INFO] [stderr] Checking cstr_core v0.2.6 [INFO] [stderr] Checking printf-compat v0.1.1 [INFO] [stderr] Checking num-complex v0.4.4 [INFO] [stderr] Compiling regex-automata v0.3.9 [INFO] [stderr] Compiling libffi-sys v2.3.0 [INFO] [stderr] Checking ndarray v0.15.6 [INFO] [stderr] Compiling which v4.4.2 [INFO] [stderr] Compiling cexpr v0.6.0 [INFO] [stderr] Compiling pyo3-ffi v0.19.2 [INFO] [stderr] Compiling pyo3 v0.19.2 [INFO] [stderr] Compiling regex v1.9.6 [INFO] [stderr] Compiling pyo3-macros-backend v0.19.2 [INFO] [stderr] Compiling pyo3-macros v0.19.2 [INFO] [stderr] Compiling street-fighter-ai-reloaded v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Checking numpy v0.19.0 [INFO] [stderr] Checking libffi v3.2.0 [INFO] [stdout] warning: unused imports: `Mutex` and `rc::Rc` [INFO] [stdout] --> src/retro/libretrocore.rs:1:41 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{ffi::{c_void, c_uint}, sync::{Mutex, Arc}, rc::Rc}; [INFO] [stdout] | ^^^^^ ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/retro/libretrocore.rs:163:29 [INFO] [stdout] | [INFO] [stdout] 159 | unsafe { [INFO] [stdout] | ------ because it's nested under this `unsafe` block [INFO] [stdout] ... [INFO] [stdout] 163 | else { Some(unsafe { std::slice::from_raw_parts(data as *const u8, (width * height) as usize) }) } [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `port` [INFO] [stdout] --> src/retro/libretrocore.rs:223:37 [INFO] [stdout] | [INFO] [stdout] 223 | unsafe extern "C" fn on_input_state(port: c_uint, device: c_uint, index: c_uint, id: c_uint) -> i16 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `device` [INFO] [stdout] --> src/retro/libretrocore.rs:223:51 [INFO] [stdout] | [INFO] [stdout] 223 | unsafe extern "C" fn on_input_state(port: c_uint, device: c_uint, index: c_uint, id: c_uint) -> i16 { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `index` [INFO] [stdout] --> src/retro/libretrocore.rs:223:67 [INFO] [stdout] | [INFO] [stdout] 223 | unsafe extern "C" fn on_input_state(port: c_uint, device: c_uint, index: c_uint, id: c_uint) -> i16 { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/retro/libretrocore.rs:223:82 [INFO] [stdout] | [INFO] [stdout] 223 | unsafe extern "C" fn on_input_state(port: c_uint, device: c_uint, index: c_uint, id: c_uint) -> i16 { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `left` [INFO] [stdout] --> src/retro/libretrocore.rs:228:38 [INFO] [stdout] | [INFO] [stdout] 228 | unsafe extern "C" fn on_audio_sample(left: i16, right: i16) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_left` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right` [INFO] [stdout] --> src/retro/libretrocore.rs:228:49 [INFO] [stdout] | [INFO] [stdout] 228 | unsafe extern "C" fn on_audio_sample(left: i16, right: i16) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_right` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `processed_data` [INFO] [stdout] --> src/retro/libretrocore.rs:233:9 [INFO] [stdout] | [INFO] [stdout] 233 | let processed_data = [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_processed_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Mutex` and `rc::Rc` [INFO] [stdout] --> src/retro/libretrocore.rs:1:41 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{ffi::{c_void, c_uint}, sync::{Mutex, Arc}, rc::Rc}; [INFO] [stdout] | ^^^^^ ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `unload_rom` is never used [INFO] [stdout] --> src/retro/libretrocore.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 45 | impl GlobalLibretroEnvironmentManager { [INFO] [stdout] | ------------------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn unload_rom(self) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `core_path` and `rom_path` are never read [INFO] [stdout] --> src/retro/libretrocore.rs:321:5 [INFO] [stdout] | [INFO] [stdout] 319 | struct InitialisedCoreWithRom { [INFO] [stdout] | ---------------------- fields in this struct [INFO] [stdout] 320 | core_api: Arc, [INFO] [stdout] 321 | core_path: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 322 | rom_path: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `InitialisedCoreWithRom` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `unload_rom` is never used [INFO] [stdout] --> src/retro/libretrocore.rs:328:8 [INFO] [stdout] | [INFO] [stdout] 327 | impl InitialisedCoreWithRom { [INFO] [stdout] | --------------------------- method in this implementation [INFO] [stdout] 328 | fn unload_rom(self) -> InitialisedCore { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/lib.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | #[pymethods] [INFO] [stdout] | -^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `PyClassImplCollector` is not local [INFO] [stdout] | `PyClassNewTextSignature` is not local [INFO] [stdout] | move the `impl` block outside of this function `trampoline` and up 4 bodies [INFO] [stdout] 15 | impl PyRetroEnvManager { [INFO] [stdout] | ----------------- [INFO] [stdout] | | [INFO] [stdout] | `PyRetroEnvManager` is not local [INFO] [stdout] | `PyRetroEnvManager` is not local [INFO] [stdout] | [INFO] [stdout] = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static is discouraged [INFO] [stdout] --> src/retro/libretrocore.rs:61:42 [INFO] [stdout] | [INFO] [stdout] 61 | let initialised_core = match GLOBAL_LIBRETRO_ENVIRONMENT.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: `#[warn(static_mut_refs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static is discouraged [INFO] [stdout] --> src/retro/libretrocore.rs:76:51 [INFO] [stdout] | [INFO] [stdout] 76 | let initialised_core_with_rom = match GLOBAL_LIBRETRO_ENVIRONMENT.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static is discouraged [INFO] [stdout] --> src/retro/libretrocore.rs:91:42 [INFO] [stdout] | [INFO] [stdout] 91 | let core_initialised = match GLOBAL_LIBRETRO_ENVIRONMENT.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static is discouraged [INFO] [stdout] --> src/retro/libretrocore.rs:106:19 [INFO] [stdout] | [INFO] [stdout] 106 | match GLOBAL_LIBRETRO_ENVIRONMENT.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static is discouraged [INFO] [stdout] --> src/retro/libretrocore.rs:118:24 [INFO] [stdout] | [INFO] [stdout] 118 | match unsafe { GLOBAL_LIBRETRO_ENVIRONMENT.clone() } { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static is discouraged [INFO] [stdout] --> src/retro/libretrocore.rs:160:78 [INFO] [stdout] | [INFO] [stdout] 160 | if let LibretroEnvrironmentState::CoreInitialisedWithRom(mut core) = GLOBAL_LIBRETRO_ENVIRONMENT.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static is discouraged [INFO] [stdout] --> src/retro/libretrocore.rs:191:49 [INFO] [stdout] | [INFO] [stdout] 191 | GLOBAL_LIBRETRO_ENVIRONMENT = match GLOBAL_LIBRETRO_ENVIRONMENT.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/retro/libretrocore.rs:163:29 [INFO] [stdout] | [INFO] [stdout] 159 | unsafe { [INFO] [stdout] | ------ because it's nested under this `unsafe` block [INFO] [stdout] ... [INFO] [stdout] 163 | else { Some(unsafe { std::slice::from_raw_parts(data as *const u8, (width * height) as usize) }) } [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `port` [INFO] [stdout] --> src/retro/libretrocore.rs:223:37 [INFO] [stdout] | [INFO] [stdout] 223 | unsafe extern "C" fn on_input_state(port: c_uint, device: c_uint, index: c_uint, id: c_uint) -> i16 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `device` [INFO] [stdout] --> src/retro/libretrocore.rs:223:51 [INFO] [stdout] | [INFO] [stdout] 223 | unsafe extern "C" fn on_input_state(port: c_uint, device: c_uint, index: c_uint, id: c_uint) -> i16 { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `index` [INFO] [stdout] --> src/retro/libretrocore.rs:223:67 [INFO] [stdout] | [INFO] [stdout] 223 | unsafe extern "C" fn on_input_state(port: c_uint, device: c_uint, index: c_uint, id: c_uint) -> i16 { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/retro/libretrocore.rs:223:82 [INFO] [stdout] | [INFO] [stdout] 223 | unsafe extern "C" fn on_input_state(port: c_uint, device: c_uint, index: c_uint, id: c_uint) -> i16 { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `left` [INFO] [stdout] --> src/retro/libretrocore.rs:228:38 [INFO] [stdout] | [INFO] [stdout] 228 | unsafe extern "C" fn on_audio_sample(left: i16, right: i16) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_left` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right` [INFO] [stdout] --> src/retro/libretrocore.rs:228:49 [INFO] [stdout] | [INFO] [stdout] 228 | unsafe extern "C" fn on_audio_sample(left: i16, right: i16) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_right` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `processed_data` [INFO] [stdout] --> src/retro/libretrocore.rs:233:9 [INFO] [stdout] | [INFO] [stdout] 233 | let processed_data = [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_processed_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `unload_rom` is never used [INFO] [stdout] --> src/retro/libretrocore.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 45 | impl GlobalLibretroEnvironmentManager { [INFO] [stdout] | ------------------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn unload_rom(self) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `core_path` and `rom_path` are never read [INFO] [stdout] --> src/retro/libretrocore.rs:321:5 [INFO] [stdout] | [INFO] [stdout] 319 | struct InitialisedCoreWithRom { [INFO] [stdout] | ---------------------- fields in this struct [INFO] [stdout] 320 | core_api: Arc, [INFO] [stdout] 321 | core_path: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 322 | rom_path: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `InitialisedCoreWithRom` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `unload_rom` is never used [INFO] [stdout] --> src/retro/libretrocore.rs:328:8 [INFO] [stdout] | [INFO] [stdout] 327 | impl InitialisedCoreWithRom { [INFO] [stdout] | --------------------------- method in this implementation [INFO] [stdout] 328 | fn unload_rom(self) -> InitialisedCore { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/lib.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | #[pymethods] [INFO] [stdout] | -^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `PyClassImplCollector` is not local [INFO] [stdout] | `PyClassNewTextSignature` is not local [INFO] [stdout] | move the `impl` block outside of this function `trampoline` and up 4 bodies [INFO] [stdout] 15 | impl PyRetroEnvManager { [INFO] [stdout] | ----------------- [INFO] [stdout] | | [INFO] [stdout] | `PyRetroEnvManager` is not local [INFO] [stdout] | `PyRetroEnvManager` is not local [INFO] [stdout] | [INFO] [stdout] = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static is discouraged [INFO] [stdout] --> src/retro/libretrocore.rs:61:42 [INFO] [stdout] | [INFO] [stdout] 61 | let initialised_core = match GLOBAL_LIBRETRO_ENVIRONMENT.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: `#[warn(static_mut_refs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static is discouraged [INFO] [stdout] --> src/retro/libretrocore.rs:76:51 [INFO] [stdout] | [INFO] [stdout] 76 | let initialised_core_with_rom = match GLOBAL_LIBRETRO_ENVIRONMENT.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static is discouraged [INFO] [stdout] --> src/retro/libretrocore.rs:91:42 [INFO] [stdout] | [INFO] [stdout] 91 | let core_initialised = match GLOBAL_LIBRETRO_ENVIRONMENT.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static is discouraged [INFO] [stdout] --> src/retro/libretrocore.rs:106:19 [INFO] [stdout] | [INFO] [stdout] 106 | match GLOBAL_LIBRETRO_ENVIRONMENT.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static is discouraged [INFO] [stdout] --> src/retro/libretrocore.rs:118:24 [INFO] [stdout] | [INFO] [stdout] 118 | match unsafe { GLOBAL_LIBRETRO_ENVIRONMENT.clone() } { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static is discouraged [INFO] [stdout] --> src/retro/libretrocore.rs:160:78 [INFO] [stdout] | [INFO] [stdout] 160 | if let LibretroEnvrironmentState::CoreInitialisedWithRom(mut core) = GLOBAL_LIBRETRO_ENVIRONMENT.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static is discouraged [INFO] [stdout] --> src/retro/libretrocore.rs:191:49 [INFO] [stdout] | [INFO] [stdout] 191 | GLOBAL_LIBRETRO_ENVIRONMENT = match GLOBAL_LIBRETRO_ENVIRONMENT.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 31.40s [INFO] running `Command { std: "docker" "inspect" "1dd479d46b410a9239cf05a325859685fccae976ecf327edd1c35645bc51fcbb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1dd479d46b410a9239cf05a325859685fccae976ecf327edd1c35645bc51fcbb", kill_on_drop: false }` [INFO] [stdout] 1dd479d46b410a9239cf05a325859685fccae976ecf327edd1c35645bc51fcbb