[INFO] fetching crate binder-rust 0.1.2... [INFO] testing binder-rust-0.1.2 against try#8de4c7234dd9b97c9d76b58671343fdbbc9a433e+target=x86_64-unknown-linux-musl for musl_upgrade_1_2_5_with_libc_patch_0 [INFO] extracting crate binder-rust 0.1.2 into /workspace/builds/worker-3-tc1/source [INFO] started tweaking crates.io crate binder-rust 0.1.2 [INFO] removed 0 missing examples [INFO] finished tweaking crates.io crate binder-rust 0.1.2 [INFO] tweaked toml for crates.io crate binder-rust 0.1.2 written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate binder-rust 0.1.2 on toolchain 8de4c7234dd9b97c9d76b58671343fdbbc9a433e [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate binder-rust 0.1.2 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" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2ef05c8ee1e46f30d635918c980bc5a86ac72bce02f7b5c44769e522fbd6d15e [INFO] running `Command { std: "docker" "start" "-a" "2ef05c8ee1e46f30d635918c980bc5a86ac72bce02f7b5c44769e522fbd6d15e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2ef05c8ee1e46f30d635918c980bc5a86ac72bce02f7b5c44769e522fbd6d15e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2ef05c8ee1e46f30d635918c980bc5a86ac72bce02f7b5c44769e522fbd6d15e", kill_on_drop: false }` [INFO] [stdout] 2ef05c8ee1e46f30d635918c980bc5a86ac72bce02f7b5c44769e522fbd6d15e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "build" "--frozen" "--message-format=json" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] 81115bf2fd9ca75cf67e83adf27a6b83ed6ae4de42e9d3fd614b34eb13b31f6e [INFO] running `Command { std: "docker" "start" "-a" "81115bf2fd9ca75cf67e83adf27a6b83ed6ae4de42e9d3fd614b34eb13b31f6e", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.24 [INFO] [stderr] Compiling unicode-xid v0.2.1 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling libc v0.2.88 [INFO] [stderr] Compiling syn v1.0.63 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling quote v1.0.9 [INFO] [stderr] Compiling nix v0.20.0 [INFO] [stderr] Compiling num-derive v0.3.3 [INFO] [stderr] Compiling binder-rust v0.1.2 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `ioctl_write_int` [INFO] [stdout] --> src/binder.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | ioctl_write_int, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `convert::TryFrom`, `ops::BitOr`, and `slice` [INFO] [stdout] --> src/binder.rs:24:11 [INFO] [stdout] | [INFO] [stdout] 24 | use std::{convert::TryFrom, ffi::c_void, mem::size_of, ops::BitOr, os::unix::io::RawFd, ptr, slice}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mem::transmute` [INFO] [stdout] --> src/parcel.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | mem::transmute, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Binder` [INFO] [stdout] --> src/parcel.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::{Binder, BinderFlatObject, BinderTransactionData, BinderType}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `acquire_result` is assigned to, but never used [INFO] [stdout] --> src/binder.rs:472:17 [INFO] [stdout] | [INFO] [stdout] 472 | let mut acquire_result = Result::NoError; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_acquire_result` instead [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `acquire_result` is never read [INFO] [stdout] --> src/binder.rs:492:25 [INFO] [stdout] | [INFO] [stdout] 492 | acquire_result = if result == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/service.rs:108:29 [INFO] [stdout] | [INFO] [stdout] 102 | ... Interface => { [INFO] [stdout] | --------- matches any value [INFO] [stdout] ... [INFO] [stdout] 108 | ... _ => {} [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `Interface` [INFO] [stdout] --> src/service.rs:102:29 [INFO] [stdout] | [INFO] [stdout] 102 | ... Interface => { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Interface` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `transaction` [INFO] [stdout] --> src/service.rs:149:14 [INFO] [stdout] | [INFO] [stdout] 149 | let (transaction, mut parcel) = self.binder.transact( [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `transaction` [INFO] [stdout] --> src/service.rs:182:14 [INFO] [stdout] | [INFO] [stdout] 182 | let (transaction, mut parcel) = self.binder.transact( [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `parcel` [INFO] [stdout] --> src/service.rs:182:31 [INFO] [stdout] | [INFO] [stdout] 182 | let (transaction, mut parcel) = self.binder.transact( [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parcel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/service.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | let (transaction, mut parcel) = self.binder.transact( [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BinderTransactionDataData` is never constructed [INFO] [stdout] --> src/binder.rs:162:19 [INFO] [stdout] | [INFO] [stdout] 162 | pub(crate) struct BinderTransactionDataData { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `mem` is never read [INFO] [stdout] --> src/binder.rs:339:5 [INFO] [stdout] | [INFO] [stdout] 337 | pub struct Binder { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 338 | fd: RawFd, [INFO] [stdout] 339 | mem: *const c_void, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `CheckService` and `ListServices` are never constructed [INFO] [stdout] --> src/service.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 14 | enum ServiceManagerFunctions { [INFO] [stdout] | ----------------------- variants in this enum [INFO] [stdout] 15 | GetService = 1, [INFO] [stdout] 16 | CheckService = 2, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 17 | AddService = 3, [INFO] [stdout] 18 | ListServices = 4, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> src/service.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct Service<'a> { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 24 | name: &'a str, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> src/service.rs:74:5 [INFO] [stdout] | [INFO] [stdout] 68 | pub struct ServiceListener<'a, BS> [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 74 | name: &'a str, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `phantom` is never read [INFO] [stdout] --> src/service.rs:120:5 [INFO] [stdout] | [INFO] [stdout] 118 | pub struct ServiceManager<'a> { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 119 | binder: Binder, [INFO] [stdout] 120 | phantom: &'a PhantomData [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/binder.rs:56:47 [INFO] [stdout] | [INFO] [stdout] 56 | #[derive(Debug, Hash, Clone, Copy, PartialEq, FromPrimitive)] [INFO] [stdout] | ^------------ [INFO] [stdout] | | [INFO] [stdout] | `FromPrimitive` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_BinderType` [INFO] [stdout] 57 | pub enum BinderType { [INFO] [stdout] | ---------- `BinderType` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_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 `FromPrimitive` (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] --> src/binder.rs:108:17 [INFO] [stdout] | [INFO] [stdout] 108 | #[derive(Debug, FromPrimitive)] [INFO] [stdout] | ^------------ [INFO] [stdout] | | [INFO] [stdout] | `FromPrimitive` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_Transaction` [INFO] [stdout] 109 | pub enum Transaction { [INFO] [stdout] | ----------- `Transaction` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_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 `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `OneWay` should have an upper case name [INFO] [stdout] --> src/binder.rs:215:15 [INFO] [stdout] | [INFO] [stdout] 215 | const OneWay = 1; [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `ONE_WAY` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `CollectNotedAppOps` should have an upper case name [INFO] [stdout] --> src/binder.rs:216:15 [INFO] [stdout] | [INFO] [stdout] 216 | const CollectNotedAppOps = 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `COLLECT_NOTED_APP_OPS` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `RootObject` should have an upper case name [INFO] [stdout] --> src/binder.rs:217:15 [INFO] [stdout] | [INFO] [stdout] 217 | const RootObject = 4; [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper case: `ROOT_OBJECT` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `StatusCode` should have an upper case name [INFO] [stdout] --> src/binder.rs:218:15 [INFO] [stdout] | [INFO] [stdout] 218 | const StatusCode = 8; [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper case: `STATUS_CODE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `AcceptFds` should have an upper case name [INFO] [stdout] --> src/binder.rs:219:15 [INFO] [stdout] | [INFO] [stdout] 219 | const AcceptFds = 0x10; [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper case: `ACCEPT_FDS` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `ClearBuf` should have an upper case name [INFO] [stdout] --> src/binder.rs:220:15 [INFO] [stdout] | [INFO] [stdout] 220 | const ClearBuf = 0x20; [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper case: `CLEAR_BUF` [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/binder.rs:261:17 [INFO] [stdout] | [INFO] [stdout] 261 | #[derive(Debug, FromPrimitive)] [INFO] [stdout] | ^------------ [INFO] [stdout] | | [INFO] [stdout] | `FromPrimitive` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_BinderDriverCommandProtocol` [INFO] [stdout] 262 | pub enum BinderDriverCommandProtocol { [INFO] [stdout] | --------------------------- `BinderDriverCommandProtocol` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_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 `FromPrimitive` (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] --> src/binder.rs:308:17 [INFO] [stdout] | [INFO] [stdout] 308 | #[derive(Debug, FromPrimitive, ToPrimitive)] [INFO] [stdout] | ^------------ [INFO] [stdout] | | [INFO] [stdout] | `FromPrimitive` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_BinderDriverReturnProtocol` [INFO] [stdout] 309 | pub enum BinderDriverReturnProtocol { [INFO] [stdout] | -------------------------- `BinderDriverReturnProtocol` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_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 `FromPrimitive` (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] --> src/binder.rs:308:32 [INFO] [stdout] | [INFO] [stdout] 308 | #[derive(Debug, FromPrimitive, ToPrimitive)] [INFO] [stdout] | ^---------- [INFO] [stdout] | | [INFO] [stdout] | `ToPrimitive` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_BinderDriverReturnProtocol` [INFO] [stdout] 309 | pub enum BinderDriverReturnProtocol { [INFO] [stdout] | -------------------------- `BinderDriverReturnProtocol` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_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 `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/binder.rs:556:9 [INFO] [stdout] | [INFO] [stdout] 556 | close(self.fd); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 556 | let _ = close(self.fd); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:87:9 [INFO] [stdout] | [INFO] [stdout] 87 | self.cursor.write(other.to_slice()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 87 | let _ = self.cursor.write(other.to_slice()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:129:9 [INFO] [stdout] | [INFO] [stdout] 129 | self.cursor.write_i32::(data); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 129 | let _ = self.cursor.write_i32::(data); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | self.cursor.write_u32::(data); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 133 | let _ = self.cursor.write_u32::(data); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:137:9 [INFO] [stdout] | [INFO] [stdout] 137 | self.cursor.write_u16::(data); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 137 | let _ = self.cursor.write_u16::(data); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:142:9 [INFO] [stdout] | [INFO] [stdout] 142 | self.cursor.write_u32::(data as u32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 142 | let _ = self.cursor.write_u32::(data as u32); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:206:9 [INFO] [stdout] | [INFO] [stdout] 206 | self.cursor.read(&mut data); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 206 | let _ = self.cursor.read(&mut data); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:212:9 [INFO] [stdout] | [INFO] [stdout] 212 | self.cursor.read(&mut data); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 212 | let _ = self.cursor.read(&mut data); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:238:9 [INFO] [stdout] | [INFO] [stdout] 238 | / self.cursor.write(unsafe { [INFO] [stdout] 239 | | slice::from_raw_parts(&object as *const _ as *const u8, size_of::()) [INFO] [stdout] 240 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 238 | let _ = self.cursor.write(unsafe { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:249:13 [INFO] [stdout] | [INFO] [stdout] 249 | s16.write_u16::(c); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 249 | let _ = s16.write_u16::(c); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:251:9 [INFO] [stdout] | [INFO] [stdout] 251 | s16.write_u16::(0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 251 | let _ = s16.write_u16::(0); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:257:9 [INFO] [stdout] | [INFO] [stdout] 257 | self.cursor.write(s16.as_slice()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 257 | let _ = self.cursor.write(s16.as_slice()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Interface` should have a snake case name [INFO] [stdout] --> src/service.rs:102:29 [INFO] [stdout] | [INFO] [stdout] 102 | ... Interface => { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `interface` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.96s [INFO] running `Command { std: "docker" "inspect" "81115bf2fd9ca75cf67e83adf27a6b83ed6ae4de42e9d3fd614b34eb13b31f6e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "81115bf2fd9ca75cf67e83adf27a6b83ed6ae4de42e9d3fd614b34eb13b31f6e", kill_on_drop: false }` [INFO] [stdout] 81115bf2fd9ca75cf67e83adf27a6b83ed6ae4de42e9d3fd614b34eb13b31f6e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "test" "--frozen" "--no-run" "--message-format=json" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] cb176bf2bb4ab6f12aefb3ae2693fe16cd2e344ab0bfb3afd240d2c215e83f74 [INFO] running `Command { std: "docker" "start" "-a" "cb176bf2bb4ab6f12aefb3ae2693fe16cd2e344ab0bfb3afd240d2c215e83f74", kill_on_drop: false }` [INFO] [stdout] warning: unused import: `ioctl_write_int` [INFO] [stdout] --> src/binder.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | ioctl_write_int, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `convert::TryFrom`, `ops::BitOr`, and `slice` [INFO] [stdout] --> src/binder.rs:24:11 [INFO] [stdout] | [INFO] [stdout] 24 | use std::{convert::TryFrom, ffi::c_void, mem::size_of, ops::BitOr, os::unix::io::RawFd, ptr, slice}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mem::transmute` [INFO] [stdout] --> src/parcel.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | mem::transmute, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Binder` [INFO] [stdout] --> src/parcel.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::{Binder, BinderFlatObject, BinderTransactionData, BinderType}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `acquire_result` is assigned to, but never used [INFO] [stdout] --> src/binder.rs:472:17 [INFO] [stdout] | [INFO] [stdout] 472 | let mut acquire_result = Result::NoError; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_acquire_result` instead [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `acquire_result` is never read [INFO] [stdout] --> src/binder.rs:492:25 [INFO] [stdout] | [INFO] [stdout] 492 | acquire_result = if result == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/service.rs:108:29 [INFO] [stdout] | [INFO] [stdout] 102 | ... Interface => { [INFO] [stdout] | --------- matches any value [INFO] [stdout] ... [INFO] [stdout] 108 | ... _ => {} [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `Interface` [INFO] [stdout] --> src/service.rs:102:29 [INFO] [stdout] | [INFO] [stdout] 102 | ... Interface => { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Interface` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `transaction` [INFO] [stdout] --> src/service.rs:149:14 [INFO] [stdout] | [INFO] [stdout] 149 | let (transaction, mut parcel) = self.binder.transact( [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `transaction` [INFO] [stdout] --> src/service.rs:182:14 [INFO] [stdout] | [INFO] [stdout] 182 | let (transaction, mut parcel) = self.binder.transact( [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `parcel` [INFO] [stdout] --> src/service.rs:182:31 [INFO] [stdout] | [INFO] [stdout] 182 | let (transaction, mut parcel) = self.binder.transact( [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parcel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/service.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | let (transaction, mut parcel) = self.binder.transact( [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BinderTransactionDataData` is never constructed [INFO] [stdout] --> src/binder.rs:162:19 [INFO] [stdout] | [INFO] [stdout] 162 | pub(crate) struct BinderTransactionDataData { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `mem` is never read [INFO] [stdout] --> src/binder.rs:339:5 [INFO] [stdout] | [INFO] [stdout] 337 | pub struct Binder { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 338 | fd: RawFd, [INFO] [stdout] 339 | mem: *const c_void, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `CheckService` and `ListServices` are never constructed [INFO] [stdout] --> src/service.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 14 | enum ServiceManagerFunctions { [INFO] [stdout] | ----------------------- variants in this enum [INFO] [stdout] 15 | GetService = 1, [INFO] [stdout] 16 | CheckService = 2, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 17 | AddService = 3, [INFO] [stdout] 18 | ListServices = 4, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> src/service.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct Service<'a> { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 24 | name: &'a str, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> src/service.rs:74:5 [INFO] [stdout] | [INFO] [stdout] 68 | pub struct ServiceListener<'a, BS> [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 74 | name: &'a str, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `phantom` is never read [INFO] [stdout] --> src/service.rs:120:5 [INFO] [stdout] | [INFO] [stdout] 118 | pub struct ServiceManager<'a> { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 119 | binder: Binder, [INFO] [stdout] 120 | phantom: &'a PhantomData [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/binder.rs:56:47 [INFO] [stdout] | [INFO] [stdout] 56 | #[derive(Debug, Hash, Clone, Copy, PartialEq, FromPrimitive)] [INFO] [stdout] | ^------------ [INFO] [stdout] | | [INFO] [stdout] | `FromPrimitive` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_BinderType` [INFO] [stdout] 57 | pub enum BinderType { [INFO] [stdout] | ---------- `BinderType` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_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 `FromPrimitive` (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] --> src/binder.rs:108:17 [INFO] [stdout] | [INFO] [stdout] 108 | #[derive(Debug, FromPrimitive)] [INFO] [stdout] | ^------------ [INFO] [stdout] | | [INFO] [stdout] | `FromPrimitive` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_Transaction` [INFO] [stdout] 109 | pub enum Transaction { [INFO] [stdout] | ----------- `Transaction` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_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 `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `OneWay` should have an upper case name [INFO] [stdout] --> src/binder.rs:215:15 [INFO] [stdout] | [INFO] [stdout] 215 | const OneWay = 1; [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `ONE_WAY` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `CollectNotedAppOps` should have an upper case name [INFO] [stdout] --> src/binder.rs:216:15 [INFO] [stdout] | [INFO] [stdout] 216 | const CollectNotedAppOps = 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `COLLECT_NOTED_APP_OPS` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `RootObject` should have an upper case name [INFO] [stdout] --> src/binder.rs:217:15 [INFO] [stdout] | [INFO] [stdout] 217 | const RootObject = 4; [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper case: `ROOT_OBJECT` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `StatusCode` should have an upper case name [INFO] [stdout] --> src/binder.rs:218:15 [INFO] [stdout] | [INFO] [stdout] 218 | const StatusCode = 8; [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper case: `STATUS_CODE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `AcceptFds` should have an upper case name [INFO] [stdout] --> src/binder.rs:219:15 [INFO] [stdout] | [INFO] [stdout] 219 | const AcceptFds = 0x10; [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper case: `ACCEPT_FDS` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `ClearBuf` should have an upper case name [INFO] [stdout] --> src/binder.rs:220:15 [INFO] [stdout] | [INFO] [stdout] 220 | const ClearBuf = 0x20; [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper case: `CLEAR_BUF` [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/binder.rs:261:17 [INFO] [stdout] | [INFO] [stdout] 261 | #[derive(Debug, FromPrimitive)] [INFO] [stdout] | ^------------ [INFO] [stdout] | | [INFO] [stdout] | `FromPrimitive` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_BinderDriverCommandProtocol` [INFO] [stdout] 262 | pub enum BinderDriverCommandProtocol { [INFO] [stdout] | --------------------------- `BinderDriverCommandProtocol` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_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 `FromPrimitive` (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] --> src/binder.rs:308:17 [INFO] [stdout] | [INFO] [stdout] 308 | #[derive(Debug, FromPrimitive, ToPrimitive)] [INFO] [stdout] | ^------------ [INFO] [stdout] | | [INFO] [stdout] | `FromPrimitive` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_BinderDriverReturnProtocol` [INFO] [stdout] 309 | pub enum BinderDriverReturnProtocol { [INFO] [stdout] | -------------------------- `BinderDriverReturnProtocol` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_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 `FromPrimitive` (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] --> src/binder.rs:308:32 [INFO] [stdout] | [INFO] [stdout] 308 | #[derive(Debug, FromPrimitive, ToPrimitive)] [INFO] [stdout] | ^---------- [INFO] [stdout] | | [INFO] [stdout] | `ToPrimitive` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_BinderDriverReturnProtocol` [INFO] [stdout] 309 | pub enum BinderDriverReturnProtocol { [INFO] [stdout] | -------------------------- `BinderDriverReturnProtocol` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_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 `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/binder.rs:556:9 [INFO] [stdout] | [INFO] [stdout] 556 | close(self.fd); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 556 | let _ = close(self.fd); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:87:9 [INFO] [stdout] | [INFO] [stdout] 87 | self.cursor.write(other.to_slice()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 87 | let _ = self.cursor.write(other.to_slice()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:129:9 [INFO] [stdout] | [INFO] [stdout] 129 | self.cursor.write_i32::(data); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 129 | let _ = self.cursor.write_i32::(data); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | self.cursor.write_u32::(data); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 133 | let _ = self.cursor.write_u32::(data); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:137:9 [INFO] [stdout] | [INFO] [stdout] 137 | self.cursor.write_u16::(data); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 137 | let _ = self.cursor.write_u16::(data); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:142:9 [INFO] [stdout] | [INFO] [stdout] 142 | self.cursor.write_u32::(data as u32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 142 | let _ = self.cursor.write_u32::(data as u32); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:206:9 [INFO] [stdout] | [INFO] [stdout] 206 | self.cursor.read(&mut data); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 206 | let _ = self.cursor.read(&mut data); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:212:9 [INFO] [stdout] | [INFO] [stdout] 212 | self.cursor.read(&mut data); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 212 | let _ = self.cursor.read(&mut data); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:238:9 [INFO] [stdout] | [INFO] [stdout] 238 | / self.cursor.write(unsafe { [INFO] [stdout] 239 | | slice::from_raw_parts(&object as *const _ as *const u8, size_of::()) [INFO] [stdout] 240 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 238 | let _ = self.cursor.write(unsafe { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:249:13 [INFO] [stdout] | [INFO] [stdout] 249 | s16.write_u16::(c); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 249 | let _ = s16.write_u16::(c); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:251:9 [INFO] [stdout] | [INFO] [stdout] 251 | s16.write_u16::(0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 251 | let _ = s16.write_u16::(0); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:257:9 [INFO] [stdout] | [INFO] [stdout] 257 | self.cursor.write(s16.as_slice()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 257 | let _ = self.cursor.write(s16.as_slice()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Interface` should have a snake case name [INFO] [stdout] --> src/service.rs:102:29 [INFO] [stdout] | [INFO] [stdout] 102 | ... Interface => { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `interface` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling binder-rust v0.1.2 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Binder` [INFO] [stdout] --> examples/myservice.rs:3:19 [INFO] [stdout] | [INFO] [stdout] 3 | use binder_rust::{Binder, BinderService, Parcel, ServiceManager}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ioctl_write_int` [INFO] [stdout] --> src/binder.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | ioctl_write_int, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `convert::TryFrom`, `ops::BitOr`, and `slice` [INFO] [stdout] --> src/binder.rs:24:11 [INFO] [stdout] | [INFO] [stdout] 24 | use std::{convert::TryFrom, ffi::c_void, mem::size_of, ops::BitOr, os::unix::io::RawFd, ptr, slice}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mem::transmute` [INFO] [stdout] --> src/parcel.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | mem::transmute, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Binder` [INFO] [stdout] --> src/parcel.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::{Binder, BinderFlatObject, BinderTransactionData, BinderType}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> examples/myservice.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | let mut service_manager = &mut ServiceManager::new(); [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` 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/myservice.rs:16:17 [INFO] [stdout] | [INFO] [stdout] 16 | #[derive(Debug, FromPrimitive)] [INFO] [stdout] | ^------------ [INFO] [stdout] | | [INFO] [stdout] | `FromPrimitive` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_MyServiceCommands` [INFO] [stdout] 17 | enum MyServiceCommands { [INFO] [stdout] | ----------------- `MyServiceCommands` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_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 `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> examples/simple.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | let mut service_manager = &mut ServiceManager::new(); [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `acquire_result` is assigned to, but never used [INFO] [stdout] --> src/binder.rs:472:17 [INFO] [stdout] | [INFO] [stdout] 472 | let mut acquire_result = Result::NoError; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_acquire_result` instead [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `acquire_result` is never read [INFO] [stdout] --> src/binder.rs:492:25 [INFO] [stdout] | [INFO] [stdout] 492 | acquire_result = if result == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/service.rs:108:29 [INFO] [stdout] | [INFO] [stdout] 102 | ... Interface => { [INFO] [stdout] | --------- matches any value [INFO] [stdout] ... [INFO] [stdout] 108 | ... _ => {} [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `Interface` [INFO] [stdout] --> src/service.rs:102:29 [INFO] [stdout] | [INFO] [stdout] 102 | ... Interface => { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Interface` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `transaction` [INFO] [stdout] --> src/service.rs:149:14 [INFO] [stdout] | [INFO] [stdout] 149 | let (transaction, mut parcel) = self.binder.transact( [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `transaction` [INFO] [stdout] --> src/service.rs:182:14 [INFO] [stdout] | [INFO] [stdout] 182 | let (transaction, mut parcel) = self.binder.transact( [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `parcel` [INFO] [stdout] --> src/service.rs:182:31 [INFO] [stdout] | [INFO] [stdout] 182 | let (transaction, mut parcel) = self.binder.transact( [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parcel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/service.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | let (transaction, mut parcel) = self.binder.transact( [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BinderTransactionDataData` is never constructed [INFO] [stdout] --> src/binder.rs:162:19 [INFO] [stdout] | [INFO] [stdout] 162 | pub(crate) struct BinderTransactionDataData { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `mem` is never read [INFO] [stdout] --> src/binder.rs:339:5 [INFO] [stdout] | [INFO] [stdout] 337 | pub struct Binder { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 338 | fd: RawFd, [INFO] [stdout] 339 | mem: *const c_void, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `CheckService` and `ListServices` are never constructed [INFO] [stdout] --> src/service.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 14 | enum ServiceManagerFunctions { [INFO] [stdout] | ----------------------- variants in this enum [INFO] [stdout] 15 | GetService = 1, [INFO] [stdout] 16 | CheckService = 2, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 17 | AddService = 3, [INFO] [stdout] 18 | ListServices = 4, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> src/service.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct Service<'a> { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 24 | name: &'a str, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> src/service.rs:74:5 [INFO] [stdout] | [INFO] [stdout] 68 | pub struct ServiceListener<'a, BS> [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 74 | name: &'a str, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `phantom` is never read [INFO] [stdout] --> src/service.rs:120:5 [INFO] [stdout] | [INFO] [stdout] 118 | pub struct ServiceManager<'a> { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 119 | binder: Binder, [INFO] [stdout] 120 | phantom: &'a PhantomData [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/binder.rs:56:47 [INFO] [stdout] | [INFO] [stdout] 56 | #[derive(Debug, Hash, Clone, Copy, PartialEq, FromPrimitive)] [INFO] [stdout] | ^------------ [INFO] [stdout] | | [INFO] [stdout] | `FromPrimitive` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_BinderType` [INFO] [stdout] 57 | pub enum BinderType { [INFO] [stdout] | ---------- `BinderType` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_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 `FromPrimitive` (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] --> src/binder.rs:108:17 [INFO] [stdout] | [INFO] [stdout] 108 | #[derive(Debug, FromPrimitive)] [INFO] [stdout] | ^------------ [INFO] [stdout] | | [INFO] [stdout] | `FromPrimitive` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_Transaction` [INFO] [stdout] 109 | pub enum Transaction { [INFO] [stdout] | ----------- `Transaction` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_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 `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `OneWay` should have an upper case name [INFO] [stdout] --> src/binder.rs:215:15 [INFO] [stdout] | [INFO] [stdout] 215 | const OneWay = 1; [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `ONE_WAY` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `CollectNotedAppOps` should have an upper case name [INFO] [stdout] --> src/binder.rs:216:15 [INFO] [stdout] | [INFO] [stdout] 216 | const CollectNotedAppOps = 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `COLLECT_NOTED_APP_OPS` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `RootObject` should have an upper case name [INFO] [stdout] --> src/binder.rs:217:15 [INFO] [stdout] | [INFO] [stdout] 217 | const RootObject = 4; [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper case: `ROOT_OBJECT` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `StatusCode` should have an upper case name [INFO] [stdout] --> src/binder.rs:218:15 [INFO] [stdout] | [INFO] [stdout] 218 | const StatusCode = 8; [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper case: `STATUS_CODE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `AcceptFds` should have an upper case name [INFO] [stdout] --> src/binder.rs:219:15 [INFO] [stdout] | [INFO] [stdout] 219 | const AcceptFds = 0x10; [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper case: `ACCEPT_FDS` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `ClearBuf` should have an upper case name [INFO] [stdout] --> src/binder.rs:220:15 [INFO] [stdout] | [INFO] [stdout] 220 | const ClearBuf = 0x20; [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper case: `CLEAR_BUF` [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/binder.rs:261:17 [INFO] [stdout] | [INFO] [stdout] 261 | #[derive(Debug, FromPrimitive)] [INFO] [stdout] | ^------------ [INFO] [stdout] | | [INFO] [stdout] | `FromPrimitive` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_BinderDriverCommandProtocol` [INFO] [stdout] 262 | pub enum BinderDriverCommandProtocol { [INFO] [stdout] | --------------------------- `BinderDriverCommandProtocol` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_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 `FromPrimitive` (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] --> src/binder.rs:308:17 [INFO] [stdout] | [INFO] [stdout] 308 | #[derive(Debug, FromPrimitive, ToPrimitive)] [INFO] [stdout] | ^------------ [INFO] [stdout] | | [INFO] [stdout] | `FromPrimitive` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_BinderDriverReturnProtocol` [INFO] [stdout] 309 | pub enum BinderDriverReturnProtocol { [INFO] [stdout] | -------------------------- `BinderDriverReturnProtocol` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_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 `FromPrimitive` (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] --> src/binder.rs:308:32 [INFO] [stdout] | [INFO] [stdout] 308 | #[derive(Debug, FromPrimitive, ToPrimitive)] [INFO] [stdout] | ^---------- [INFO] [stdout] | | [INFO] [stdout] | `ToPrimitive` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_BinderDriverReturnProtocol` [INFO] [stdout] 309 | pub enum BinderDriverReturnProtocol { [INFO] [stdout] | -------------------------- `BinderDriverReturnProtocol` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_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 `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/binder.rs:556:9 [INFO] [stdout] | [INFO] [stdout] 556 | close(self.fd); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 556 | let _ = close(self.fd); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:87:9 [INFO] [stdout] | [INFO] [stdout] 87 | self.cursor.write(other.to_slice()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 87 | let _ = self.cursor.write(other.to_slice()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:129:9 [INFO] [stdout] | [INFO] [stdout] 129 | self.cursor.write_i32::(data); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 129 | let _ = self.cursor.write_i32::(data); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | self.cursor.write_u32::(data); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 133 | let _ = self.cursor.write_u32::(data); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:137:9 [INFO] [stdout] | [INFO] [stdout] 137 | self.cursor.write_u16::(data); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 137 | let _ = self.cursor.write_u16::(data); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:142:9 [INFO] [stdout] | [INFO] [stdout] 142 | self.cursor.write_u32::(data as u32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 142 | let _ = self.cursor.write_u32::(data as u32); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:206:9 [INFO] [stdout] | [INFO] [stdout] 206 | self.cursor.read(&mut data); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 206 | let _ = self.cursor.read(&mut data); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:212:9 [INFO] [stdout] | [INFO] [stdout] 212 | self.cursor.read(&mut data); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 212 | let _ = self.cursor.read(&mut data); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:238:9 [INFO] [stdout] | [INFO] [stdout] 238 | / self.cursor.write(unsafe { [INFO] [stdout] 239 | | slice::from_raw_parts(&object as *const _ as *const u8, size_of::()) [INFO] [stdout] 240 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 238 | let _ = self.cursor.write(unsafe { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:249:13 [INFO] [stdout] | [INFO] [stdout] 249 | s16.write_u16::(c); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 249 | let _ = s16.write_u16::(c); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:251:9 [INFO] [stdout] | [INFO] [stdout] 251 | s16.write_u16::(0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 251 | let _ = s16.write_u16::(0); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parcel.rs:257:9 [INFO] [stdout] | [INFO] [stdout] 257 | self.cursor.write(s16.as_slice()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 257 | let _ = self.cursor.write(s16.as_slice()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Interface` should have a snake case name [INFO] [stdout] --> src/service.rs:102:29 [INFO] [stdout] | [INFO] [stdout] 102 | ... Interface => { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `interface` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.86s [INFO] running `Command { std: "docker" "inspect" "cb176bf2bb4ab6f12aefb3ae2693fe16cd2e344ab0bfb3afd240d2c215e83f74", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cb176bf2bb4ab6f12aefb3ae2693fe16cd2e344ab0bfb3afd240d2c215e83f74", kill_on_drop: false }` [INFO] [stdout] cb176bf2bb4ab6f12aefb3ae2693fe16cd2e344ab0bfb3afd240d2c215e83f74 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "test" "--frozen" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] 7db7e138a911d1f64e0777c9a0dab65272e1ad7c59e19e252981426346c2fdbf [INFO] running `Command { std: "docker" "start" "-a" "7db7e138a911d1f64e0777c9a0dab65272e1ad7c59e19e252981426346c2fdbf", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `ioctl_write_int` [INFO] [stderr] --> src/binder.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | ioctl_write_int, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `convert::TryFrom`, `ops::BitOr`, and `slice` [INFO] [stderr] --> src/binder.rs:24:11 [INFO] [stderr] | [INFO] [stderr] 24 | use std::{convert::TryFrom, ffi::c_void, mem::size_of, ops::BitOr, os::unix::io::RawFd, ptr, slice}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `mem::transmute` [INFO] [stderr] --> src/parcel.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | mem::transmute, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Binder` [INFO] [stderr] --> src/parcel.rs:13:13 [INFO] [stderr] | [INFO] [stderr] 13 | use crate::{Binder, BinderFlatObject, BinderTransactionData, BinderType}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `acquire_result` is assigned to, but never used [INFO] [stderr] --> src/binder.rs:472:17 [INFO] [stderr] | [INFO] [stderr] 472 | let mut acquire_result = Result::NoError; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_acquire_result` instead [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `acquire_result` is never read [INFO] [stderr] --> src/binder.rs:492:25 [INFO] [stderr] | [INFO] [stderr] 492 | acquire_result = if result == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] = note: `#[warn(unused_assignments)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/service.rs:108:29 [INFO] [stderr] | [INFO] [stderr] 102 | ... Interface => { [INFO] [stderr] | --------- matches any value [INFO] [stderr] ... [INFO] [stderr] 108 | ... _ => {} [INFO] [stderr] | ^ no value can reach this [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `Interface` [INFO] [stderr] --> src/service.rs:102:29 [INFO] [stderr] | [INFO] [stderr] 102 | ... Interface => { [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Interface` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `transaction` [INFO] [stderr] --> src/service.rs:149:14 [INFO] [stderr] | [INFO] [stderr] 149 | let (transaction, mut parcel) = self.binder.transact( [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `transaction` [INFO] [stderr] --> src/service.rs:182:14 [INFO] [stderr] | [INFO] [stderr] 182 | let (transaction, mut parcel) = self.binder.transact( [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `parcel` [INFO] [stderr] --> src/service.rs:182:31 [INFO] [stderr] | [INFO] [stderr] 182 | let (transaction, mut parcel) = self.binder.transact( [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parcel` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/service.rs:182:27 [INFO] [stderr] | [INFO] [stderr] 182 | let (transaction, mut parcel) = self.binder.transact( [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: struct `BinderTransactionDataData` is never constructed [INFO] [stderr] --> src/binder.rs:162:19 [INFO] [stderr] | [INFO] [stderr] 162 | pub(crate) struct BinderTransactionDataData { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field `mem` is never read [INFO] [stderr] --> src/binder.rs:339:5 [INFO] [stderr] | [INFO] [stderr] 337 | pub struct Binder { [INFO] [stderr] | ------ field in this struct [INFO] [stderr] 338 | fd: RawFd, [INFO] [stderr] 339 | mem: *const c_void, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: variants `CheckService` and `ListServices` are never constructed [INFO] [stderr] --> src/service.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 14 | enum ServiceManagerFunctions { [INFO] [stderr] | ----------------------- variants in this enum [INFO] [stderr] 15 | GetService = 1, [INFO] [stderr] 16 | CheckService = 2, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 17 | AddService = 3, [INFO] [stderr] 18 | ListServices = 4, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `name` is never read [INFO] [stderr] --> src/service.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 21 | pub struct Service<'a> { [INFO] [stderr] | ------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 24 | name: &'a str, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `name` is never read [INFO] [stderr] --> src/service.rs:74:5 [INFO] [stderr] | [INFO] [stderr] 68 | pub struct ServiceListener<'a, BS> [INFO] [stderr] | --------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 74 | name: &'a str, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `phantom` is never read [INFO] [stderr] --> src/service.rs:120:5 [INFO] [stderr] | [INFO] [stderr] 118 | pub struct ServiceManager<'a> { [INFO] [stderr] | -------------- field in this struct [INFO] [stderr] 119 | binder: Binder, [INFO] [stderr] 120 | phantom: &'a PhantomData [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stderr] --> src/binder.rs:56:47 [INFO] [stderr] | [INFO] [stderr] 56 | #[derive(Debug, Hash, Clone, Copy, PartialEq, FromPrimitive)] [INFO] [stderr] | ^------------ [INFO] [stderr] | | [INFO] [stderr] | `FromPrimitive` is not local [INFO] [stderr] | move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_BinderType` [INFO] [stderr] 57 | pub enum BinderType { [INFO] [stderr] | ---------- `BinderType` is not local [INFO] [stderr] | [INFO] [stderr] = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed [INFO] [stderr] = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_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 `FromPrimitive` (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] --> src/binder.rs:108:17 [INFO] [stderr] | [INFO] [stderr] 108 | #[derive(Debug, FromPrimitive)] [INFO] [stderr] | ^------------ [INFO] [stderr] | | [INFO] [stderr] | `FromPrimitive` is not local [INFO] [stderr] | move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_Transaction` [INFO] [stderr] 109 | pub enum Transaction { [INFO] [stderr] | ----------- `Transaction` is not local [INFO] [stderr] | [INFO] [stderr] = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed [INFO] [stderr] = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_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 `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: associated constant `OneWay` should have an upper case name [INFO] [stderr] --> src/binder.rs:215:15 [INFO] [stderr] | [INFO] [stderr] 215 | const OneWay = 1; [INFO] [stderr] | ^^^^^^ help: convert the identifier to upper case: `ONE_WAY` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stderr] [INFO] [stderr] warning: associated constant `CollectNotedAppOps` should have an upper case name [INFO] [stderr] --> src/binder.rs:216:15 [INFO] [stderr] | [INFO] [stderr] 216 | const CollectNotedAppOps = 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `COLLECT_NOTED_APP_OPS` [INFO] [stderr] [INFO] [stderr] warning: associated constant `RootObject` should have an upper case name [INFO] [stderr] --> src/binder.rs:217:15 [INFO] [stderr] | [INFO] [stderr] 217 | const RootObject = 4; [INFO] [stderr] | ^^^^^^^^^^ help: convert the identifier to upper case: `ROOT_OBJECT` [INFO] [stderr] [INFO] [stderr] warning: associated constant `StatusCode` should have an upper case name [INFO] [stderr] --> src/binder.rs:218:15 [INFO] [stderr] | [INFO] [stderr] 218 | const StatusCode = 8; [INFO] [stderr] | ^^^^^^^^^^ help: convert the identifier to upper case: `STATUS_CODE` [INFO] [stderr] [INFO] [stderr] warning: associated constant `AcceptFds` should have an upper case name [INFO] [stderr] --> src/binder.rs:219:15 [INFO] [stderr] | [INFO] [stderr] 219 | const AcceptFds = 0x10; [INFO] [stderr] | ^^^^^^^^^ help: convert the identifier to upper case: `ACCEPT_FDS` [INFO] [stderr] [INFO] [stderr] warning: associated constant `ClearBuf` should have an upper case name [INFO] [stderr] --> src/binder.rs:220:15 [INFO] [stderr] | [INFO] [stderr] 220 | const ClearBuf = 0x20; [INFO] [stderr] | ^^^^^^^^ help: convert the identifier to upper case: `CLEAR_BUF` [INFO] [stderr] [INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stderr] --> src/binder.rs:261:17 [INFO] [stderr] | [INFO] [stderr] 261 | #[derive(Debug, FromPrimitive)] [INFO] [stderr] | ^------------ [INFO] [stderr] | | [INFO] [stderr] | `FromPrimitive` is not local [INFO] [stderr] | move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_BinderDriverCommandProtocol` [INFO] [stderr] 262 | pub enum BinderDriverCommandProtocol { [INFO] [stderr] | --------------------------- `BinderDriverCommandProtocol` is not local [INFO] [stderr] | [INFO] [stderr] = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed [INFO] [stderr] = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_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 `FromPrimitive` (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] --> src/binder.rs:308:17 [INFO] [stderr] | [INFO] [stderr] 308 | #[derive(Debug, FromPrimitive, ToPrimitive)] [INFO] [stderr] | ^------------ [INFO] [stderr] | | [INFO] [stderr] | `FromPrimitive` is not local [INFO] [stderr] | move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_BinderDriverReturnProtocol` [INFO] [stderr] 309 | pub enum BinderDriverReturnProtocol { [INFO] [stderr] | -------------------------- `BinderDriverReturnProtocol` is not local [INFO] [stderr] | [INFO] [stderr] = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed [INFO] [stderr] = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_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 `FromPrimitive` (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] --> src/binder.rs:308:32 [INFO] [stderr] | [INFO] [stderr] 308 | #[derive(Debug, FromPrimitive, ToPrimitive)] [INFO] [stderr] | ^---------- [INFO] [stderr] | | [INFO] [stderr] | `ToPrimitive` is not local [INFO] [stderr] | move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_BinderDriverReturnProtocol` [INFO] [stderr] 309 | pub enum BinderDriverReturnProtocol { [INFO] [stderr] | -------------------------- `BinderDriverReturnProtocol` is not local [INFO] [stderr] | [INFO] [stderr] = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed [INFO] [stderr] = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_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 `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/binder.rs:556:9 [INFO] [stderr] | [INFO] [stderr] 556 | close(self.fd); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 556 | let _ = close(self.fd); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parcel.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | self.cursor.write(other.to_slice()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 87 | let _ = self.cursor.write(other.to_slice()); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parcel.rs:129:9 [INFO] [stderr] | [INFO] [stderr] 129 | self.cursor.write_i32::(data); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 129 | let _ = self.cursor.write_i32::(data); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parcel.rs:133:9 [INFO] [stderr] | [INFO] [stderr] 133 | self.cursor.write_u32::(data); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 133 | let _ = self.cursor.write_u32::(data); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parcel.rs:137:9 [INFO] [stderr] | [INFO] [stderr] 137 | self.cursor.write_u16::(data); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stdout] [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] running 0 tests [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stderr] 137 | let _ = self.cursor.write_u16::(data); [INFO] [stdout] [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parcel.rs:142:9 [INFO] [stderr] | [INFO] [stderr] 142 | self.cursor.write_u32::(data as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 142 | let _ = self.cursor.write_u32::(data as u32); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parcel.rs:206:9 [INFO] [stderr] | [INFO] [stderr] 206 | self.cursor.read(&mut data); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 206 | let _ = self.cursor.read(&mut data); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parcel.rs:212:9 [INFO] [stderr] | [INFO] [stderr] 212 | self.cursor.read(&mut data); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 212 | let _ = self.cursor.read(&mut data); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parcel.rs:238:9 [INFO] [stderr] | [INFO] [stderr] 238 | / self.cursor.write(unsafe { [INFO] [stderr] 239 | | slice::from_raw_parts(&object as *const _ as *const u8, size_of::()) [INFO] [stderr] 240 | | }); [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 238 | let _ = self.cursor.write(unsafe { [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parcel.rs:249:13 [INFO] [stderr] | [INFO] [stderr] 249 | s16.write_u16::(c); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 249 | let _ = s16.write_u16::(c); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parcel.rs:251:9 [INFO] [stderr] | [INFO] [stderr] 251 | s16.write_u16::(0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 251 | let _ = s16.write_u16::(0); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parcel.rs:257:9 [INFO] [stderr] | [INFO] [stderr] 257 | self.cursor.write(s16.as_slice()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 257 | let _ = self.cursor.write(s16.as_slice()); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: variable `Interface` should have a snake case name [INFO] [stderr] --> src/service.rs:102:29 [INFO] [stderr] | [INFO] [stderr] 102 | ... Interface => { [INFO] [stderr] | ^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `interface` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `binder-rust` (lib) generated 42 warnings (run `cargo fix --lib -p binder-rust` to apply 5 suggestions) [INFO] [stderr] warning: unused import: `Binder` [INFO] [stderr] --> examples/myservice.rs:3:19 [INFO] [stderr] | [INFO] [stderr] 3 | use binder_rust::{Binder, BinderService, Parcel, ServiceManager}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> examples/myservice.rs:45:9 [INFO] [stderr] | [INFO] [stderr] 45 | let mut service_manager = &mut ServiceManager::new(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stderr] --> examples/myservice.rs:16:17 [INFO] [stderr] | [INFO] [stderr] 16 | #[derive(Debug, FromPrimitive)] [INFO] [stderr] | ^------------ [INFO] [stderr] | | [INFO] [stderr] | `FromPrimitive` is not local [INFO] [stderr] | move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_MyServiceCommands` [INFO] [stderr] 17 | enum MyServiceCommands { [INFO] [stderr] | ----------------- `MyServiceCommands` is not local [INFO] [stderr] | [INFO] [stderr] = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed [INFO] [stderr] = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_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 `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> examples/simple.rs:5:9 [INFO] [stderr] | [INFO] [stderr] 5 | let mut service_manager = &mut ServiceManager::new(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `binder-rust` (example "myservice") generated 3 warnings (run `cargo fix --example "myservice"` to apply 2 suggestions) [INFO] [stderr] warning: `binder-rust` (example "simple") generated 1 warning (run `cargo fix --example "simple"` to apply 1 suggestion) [INFO] [stderr] warning: `binder-rust` (lib test) generated 42 warnings (42 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/x86_64-unknown-linux-musl/debug/deps/binder_rust-543b2fe04d3e62a2) [INFO] running `Command { std: "docker" "inspect" "7db7e138a911d1f64e0777c9a0dab65272e1ad7c59e19e252981426346c2fdbf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7db7e138a911d1f64e0777c9a0dab65272e1ad7c59e19e252981426346c2fdbf", kill_on_drop: false }` [INFO] [stdout] 7db7e138a911d1f64e0777c9a0dab65272e1ad7c59e19e252981426346c2fdbf