[INFO] fetching crate binder-rust 0.1.2...
[INFO] checking binder-rust-0.1.2 against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] extracting crate binder-rust 0.1.2 into /workspace/builds/worker-7-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-7-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate binder-rust 0.1.2 on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "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" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded autocfg v1.0.1
[INFO] [stderr]   Downloaded proc-macro2 v1.0.24
[INFO] [stderr]   Downloaded unicode-xid v0.2.1
[INFO] [stderr]   Downloaded num-traits v0.2.14
[INFO] [stderr]   Downloaded cc v1.0.67
[INFO] [stderr]   Downloaded syn v1.0.63
[INFO] [stderr]   Downloaded libc v0.2.88
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 4abffd828bd1ed8b0fe1734392896b6997a75eb345242e912a58f3ce0063c9c0
[INFO] running `Command { std: "docker" "start" "4abffd828bd1ed8b0fe1734392896b6997a75eb345242e912a58f3ce0063c9c0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4abffd828bd1ed8b0fe1734392896b6997a75eb345242e912a58f3ce0063c9c0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4abffd828bd1ed8b0fe1734392896b6997a75eb345242e912a58f3ce0063c9c0" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4abffd828bd1ed8b0fe1734392896b6997a75eb345242e912a58f3ce0063c9c0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4abffd828bd1ed8b0fe1734392896b6997a75eb345242e912a58f3ce0063c9c0" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.24
[INFO] [stderr]    Compiling unicode-xid v0.2.1
[INFO] [stderr]    Compiling autocfg v1.0.1
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]    Compiling libc v0.2.88
[INFO] [stderr]    Compiling syn v1.0.63
[INFO] [stderr]     Checking byteorder v1.4.3
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]     Checking nix v0.20.0
[INFO] [stderr]    Compiling num-derive v0.3.3
[INFO] [stderr]     Checking 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)]` (part of `#[warn(unused)]`) 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: 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)]` (part of `#[warn(unused)]`) 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:13
[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)]` (part of `#[warn(unused)]`) 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] 493 | |                             Result::InvalidOperation
[INFO] [stdout] 494 | |                         } else {
[INFO] [stdout] 495 | |                             Result::NoError
[INFO] [stdout] 496 | |                         };
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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: 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)]` (part of `#[warn(unused)]`) on by default
[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:27
[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: 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)]` (part of `#[warn(unused)]`) 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<Binder>
[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)]` (part of `#[warn(nonstandard_style)]`) 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)]` (part of `#[warn(unused)]`) 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::<LittleEndian>(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::<LittleEndian>(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::<LittleEndian>(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::<LittleEndian>(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::<LittleEndian>(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::<LittleEndian>(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::<LittleEndian>(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::<LittleEndian>(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::<T>())
[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::<LittleEndian>(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::<LittleEndian>(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::<LittleEndian>(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::<LittleEndian>(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)]` (part of `#[warn(nonstandard_style)]`) 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:13
[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)]` (part of `#[warn(unused)]`) 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] 493 | |                             Result::InvalidOperation
[INFO] [stdout] 494 | |                         } else {
[INFO] [stdout] 495 | |                             Result::NoError
[INFO] [stdout] 496 | |                         };
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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: 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)]` (part of `#[warn(unused)]`) on by default
[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:27
[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: 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)]` (part of `#[warn(unused)]`) 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<Binder>
[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)]` (part of `#[warn(nonstandard_style)]`) 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)]` (part of `#[warn(unused)]`) 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::<LittleEndian>(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::<LittleEndian>(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::<LittleEndian>(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::<LittleEndian>(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::<LittleEndian>(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::<LittleEndian>(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::<LittleEndian>(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::<LittleEndian>(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::<T>())
[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::<LittleEndian>(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::<LittleEndian>(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::<LittleEndian>(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::<LittleEndian>(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)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[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)]` (part of `#[warn(unused)]`) on by default
[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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> examples/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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.96s
[INFO] running `Command { std: "docker" "inspect" "4abffd828bd1ed8b0fe1734392896b6997a75eb345242e912a58f3ce0063c9c0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4abffd828bd1ed8b0fe1734392896b6997a75eb345242e912a58f3ce0063c9c0", kill_on_drop: false }`
[INFO] [stdout] 4abffd828bd1ed8b0fe1734392896b6997a75eb345242e912a58f3ce0063c9c0
