[INFO] fetching crate fpsdk 1.0.3... [INFO] testing fpsdk-1.0.3 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-1 [INFO] extracting crate fpsdk 1.0.3 into /workspace/builds/worker-5-tc1/source [INFO] started tweaking crates.io crate fpsdk 1.0.3 [INFO] removed 0 missing examples [INFO] finished tweaking crates.io crate fpsdk 1.0.3 [INFO] tweaked toml for crates.io crate fpsdk 1.0.3 written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate fpsdk 1.0.3 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate fpsdk 1.0.3 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" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded simple-logging v2.0.2 [INFO] [stderr] Downloaded redox_users v0.3.4 [INFO] [stderr] Downloaded base64 v0.11.0 [INFO] [stderr] Downloaded hresult v0.0.1 [INFO] [stderr] Downloaded simplelog v0.7.6 [INFO] [stderr] Downloaded bincode v1.2.1 [INFO] [stderr] Downloaded arrayvec v0.5.1 [INFO] [stderr] Downloaded jobserver v0.1.21 [INFO] [stderr] Downloaded quote v1.0.6 [INFO] [stderr] Downloaded cc v1.0.54 [INFO] [stderr] Downloaded serde v1.0.110 [INFO] [stderr] Downloaded serde_derive v1.0.110 [INFO] [stderr] Downloaded term v0.6.1 [INFO] [stderr] Downloaded proc-macro2 v1.0.17 [INFO] [stderr] Downloaded rust-argon2 v0.7.0 [INFO] [stderr] Downloaded thread-id v3.3.0 [INFO] [stderr] Downloaded blake2b_simd v0.5.10 [INFO] [stderr] Downloaded syn v1.0.24 [INFO] [stderr] Downloaded libc v0.2.70 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 23ac7a215bcdcb69c9f2a2d2abcd49f95e7c78f883b2b3c70d311f265cc2b4ec [INFO] running `Command { std: "docker" "start" "-a" "23ac7a215bcdcb69c9f2a2d2abcd49f95e7c78f883b2b3c70d311f265cc2b4ec", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "23ac7a215bcdcb69c9f2a2d2abcd49f95e7c78f883b2b3c70d311f265cc2b4ec", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "23ac7a215bcdcb69c9f2a2d2abcd49f95e7c78f883b2b3c70d311f265cc2b4ec", kill_on_drop: false }` [INFO] [stdout] 23ac7a215bcdcb69c9f2a2d2abcd49f95e7c78f883b2b3c70d311f265cc2b4ec [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 84f624540d70f9ccea5bed356c1a9dac1197f3eec14aab31140dc5dcb45be420 [INFO] running `Command { std: "docker" "start" "-a" "84f624540d70f9ccea5bed356c1a9dac1197f3eec14aab31140dc5dcb45be420", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.70 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling log v0.4.8 [INFO] [stderr] Compiling hresult v0.0.1 [INFO] [stderr] Compiling jobserver v0.1.21 [INFO] [stderr] Compiling cc v1.0.54 [INFO] [stderr] Compiling fpsdk v1.0.3 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/host.rs:781:22 [INFO] [stdout] | [INFO] [stdout] 781 | unsafe { std::slice::from_raw_parts_mut(message.value as *mut f32, WAVETABLE_SIZE) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | unused_qualifications, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 781 - unsafe { std::slice::from_raw_parts_mut(message.value as *mut f32, WAVETABLE_SIZE) }; [INFO] [stdout] 781 + unsafe { slice::from_raw_parts_mut(message.value as *mut f32, WAVETABLE_SIZE) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/plugin/message.rs:846:29 [INFO] [stdout] | [INFO] [stdout] 846 | let len_bytes: [u8; mem::size_of::()] = unsafe { mem::transmute(len) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 846 - let len_bytes: [u8; mem::size_of::()] = unsafe { mem::transmute(len) }; [INFO] [stdout] 846 + let len_bytes: [u8; size_of::()] = unsafe { mem::transmute(len) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/plugin.rs:55:19 [INFO] [stdout] | [INFO] [stdout] 55 | pub trait Plugin: std::fmt::Debug + RefUnwindSafe + Send + Sync + 'static { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 55 - pub trait Plugin: std::fmt::Debug + RefUnwindSafe + Send + Sync + 'static { [INFO] [stdout] 55 + pub trait Plugin: fmt::Debug + RefUnwindSafe + Send + Sync + 'static { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/lib.rs:162:1 [INFO] [stdout] | [INFO] [stdout] 162 | / /// FFI to make C string (`char *`) managed by C side. Because `char *` produced by [INFO] [stdout] 163 | | /// `CString::into_raw` leads to memory leak: [INFO] [stdout] 164 | | /// [INFO] [stdout] 165 | | /// > The pointer which this function returns must be returned to Rust and reconstituted using [INFO] [stdout] 166 | | /// > from_raw to be properly deallocated. Specifically, one should not use the standard C free() [INFO] [stdout] 167 | | /// > function to deallocate this string. [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] 168 | #[no_mangle] [INFO] [stdout] 169 | / extern "C" { [INFO] [stdout] 170 | | fn alloc_real_cstr(raw_str: *mut c_char) -> *mut c_char; [INFO] [stdout] 171 | | } [INFO] [stdout] | |_- rustdoc does not generate documentation for extern blocks [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on foreign modules [INFO] [stdout] --> src/host.rs:315:1 [INFO] [stdout] | [INFO] [stdout] 315 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = help: `#[no_mangle]` can be applied to functions and statics [INFO] [stdout] = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on foreign modules [INFO] [stdout] --> src/host.rs:432:1 [INFO] [stdout] | [INFO] [stdout] 432 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = help: `#[no_mangle]` can be applied to functions and statics [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on foreign modules [INFO] [stdout] --> src/lib.rs:168:1 [INFO] [stdout] | [INFO] [stdout] 168 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = help: `#[no_mangle]` can be applied to functions and statics [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TNotesParams` is never constructed [INFO] [stdout] --> src/lib.rs:486:8 [INFO] [stdout] | [INFO] [stdout] 486 | struct TNotesParams { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/host.rs:471:22 [INFO] [stdout] | [INFO] [stdout] 471 | unsafe { Box::from_raw(params_ptr) }; // free the memory [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 471 | unsafe { let _ = Box::from_raw(params_ptr); }; // free the memory [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/host.rs:494:17 [INFO] [stdout] | [INFO] [stdout] 494 | Box::from_raw(*voice.params_ptr.get_mut()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 494 | let _ = Box::from_raw(*voice.params_ptr.get_mut()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `CString::from_raw` that must be used [INFO] [stdout] --> src/host/prompt.rs:74:22 [INFO] [stdout] | [INFO] [stdout] 74 | unsafe { CString::from_raw(value) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(from_raw(ptr))` if you intend to drop the `CString` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 74 | unsafe { let _ = CString::from_raw(value); }; [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary transmute [INFO] [stdout] --> src/plugin/message.rs:846:63 [INFO] [stdout] | [INFO] [stdout] 846 | let len_bytes: [u8; mem::size_of::()] = unsafe { mem::transmute(len) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order [INFO] [stdout] = note: `#[warn(unnecessary_transmutes)]` on by default [INFO] [stdout] help: replace this with [INFO] [stdout] | [INFO] [stdout] 846 - let len_bytes: [u8; mem::size_of::()] = unsafe { mem::transmute(len) }; [INFO] [stdout] 846 + let len_bytes: [u8; mem::size_of::()] = unsafe { i32::to_ne_bytes(len) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.90s [INFO] running `Command { std: "docker" "inspect" "84f624540d70f9ccea5bed356c1a9dac1197f3eec14aab31140dc5dcb45be420", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "84f624540d70f9ccea5bed356c1a9dac1197f3eec14aab31140dc5dcb45be420", kill_on_drop: false }` [INFO] [stdout] 84f624540d70f9ccea5bed356c1a9dac1197f3eec14aab31140dc5dcb45be420 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 678a9651b0413ac654d405fed400dcdeed92043ed7f4156b878f27c9dcbc7aa1 [INFO] running `Command { std: "docker" "start" "-a" "678a9651b0413ac654d405fed400dcdeed92043ed7f4156b878f27c9dcbc7aa1", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.70 [INFO] [stderr] Compiling autocfg v1.0.0 [INFO] [stderr] Compiling proc-macro2 v1.0.17 [INFO] [stderr] Compiling unicode-xid v0.2.0 [INFO] [stderr] Compiling syn v1.0.24 [INFO] [stderr] Compiling byteorder v1.3.4 [INFO] [stderr] Compiling serde v1.0.110 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling num-traits v0.2.11 [INFO] [stderr] Compiling num-integer v0.1.42 [INFO] [stderr] Compiling jobserver v0.1.21 [INFO] [stderr] Compiling dirs-sys v0.3.4 [INFO] [stderr] Compiling time v0.1.43 [INFO] [stderr] Compiling thread-id v3.3.0 [INFO] [stderr] Compiling simple-logging v2.0.2 [INFO] [stderr] Compiling cc v1.0.54 [INFO] [stderr] Compiling dirs v2.0.2 [INFO] [stderr] Compiling quote v1.0.6 [INFO] [stderr] Compiling term v0.6.1 [INFO] [stderr] Compiling fpsdk v1.0.3 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/host.rs:781:22 [INFO] [stdout] | [INFO] [stdout] 781 | unsafe { std::slice::from_raw_parts_mut(message.value as *mut f32, WAVETABLE_SIZE) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | unused_qualifications, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 781 - unsafe { std::slice::from_raw_parts_mut(message.value as *mut f32, WAVETABLE_SIZE) }; [INFO] [stdout] 781 + unsafe { slice::from_raw_parts_mut(message.value as *mut f32, WAVETABLE_SIZE) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/plugin/message.rs:846:29 [INFO] [stdout] | [INFO] [stdout] 846 | let len_bytes: [u8; mem::size_of::()] = unsafe { mem::transmute(len) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 846 - let len_bytes: [u8; mem::size_of::()] = unsafe { mem::transmute(len) }; [INFO] [stdout] 846 + let len_bytes: [u8; size_of::()] = unsafe { mem::transmute(len) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/plugin.rs:55:19 [INFO] [stdout] | [INFO] [stdout] 55 | pub trait Plugin: std::fmt::Debug + RefUnwindSafe + Send + Sync + 'static { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 55 - pub trait Plugin: std::fmt::Debug + RefUnwindSafe + Send + Sync + 'static { [INFO] [stdout] 55 + pub trait Plugin: fmt::Debug + RefUnwindSafe + Send + Sync + 'static { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/lib.rs:162:1 [INFO] [stdout] | [INFO] [stdout] 162 | / /// FFI to make C string (`char *`) managed by C side. Because `char *` produced by [INFO] [stdout] 163 | | /// `CString::into_raw` leads to memory leak: [INFO] [stdout] 164 | | /// [INFO] [stdout] 165 | | /// > The pointer which this function returns must be returned to Rust and reconstituted using [INFO] [stdout] 166 | | /// > from_raw to be properly deallocated. Specifically, one should not use the standard C free() [INFO] [stdout] 167 | | /// > function to deallocate this string. [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] 168 | #[no_mangle] [INFO] [stdout] 169 | / extern "C" { [INFO] [stdout] 170 | | fn alloc_real_cstr(raw_str: *mut c_char) -> *mut c_char; [INFO] [stdout] 171 | | } [INFO] [stdout] | |_- rustdoc does not generate documentation for extern blocks [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on foreign modules [INFO] [stdout] --> src/host.rs:315:1 [INFO] [stdout] | [INFO] [stdout] 315 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = help: `#[no_mangle]` can be applied to functions and statics [INFO] [stdout] = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on foreign modules [INFO] [stdout] --> src/host.rs:432:1 [INFO] [stdout] | [INFO] [stdout] 432 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = help: `#[no_mangle]` can be applied to functions and statics [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on foreign modules [INFO] [stdout] --> src/lib.rs:168:1 [INFO] [stdout] | [INFO] [stdout] 168 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = help: `#[no_mangle]` can be applied to functions and statics [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling chrono v0.4.11 [INFO] [stdout] warning: struct `TNotesParams` is never constructed [INFO] [stdout] --> src/lib.rs:486:8 [INFO] [stdout] | [INFO] [stdout] 486 | struct TNotesParams { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/host.rs:471:22 [INFO] [stdout] | [INFO] [stdout] 471 | unsafe { Box::from_raw(params_ptr) }; // free the memory [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 471 | unsafe { let _ = Box::from_raw(params_ptr); }; // free the memory [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/host.rs:494:17 [INFO] [stdout] | [INFO] [stdout] 494 | Box::from_raw(*voice.params_ptr.get_mut()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 494 | let _ = Box::from_raw(*voice.params_ptr.get_mut()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `CString::from_raw` that must be used [INFO] [stdout] --> src/host/prompt.rs:74:22 [INFO] [stdout] | [INFO] [stdout] 74 | unsafe { CString::from_raw(value) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(from_raw(ptr))` if you intend to drop the `CString` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 74 | unsafe { let _ = CString::from_raw(value); }; [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary transmute [INFO] [stdout] --> src/plugin/message.rs:846:63 [INFO] [stdout] | [INFO] [stdout] 846 | let len_bytes: [u8; mem::size_of::()] = unsafe { mem::transmute(len) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order [INFO] [stdout] = note: `#[warn(unnecessary_transmutes)]` on by default [INFO] [stdout] help: replace this with [INFO] [stdout] | [INFO] [stdout] 846 - let len_bytes: [u8; mem::size_of::()] = unsafe { mem::transmute(len) }; [INFO] [stdout] 846 + let len_bytes: [u8; mem::size_of::()] = unsafe { i32::to_ne_bytes(len) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling simplelog v0.7.6 [INFO] [stderr] Compiling serde_derive v1.0.110 [INFO] [stderr] Compiling bincode v1.2.1 [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/host.rs:781:22 [INFO] [stdout] | [INFO] [stdout] 781 | unsafe { std::slice::from_raw_parts_mut(message.value as *mut f32, WAVETABLE_SIZE) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | unused_qualifications, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 781 - unsafe { std::slice::from_raw_parts_mut(message.value as *mut f32, WAVETABLE_SIZE) }; [INFO] [stdout] 781 + unsafe { slice::from_raw_parts_mut(message.value as *mut f32, WAVETABLE_SIZE) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/plugin/message.rs:846:29 [INFO] [stdout] | [INFO] [stdout] 846 | let len_bytes: [u8; mem::size_of::()] = unsafe { mem::transmute(len) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 846 - let len_bytes: [u8; mem::size_of::()] = unsafe { mem::transmute(len) }; [INFO] [stdout] 846 + let len_bytes: [u8; size_of::()] = unsafe { mem::transmute(len) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/plugin.rs:55:19 [INFO] [stdout] | [INFO] [stdout] 55 | pub trait Plugin: std::fmt::Debug + RefUnwindSafe + Send + Sync + 'static { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 55 - pub trait Plugin: std::fmt::Debug + RefUnwindSafe + Send + Sync + 'static { [INFO] [stdout] 55 + pub trait Plugin: fmt::Debug + RefUnwindSafe + Send + Sync + 'static { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/lib.rs:162:1 [INFO] [stdout] | [INFO] [stdout] 162 | / /// FFI to make C string (`char *`) managed by C side. Because `char *` produced by [INFO] [stdout] 163 | | /// `CString::into_raw` leads to memory leak: [INFO] [stdout] 164 | | /// [INFO] [stdout] 165 | | /// > The pointer which this function returns must be returned to Rust and reconstituted using [INFO] [stdout] 166 | | /// > from_raw to be properly deallocated. Specifically, one should not use the standard C free() [INFO] [stdout] 167 | | /// > function to deallocate this string. [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] 168 | #[no_mangle] [INFO] [stdout] 169 | / extern "C" { [INFO] [stdout] 170 | | fn alloc_real_cstr(raw_str: *mut c_char) -> *mut c_char; [INFO] [stdout] 171 | | } [INFO] [stdout] | |_- rustdoc does not generate documentation for extern blocks [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `params` is never read [INFO] [stdout] --> examples/simple.rs:391:5 [INFO] [stdout] | [INFO] [stdout] 389 | struct SimpleVoice { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 390 | tag: voice::Tag, [INFO] [stdout] 391 | params: voice::Params, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SimpleVoice` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [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] --> examples/simple.rs:37:26 [INFO] [stdout] | [INFO] [stdout] 37 | #[derive(Debug, Default, Deserialize, Serialize)] [INFO] [stdout] | ^---------- [INFO] [stdout] | | [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_State` [INFO] [stdout] 38 | struct State { [INFO] [stdout] | ----- `State` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [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: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [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] --> examples/simple.rs:37:39 [INFO] [stdout] | [INFO] [stdout] 37 | #[derive(Debug, Default, Deserialize, Serialize)] [INFO] [stdout] | ^-------- [INFO] [stdout] | | [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_State` [INFO] [stdout] 38 | struct State { [INFO] [stdout] | ----- `State` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [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: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on foreign modules [INFO] [stdout] --> src/host.rs:315:1 [INFO] [stdout] | [INFO] [stdout] 315 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = help: `#[no_mangle]` can be applied to functions and statics [INFO] [stdout] = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on foreign modules [INFO] [stdout] --> src/host.rs:432:1 [INFO] [stdout] | [INFO] [stdout] 432 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = help: `#[no_mangle]` can be applied to functions and statics [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on foreign modules [INFO] [stdout] --> src/lib.rs:168:1 [INFO] [stdout] | [INFO] [stdout] 168 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = help: `#[no_mangle]` can be applied to functions and statics [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TNotesParams` is never constructed [INFO] [stdout] --> src/lib.rs:486:8 [INFO] [stdout] | [INFO] [stdout] 486 | struct TNotesParams { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/host.rs:471:22 [INFO] [stdout] | [INFO] [stdout] 471 | unsafe { Box::from_raw(params_ptr) }; // free the memory [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 471 | unsafe { let _ = Box::from_raw(params_ptr); }; // free the memory [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/host.rs:494:17 [INFO] [stdout] | [INFO] [stdout] 494 | Box::from_raw(*voice.params_ptr.get_mut()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 494 | let _ = Box::from_raw(*voice.params_ptr.get_mut()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `CString::from_raw` that must be used [INFO] [stdout] --> src/host/prompt.rs:74:22 [INFO] [stdout] | [INFO] [stdout] 74 | unsafe { CString::from_raw(value) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(from_raw(ptr))` if you intend to drop the `CString` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 74 | unsafe { let _ = CString::from_raw(value); }; [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary transmute [INFO] [stdout] --> src/plugin/message.rs:846:63 [INFO] [stdout] | [INFO] [stdout] 846 | let len_bytes: [u8; mem::size_of::()] = unsafe { mem::transmute(len) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order [INFO] [stdout] = note: `#[warn(unnecessary_transmutes)]` on by default [INFO] [stdout] help: replace this with [INFO] [stdout] | [INFO] [stdout] 846 - let len_bytes: [u8; mem::size_of::()] = unsafe { mem::transmute(len) }; [INFO] [stdout] 846 + let len_bytes: [u8; mem::size_of::()] = unsafe { i32::to_ne_bytes(len) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 14.97s [INFO] running `Command { std: "docker" "inspect" "678a9651b0413ac654d405fed400dcdeed92043ed7f4156b878f27c9dcbc7aa1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "678a9651b0413ac654d405fed400dcdeed92043ed7f4156b878f27c9dcbc7aa1", kill_on_drop: false }` [INFO] [stdout] 678a9651b0413ac654d405fed400dcdeed92043ed7f4156b878f27c9dcbc7aa1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] e49a6b39967a8954b3cd3aa7f64806660d45d88e0777f911394f2423351a804a [INFO] running `Command { std: "docker" "start" "-a" "e49a6b39967a8954b3cd3aa7f64806660d45d88e0777f911394f2423351a804a", kill_on_drop: false }` [INFO] [stderr] warning: unnecessary qualification [INFO] [stderr] --> src/host.rs:781:22 [INFO] [stderr] | [INFO] [stderr] 781 | unsafe { std::slice::from_raw_parts_mut(message.value as *mut f32, WAVETABLE_SIZE) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: the lint level is defined here [INFO] [stderr] --> src/lib.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | unused_qualifications, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: remove the unnecessary path segments [INFO] [stderr] | [INFO] [stderr] 781 - unsafe { std::slice::from_raw_parts_mut(message.value as *mut f32, WAVETABLE_SIZE) }; [INFO] [stderr] 781 + unsafe { slice::from_raw_parts_mut(message.value as *mut f32, WAVETABLE_SIZE) }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary qualification [INFO] [stderr] --> src/plugin/message.rs:846:29 [INFO] [stderr] | [INFO] [stderr] 846 | let len_bytes: [u8; mem::size_of::()] = unsafe { mem::transmute(len) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: remove the unnecessary path segments [INFO] [stderr] | [INFO] [stderr] 846 - let len_bytes: [u8; mem::size_of::()] = unsafe { mem::transmute(len) }; [INFO] [stderr] 846 + let len_bytes: [u8; size_of::()] = unsafe { mem::transmute(len) }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary qualification [INFO] [stderr] --> src/plugin.rs:55:19 [INFO] [stderr] | [INFO] [stderr] 55 | pub trait Plugin: std::fmt::Debug + RefUnwindSafe + Send + Sync + 'static { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: remove the unnecessary path segments [INFO] [stderr] | [INFO] [stderr] 55 - pub trait Plugin: std::fmt::Debug + RefUnwindSafe + Send + Sync + 'static { [INFO] [stderr] 55 + pub trait Plugin: fmt::Debug + RefUnwindSafe + Send + Sync + 'static { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/lib.rs:162:1 [INFO] [stderr] | [INFO] [stderr] 162 | / /// FFI to make C string (`char *`) managed by C side. Because `char *` produced by [INFO] [stderr] 163 | | /// `CString::into_raw` leads to memory leak: [INFO] [stderr] 164 | | /// [INFO] [stderr] 165 | | /// > The pointer which this function returns must be returned to Rust and reconstituted using [INFO] [stderr] 166 | | /// > from_raw to be properly deallocated. Specifically, one should not use the standard C free() [INFO] [stderr] 167 | | /// > function to deallocate this string. [INFO] [stderr] | |_________________________________________^ [INFO] [stderr] 168 | #[no_mangle] [INFO] [stderr] 169 | / extern "C" { [INFO] [stderr] 170 | | fn alloc_real_cstr(raw_str: *mut c_char) -> *mut c_char; [INFO] [stderr] 171 | | } [INFO] [stderr] | |_- rustdoc does not generate documentation for extern blocks [INFO] [stderr] | [INFO] [stderr] = help: use `//` for a plain comment [INFO] [stderr] = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `#[no_mangle]` attribute cannot be used on foreign modules [INFO] [stderr] --> src/host.rs:315:1 [INFO] [stderr] | [INFO] [stderr] 315 | #[no_mangle] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = help: `#[no_mangle]` can be applied to functions and statics [INFO] [stderr] = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `#[no_mangle]` attribute cannot be used on foreign modules [INFO] [stderr] --> src/host.rs:432:1 [INFO] [stderr] | [INFO] [stderr] 432 | #[no_mangle] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = help: `#[no_mangle]` can be applied to functions and statics [INFO] [stderr] [INFO] [stderr] warning: `#[no_mangle]` attribute cannot be used on foreign modules [INFO] [stderr] --> src/lib.rs:168:1 [INFO] [stderr] | [INFO] [stderr] 168 | #[no_mangle] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = help: `#[no_mangle]` can be applied to functions and statics [INFO] [stderr] [INFO] [stderr] warning: struct `TNotesParams` is never constructed [INFO] [stderr] --> src/lib.rs:486:8 [INFO] [stderr] | [INFO] [stderr] 486 | struct TNotesParams { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stderr] --> src/host.rs:471:22 [INFO] [stderr] | [INFO] [stderr] 471 | unsafe { Box::from_raw(params_ptr) }; // free the memory [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stderr] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 471 | unsafe { let _ = Box::from_raw(params_ptr); }; // free the memory [INFO] [stderr] | +++++++ + [INFO] [stderr] [INFO] [stderr] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stderr] --> src/host.rs:494:17 [INFO] [stderr] | [INFO] [stderr] 494 | Box::from_raw(*voice.params_ptr.get_mut()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 494 | let _ = Box::from_raw(*voice.params_ptr.get_mut()); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused return value of `CString::from_raw` that must be used [INFO] [stderr] --> src/host/prompt.rs:74:22 [INFO] [stderr] | [INFO] [stderr] 74 | unsafe { CString::from_raw(value) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: call `drop(from_raw(ptr))` if you intend to drop the `CString` [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 74 | unsafe { let _ = CString::from_raw(value); }; [INFO] [stderr] | +++++++ + [INFO] [stderr] [INFO] [stderr] warning: unnecessary transmute [INFO] [stderr] --> src/plugin/message.rs:846:63 [INFO] [stderr] | [INFO] [stderr] 846 | let len_bytes: [u8; mem::size_of::()] = unsafe { mem::transmute(len) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order [INFO] [stderr] = note: `#[warn(unnecessary_transmutes)]` on by default [INFO] [stderr] help: replace this with [INFO] [stderr] | [INFO] [stderr] 846 - let len_bytes: [u8; mem::size_of::()] = unsafe { mem::transmute(len) }; [INFO] [stderr] 846 + let len_bytes: [u8; mem::size_of::()] = unsafe { i32::to_ne_bytes(len) }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `fpsdk` (lib) generated 12 warnings (run `cargo fix --lib -p fpsdk` to apply 7 suggestions) [INFO] [stderr] warning: field `params` is never read [INFO] [stderr] --> examples/simple.rs:391:5 [INFO] [stderr] | [INFO] [stderr] 389 | struct SimpleVoice { [INFO] [stderr] | ----------- field in this struct [INFO] [stderr] 390 | tag: voice::Tag, [INFO] [stderr] 391 | params: voice::Params, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `SimpleVoice` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stderr] --> examples/simple.rs:37:26 [INFO] [stderr] | [INFO] [stderr] 37 | #[derive(Debug, Default, Deserialize, Serialize)] [INFO] [stderr] | ^---------- [INFO] [stderr] | | [INFO] [stderr] | `Deserialize` is not local [INFO] [stderr] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_State` [INFO] [stderr] 38 | struct State { [INFO] [stderr] | ----- `State` is not local [INFO] [stderr] | [INFO] [stderr] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stderr] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stderr] = 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] [stderr] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stderr] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stderr] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stderr] --> examples/simple.rs:37:39 [INFO] [stderr] | [INFO] [stderr] 37 | #[derive(Debug, Default, Deserialize, Serialize)] [INFO] [stderr] | ^-------- [INFO] [stderr] | | [INFO] [stderr] | `Serialize` is not local [INFO] [stderr] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_State` [INFO] [stderr] 38 | struct State { [INFO] [stderr] | ----- `State` is not local [INFO] [stderr] | [INFO] [stderr] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stderr] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stderr] = 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] [stderr] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stderr] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: `fpsdk` (lib test) generated 12 warnings (12 duplicates) [INFO] [stderr] warning: `fpsdk` (example "simple") generated 3 warnings [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.10s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/fpsdk-dccc1794042d0278) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test plugin::message::tests::test_dword ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests fpsdk [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "e49a6b39967a8954b3cd3aa7f64806660d45d88e0777f911394f2423351a804a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e49a6b39967a8954b3cd3aa7f64806660d45d88e0777f911394f2423351a804a", kill_on_drop: false }` [INFO] [stdout] e49a6b39967a8954b3cd3aa7f64806660d45d88e0777f911394f2423351a804a