[INFO] fetching crate crslmnl 0.2.1...
[INFO] testing crslmnl-0.2.1 against 1.90.0 for beta-1.91-3
[INFO] extracting crate crslmnl 0.2.1 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate crslmnl 0.2.1
[INFO] finished tweaking crates.io crate crslmnl 0.2.1
[INFO] tweaked toml for crates.io crate crslmnl 0.2.1 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate crslmnl 0.2.1 on toolchain 1.90.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 51 packages to latest compatible versions
[INFO] [stderr]       Adding mio v0.6.23 (available: v1.0.4)
[INFO] [stderr]       Adding pnet v0.20.0 (available: v0.35.0)
[INFO] [stderr]       Adding time v0.1.45 (available: v0.3.44)
[INFO] [stderr]       Adding wasi v0.10.0+wasi-snapshot-preview1 (available: v0.10.2+wasi-snapshot-preview1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded pnet_macros v0.35.0
[INFO] [stderr]   Downloaded pnet_base v0.20.0
[INFO] [stderr]   Downloaded pnet_macros_support v0.20.0
[INFO] [stderr]   Downloaded pnet_sys v0.20.0
[INFO] [stderr]   Downloaded pnet_transport v0.20.0
[INFO] [stderr]   Downloaded pnet_packet v0.20.0
[INFO] [stderr]   Downloaded pnet_datalink v0.20.0
[INFO] [stderr]   Downloaded pnet v0.20.0
[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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 79e6d1852d9e0305b4ca23c92c5f6df9e2376f98b87493f7ffa3e3409383fbac
[INFO] running `Command { std: "docker" "start" "-a" "79e6d1852d9e0305b4ca23c92c5f6df9e2376f98b87493f7ffa3e3409383fbac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "79e6d1852d9e0305b4ca23c92c5f6df9e2376f98b87493f7ffa3e3409383fbac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "79e6d1852d9e0305b4ca23c92c5f6df9e2376f98b87493f7ffa3e3409383fbac", kill_on_drop: false }`
[INFO] [stdout] 79e6d1852d9e0305b4ca23c92c5f6df9e2376f98b87493f7ffa3e3409383fbac
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c97969dbce7f23d44c01848d0da5f76c48645ca184296da6daba057dd7ba1d89
[INFO] running `Command { std: "docker" "start" "-a" "c97969dbce7f23d44c01848d0da5f76c48645ca184296da6daba057dd7ba1d89", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling crslmnl v0.2.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated struct `gcc::Build`: crate has been renamed to `cc`, the `gcc` name is not maintained
[INFO] [stdout]  --> build.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 |     gcc::Build::new()
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `gcc::Build::new`: crate has been renamed to `cc`, the `gcc` name is not maintained
[INFO] [stdout]  --> build.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 |     gcc::Build::new()
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: crslmnl@0.2.1: src/nlmsg_ext.c: In function 'rsmnl_nlmsg_batch_cap':
[INFO] [stderr] warning: crslmnl@0.2.1: src/nlmsg_ext.c:137:17: warning: 'return' with no value, in function returning non-void [-Wreturn-type]
[INFO] [stderr] warning: crslmnl@0.2.1:   137 |                 return;
[INFO] [stderr] warning: crslmnl@0.2.1:       |                 ^~~~~~
[INFO] [stderr] warning: crslmnl@0.2.1: src/nlmsg_ext.c:132:6: note: declared here
[INFO] [stderr] warning: crslmnl@0.2.1:   132 | bool rsmnl_nlmsg_batch_cap(struct mnl_nlmsg_batch *b)
[INFO] [stderr] warning: crslmnl@0.2.1:       |      ^~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: crslmnl@0.2.1: src/nlmsg_ext.c: In function 'rsmnl_nlmsg_batch_reset':
[INFO] [stderr] warning: crslmnl@0.2.1: src/nlmsg_ext.c:130:1: warning: control reaches end of non-void function [-Wreturn-type]
[INFO] [stderr] warning: crslmnl@0.2.1:   130 | }
[INFO] [stderr] warning: crslmnl@0.2.1:       | ^
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/linux/if_link/mod.rs:1309:35
[INFO] [stdout]      |
[INFO] [stdout] 1309 | pub const XDP_FLAGS_MASK: u32            = (XDP_FLAGS_UPDATE_IF_NOEXIST | XDP_FLAGS_SKB_MODE);
[INFO] [stdout]      |                                            ^                                                ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1309 - pub const XDP_FLAGS_MASK: u32            = (XDP_FLAGS_UPDATE_IF_NOEXIST | XDP_FLAGS_SKB_MODE);
[INFO] [stdout] 1309 + pub const XDP_FLAGS_MASK: u32            = XDP_FLAGS_UPDATE_IF_NOEXIST | XDP_FLAGS_SKB_MODE;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/linux/ifh/mod.rs:47:31
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub const IFF_VOLATILE: u32    = (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|IFF_ECHO|
[INFO] [stdout]    |                                  ^
[INFO] [stdout] 48 |                            IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT);
[INFO] [stdout]    |                                                                                     ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 47 ~ pub const IFF_VOLATILE: u32    = IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|IFF_ECHO|
[INFO] [stdout] 48 ~                            IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> src/linux/netfilter/nfnetlink/mod.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 57 |     (x as u8)
[INFO] [stdout]    |     ^       ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 57 -     (x as u8)
[INFO] [stdout] 57 +     x as u8
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netfilter/nfnetlink_queue/mod.rs:158:39
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub const NFQA_CFG_F_FAIL_OPEN: u32    = (1 << 0);
[INFO] [stdout]     |                                          ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 158 - pub const NFQA_CFG_F_FAIL_OPEN: u32    = (1 << 0);
[INFO] [stdout] 158 + pub const NFQA_CFG_F_FAIL_OPEN: u32    = 1 << 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netfilter/nfnetlink_queue/mod.rs:159:39
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub const NFQA_CFG_F_CONNTRACK: u32    = (1 << 1);
[INFO] [stdout]     |                                          ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 159 - pub const NFQA_CFG_F_CONNTRACK: u32    = (1 << 1);
[INFO] [stdout] 159 + pub const NFQA_CFG_F_CONNTRACK: u32    = 1 << 1;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netfilter/nfnetlink_queue/mod.rs:160:33
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub const NFQA_CFG_F_GSO: u32    = (1 << 2);
[INFO] [stdout]     |                                    ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 160 - pub const NFQA_CFG_F_GSO: u32    = (1 << 2);
[INFO] [stdout] 160 + pub const NFQA_CFG_F_GSO: u32    = 1 << 2;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netfilter/nfnetlink_queue/mod.rs:161:37
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub const NFQA_CFG_F_UID_GID: u32    = (1 << 3);
[INFO] [stdout]     |                                        ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 161 - pub const NFQA_CFG_F_UID_GID: u32    = (1 << 3);
[INFO] [stdout] 161 + pub const NFQA_CFG_F_UID_GID: u32    = 1 << 3;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netfilter/nfnetlink_queue/mod.rs:162:36
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub const NFQA_CFG_F_SECCTX: u32    = (1 << 4);
[INFO] [stdout]     |                                       ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 162 - pub const NFQA_CFG_F_SECCTX: u32    = (1 << 4);
[INFO] [stdout] 162 + pub const NFQA_CFG_F_SECCTX: u32    = 1 << 4;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netfilter/nfnetlink_queue/mod.rs:163:33
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub const NFQA_CFG_F_MAX: u32    = (1 << 5);
[INFO] [stdout]     |                                    ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 163 - pub const NFQA_CFG_F_MAX: u32    = (1 << 5);
[INFO] [stdout] 163 + pub const NFQA_CFG_F_MAX: u32    = 1 << 5;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netfilter/nfnetlink_queue/mod.rs:167:40
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub const NFQA_SKB_CSUMNOTREADY: u32 = (1 << 0);
[INFO] [stdout]     |                                        ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 167 - pub const NFQA_SKB_CSUMNOTREADY: u32 = (1 << 0);
[INFO] [stdout] 167 + pub const NFQA_SKB_CSUMNOTREADY: u32 = 1 << 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netfilter/nfnetlink_queue/mod.rs:169:31
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub const NFQA_SKB_GSO: u32 = (1 << 1);
[INFO] [stdout]     |                               ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 169 - pub const NFQA_SKB_GSO: u32 = (1 << 1);
[INFO] [stdout] 169 + pub const NFQA_SKB_GSO: u32 = 1 << 1;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netfilter/nfnetlink_queue/mod.rs:171:45
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub const NFQA_SKB_CSUM_NOTVERIFIED: u32 =  (1 << 2);
[INFO] [stdout]     |                                             ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 171 - pub const NFQA_SKB_CSUM_NOTVERIFIED: u32 =  (1 << 2);
[INFO] [stdout] 171 + pub const NFQA_SKB_CSUM_NOTVERIFIED: u32 =  1 << 2;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netlink/mod.rs:117:29
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub const NLM_F_DUMP: u16    = (NLM_F_ROOT|NLM_F_MATCH);
[INFO] [stdout]     |                                ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 117 - pub const NLM_F_DUMP: u16    = (NLM_F_ROOT|NLM_F_MATCH);
[INFO] [stdout] 117 + pub const NLM_F_DUMP: u16    = NLM_F_ROOT|NLM_F_MATCH;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/linux/netlink/mod.rs:189:33
[INFO] [stdout]     |
[INFO] [stdout] 189 |     nlh.nlmsg_len - NLMSG_SPACE((len))
[INFO] [stdout]     |                                 ^   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 189 -     nlh.nlmsg_len - NLMSG_SPACE((len))
[INFO] [stdout] 189 +     nlh.nlmsg_len - NLMSG_SPACE(len)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netlink/mod.rs:282:32
[INFO] [stdout]     |
[INFO] [stdout] 282 | pub const NLA_F_NESTED: u16        = (1 << 15);
[INFO] [stdout]     |                                      ^       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 282 - pub const NLA_F_NESTED: u16        = (1 << 15);
[INFO] [stdout] 282 + pub const NLA_F_NESTED: u16        = 1 << 15;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netlink/mod.rs:283:38
[INFO] [stdout]     |
[INFO] [stdout] 283 | pub const NLA_F_NET_BYTEORDER: u16    = (1 << 14);
[INFO] [stdout]     |                                         ^       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 283 - pub const NLA_F_NET_BYTEORDER: u16    = (1 << 14);
[INFO] [stdout] 283 + pub const NLA_F_NET_BYTEORDER: u16    = 1 << 14;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/rtnetlink/mod.rs:400:35
[INFO] [stdout]     |
[INFO] [stdout] 400 | pub const RTNH_COMPARE_MASK: u8    = (RTNH_F_DEAD | RTNH_F_LINKDOWN | RTNH_F_OFFLOAD);
[INFO] [stdout]     |                                      ^                                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 400 - pub const RTNH_COMPARE_MASK: u8    = (RTNH_F_DEAD | RTNH_F_LINKDOWN | RTNH_F_OFFLOAD);
[INFO] [stdout] 400 + pub const RTNH_COMPARE_MASK: u8    = RTNH_F_DEAD | RTNH_F_LINKDOWN | RTNH_F_OFFLOAD;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/rtnetlink/mod.rs:502:36
[INFO] [stdout]     |
[INFO] [stdout] 502 | pub const RTAX_FEATURE_ECN: u32        = (1 << 0);
[INFO] [stdout]     |                                          ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 502 - pub const RTAX_FEATURE_ECN: u32        = (1 << 0);
[INFO] [stdout] 502 + pub const RTAX_FEATURE_ECN: u32        = 1 << 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/rtnetlink/mod.rs:503:36
[INFO] [stdout]     |
[INFO] [stdout] 503 | pub const RTAX_FEATURE_SACK: u32    = (1 << 1);
[INFO] [stdout]     |                                       ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 503 - pub const RTAX_FEATURE_SACK: u32    = (1 << 1);
[INFO] [stdout] 503 + pub const RTAX_FEATURE_SACK: u32    = 1 << 1;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/rtnetlink/mod.rs:504:41
[INFO] [stdout]     |
[INFO] [stdout] 504 | pub const RTAX_FEATURE_TIMESTAMP: u32    = (1 << 2);
[INFO] [stdout]     |                                            ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 504 - pub const RTAX_FEATURE_TIMESTAMP: u32    = (1 << 2);
[INFO] [stdout] 504 + pub const RTAX_FEATURE_TIMESTAMP: u32    = 1 << 2;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/rtnetlink/mod.rs:505:39
[INFO] [stdout]     |
[INFO] [stdout] 505 | pub const RTAX_FEATURE_ALLFRAG: u32    = (1 << 3);
[INFO] [stdout]     |                                          ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 505 - pub const RTAX_FEATURE_ALLFRAG: u32    = (1 << 3);
[INFO] [stdout] 505 + pub const RTAX_FEATURE_ALLFRAG: u32    = 1 << 3;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/rtnetlink/mod.rs:506:36
[INFO] [stdout]     |
[INFO] [stdout] 506 | pub const RTAX_FEATURE_MASK: u32    = (RTAX_FEATURE_ECN | RTAX_FEATURE_SACK |
[INFO] [stdout]     |                                       ^
[INFO] [stdout] 507 |                                            RTAX_FEATURE_TIMESTAMP | RTAX_FEATURE_ALLFRAG);
[INFO] [stdout]     |                                                                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 506 ~ pub const RTAX_FEATURE_MASK: u32    = RTAX_FEATURE_ECN | RTAX_FEATURE_SACK |
[INFO] [stdout] 507 ~                                            RTAX_FEATURE_TIMESTAMP | RTAX_FEATURE_ALLFRAG;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/rtnetlink/mod.rs:797:36
[INFO] [stdout]     |
[INFO] [stdout] 797 | pub const RTEXT_FILTER_VF: u32            = (1 << 0);
[INFO] [stdout]     |                                             ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 797 - pub const RTEXT_FILTER_VF: u32            = (1 << 0);
[INFO] [stdout] 797 + pub const RTEXT_FILTER_VF: u32            = 1 << 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/rtnetlink/mod.rs:798:39
[INFO] [stdout]     |
[INFO] [stdout] 798 | pub const RTEXT_FILTER_BRVLAN: u32        = (1 << 1);
[INFO] [stdout]     |                                             ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 798 - pub const RTEXT_FILTER_BRVLAN: u32        = (1 << 1);
[INFO] [stdout] 798 + pub const RTEXT_FILTER_BRVLAN: u32        = 1 << 1;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/rtnetlink/mod.rs:799:49
[INFO] [stdout]     |
[INFO] [stdout] 799 | pub const RTEXT_FILTER_BRVLAN_COMPRESSED: u32    = (1 << 2);
[INFO] [stdout]     |                                                    ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 799 - pub const RTEXT_FILTER_BRVLAN_COMPRESSED: u32    = (1 << 2);
[INFO] [stdout] 799 + pub const RTEXT_FILTER_BRVLAN_COMPRESSED: u32    = 1 << 2;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/rtnetlink/mod.rs:800:43
[INFO] [stdout]     |
[INFO] [stdout] 800 | pub const RTEXT_FILTER_SKIP_STATS: u32        = (1 << 3);
[INFO] [stdout]     |                                                 ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 800 - pub const RTEXT_FILTER_SKIP_STATS: u32        = (1 << 3);
[INFO] [stdout] 800 + pub const RTEXT_FILTER_SKIP_STATS: u32        = 1 << 3;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/lib.rs:84:1
[INFO] [stdout]    |
[INFO] [stdout] 84 | extern {
[INFO] [stdout]    | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/lib.rs:103:1
[INFO] [stdout]     |
[INFO] [stdout] 103 | extern {
[INFO] [stdout]     | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/lib.rs:121:1
[INFO] [stdout]     |
[INFO] [stdout] 121 | extern {
[INFO] [stdout]     | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/lib.rs:135:1
[INFO] [stdout]     |
[INFO] [stdout] 135 | extern { // arbitrary function
[INFO] [stdout]     | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/lib.rs:149:1
[INFO] [stdout]     |
[INFO] [stdout] 149 | extern {
[INFO] [stdout]     | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/lib.rs:203:1
[INFO] [stdout]     |
[INFO] [stdout] 203 | extern {
[INFO] [stdout]     | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/lib.rs:222:1
[INFO] [stdout]     |
[INFO] [stdout] 222 | extern {
[INFO] [stdout]     | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/lib.rs:246:1
[INFO] [stdout]     |
[INFO] [stdout] 246 | extern {
[INFO] [stdout]     | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:313:9
[INFO] [stdout]     |
[INFO] [stdout] 313 |         try!(cvt_isize!(mnl_socket_bind(self, group as c_uint, pid as pid_t)));
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:326:9
[INFO] [stdout]     |
[INFO] [stdout] 326 |         try!(cvt_isize!(mnl_socket_close(self)));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:353:17
[INFO] [stdout]     |
[INFO] [stdout] 353 |         let n = try!(cvt_isize!(
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:367:17
[INFO] [stdout]     |
[INFO] [stdout] 367 |         let n = try!(cvt_isize!(
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:382:17
[INFO] [stdout]     |
[INFO] [stdout] 382 |         let n = try!(cvt_isize!(
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:395:17
[INFO] [stdout]     |
[INFO] [stdout] 395 |         let n = try!(cvt_isize!(
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:425:9
[INFO] [stdout]     |
[INFO] [stdout] 425 |         try!(cvt_isize!(
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:442:9
[INFO] [stdout]     |
[INFO] [stdout] 442 |         try!(cvt_isize!(
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:534:9
[INFO] [stdout]     |
[INFO] [stdout] 534 |         try!(nlh.put_header());
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:533:23
[INFO] [stdout]     |
[INFO] [stdout] 533 |         let mut nlh = try!(Self::from_bytes(buf));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/lib.rs:540:44
[INFO] [stdout]     |
[INFO] [stdout] 540 |             std::slice::from_raw_parts_mut((nlh as *mut u8),
[INFO] [stdout]     |                                            ^              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 540 -             std::slice::from_raw_parts_mut((nlh as *mut u8),
[INFO] [stdout] 540 +             std::slice::from_raw_parts_mut(nlh as *mut u8,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/lib.rs:1030:103
[INFO] [stdout]      |
[INFO] [stdout] 1030 |     pub fn parse<T: ?Sized + 'a>(&self, offset: usize, cb: AttrCb<'a, T>, data: &mut T) -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                                                                                       ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1030 -     pub fn parse<T: ?Sized + 'a>(&self, offset: usize, cb: AttrCb<'a, T>, data: &mut T) -> io::Result<(CbRet)> {
[INFO] [stdout] 1030 +     pub fn parse<T: ?Sized + 'a>(&self, offset: usize, cb: AttrCb<'a, T>, data: &mut T) -> io::Result<CbRet> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/lib.rs:1036:105
[INFO] [stdout]      |
[INFO] [stdout] 1036 |     pub fn cl_parse<'b, 'c>(&self, offset: usize, cb: Box<FnMut(&'b Attr) -> CbRet + 'c>) -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                                                                                         ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1036 -     pub fn cl_parse<'b, 'c>(&self, offset: usize, cb: Box<FnMut(&'b Attr) -> CbRet + 'c>) -> io::Result<(CbRet)> {
[INFO] [stdout] 1036 +     pub fn cl_parse<'b, 'c>(&self, offset: usize, cb: Box<FnMut(&'b Attr) -> CbRet + 'c>) -> io::Result<CbRet> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/lib.rs:1336:9
[INFO] [stdout]      |
[INFO] [stdout] 1336 |         try!(cvt_isize!(mnl_attr_type_valid(self, maxtype)));
[INFO] [stdout]      |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/lib.rs:1350:9
[INFO] [stdout]      |
[INFO] [stdout] 1350 |         try!(cvt_isize!(mnl_attr_validate(self, atype as u16)));
[INFO] [stdout]      |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/lib.rs:1365:9
[INFO] [stdout]      |
[INFO] [stdout] 1365 |         try!(cvt_isize!(mnl_attr_validate2(self, atype as u16, exp_len as size_t)));
[INFO] [stdout]      |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/lib.rs:1415:55
[INFO] [stdout]      |
[INFO] [stdout] 1415 | ...                   -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                     ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1415 -                                         -> io::Result<(CbRet)> {
[INFO] [stdout] 1415 +                                         -> io::Result<CbRet> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/lib.rs:1421:93
[INFO] [stdout]      |
[INFO] [stdout] 1421 |     pub fn cl_parse_nested<'b>(&self, cb: Box<FnMut(&'a Attr) -> CbRet + 'b>) -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                                                                             ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1421 -     pub fn cl_parse_nested<'b>(&self, cb: Box<FnMut(&'a Attr) -> CbRet + 'b>) -> io::Result<(CbRet)> {
[INFO] [stdout] 1421 +     pub fn cl_parse_nested<'b>(&self, cb: Box<FnMut(&'a Attr) -> CbRet + 'b>) -> io::Result<CbRet> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]     --> src/lib.rs:1433:1
[INFO] [stdout]      |
[INFO] [stdout] 1433 | extern fn attr_parse_cb<T: ?Sized>(attr: *const netlink::Nlattr, data: *mut c_void) -> c_int {
[INFO] [stdout]      | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]     --> src/lib.rs:1440:1
[INFO] [stdout]      |
[INFO] [stdout] 1440 | extern fn attr_parse_cb2(attr: *const netlink::Nlattr, data: *mut c_void) -> c_int {
[INFO] [stdout]      | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/lib.rs:1469:103
[INFO] [stdout]      |
[INFO] [stdout] 1469 | pub fn parse_attrs<'a, T: 'a + ?Sized>(payload: &[u8], cb: AttrCb<'a, T>, data: &mut T) -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                                                                                       ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1469 - pub fn parse_attrs<'a, T: 'a + ?Sized>(payload: &[u8], cb: AttrCb<'a, T>, data: &mut T) -> io::Result<(CbRet)> {
[INFO] [stdout] 1469 + pub fn parse_attrs<'a, T: 'a + ?Sized>(payload: &[u8], cb: AttrCb<'a, T>, data: &mut T) -> io::Result<CbRet> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/lib.rs:1476:92
[INFO] [stdout]      |
[INFO] [stdout] 1476 | pub fn cl_parse_attrs<'a>(payload: &[u8], cb: Box<FnMut(&'a Attr) -> CbRet>) -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                                                                            ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1476 - pub fn cl_parse_attrs<'a>(payload: &[u8], cb: Box<FnMut(&'a Attr) -> CbRet>) -> io::Result<(CbRet)> {
[INFO] [stdout] 1476 + pub fn cl_parse_attrs<'a>(payload: &[u8], cb: Box<FnMut(&'a Attr) -> CbRet>) -> io::Result<CbRet> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]     --> src/lib.rs:1481:1
[INFO] [stdout]      |
[INFO] [stdout] 1481 | extern fn nlmsg_parse_cb<T: ?Sized>(nlh: *const netlink::Nlmsghdr, data: *mut c_void) -> c_int {
[INFO] [stdout]      | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]     --> src/lib.rs:1491:1
[INFO] [stdout]      |
[INFO] [stdout] 1491 | extern fn nlmsg_parse_cb2(nlh: *const netlink::Nlmsghdr, data: *mut c_void) -> c_int {
[INFO] [stdout]      | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]     --> src/lib.rs:1504:1
[INFO] [stdout]      |
[INFO] [stdout] 1504 | extern fn nlmsg_ctl_cb<T: ?Sized>(nlh: *const netlink::Nlmsghdr, data: *mut c_void) -> c_int {
[INFO] [stdout]      | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]     --> src/lib.rs:1514:1
[INFO] [stdout]      |
[INFO] [stdout] 1514 | extern fn nlmsg_ctl_cb2(nlh: *const netlink::Nlmsghdr, data: *mut c_void) -> c_int {
[INFO] [stdout]      | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/lib.rs:1529:36
[INFO] [stdout]      |
[INFO] [stdout] 1529 |                      -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                    ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1529 -                      -> io::Result<(CbRet)> {
[INFO] [stdout] 1529 +                      -> io::Result<CbRet> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/lib.rs:1539:29
[INFO] [stdout]      |
[INFO] [stdout] 1539 |               -> io::Result<(CbRet)> {
[INFO] [stdout]      |                             ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1539 -               -> io::Result<(CbRet)> {
[INFO] [stdout] 1539 +               -> io::Result<CbRet> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/lib.rs:1569:41
[INFO] [stdout]      |
[INFO] [stdout] 1569 |                           -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                         ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1569 -                           -> io::Result<(CbRet)> {
[INFO] [stdout] 1569 +                           -> io::Result<CbRet> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/lib.rs:1582:30
[INFO] [stdout]      |
[INFO] [stdout] 1582 |                -> io::Result<(CbRet)> {
[INFO] [stdout]      |                              ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1582 -                -> io::Result<(CbRet)> {
[INFO] [stdout] 1582 +                -> io::Result<CbRet> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:299:24
[INFO] [stdout]     |
[INFO] [stdout] 299 |     pub fn fdopen(fd: &AsRawFd) -> io::Result<&'a mut Socket> {
[INFO] [stdout]     |                        ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 299 |     pub fn fdopen(fd: &dyn AsRawFd) -> io::Result<&'a mut Socket> {
[INFO] [stdout]     |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:739:32
[INFO] [stdout]     |
[INFO] [stdout] 739 |     pub fn fprintf(&self, fd: &AsRawFd, extra_header_size: usize) {
[INFO] [stdout]     |                                ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 739 |     pub fn fprintf(&self, fd: &dyn AsRawFd, extra_header_size: usize) {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1036:59
[INFO] [stdout]      |
[INFO] [stdout] 1036 |     pub fn cl_parse<'b, 'c>(&self, offset: usize, cb: Box<FnMut(&'b Attr) -> CbRet + 'c>) -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1036 |     pub fn cl_parse<'b, 'c>(&self, offset: usize, cb: Box<dyn FnMut(&'b Attr) -> CbRet + 'c>) -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1041:50
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     pub fn attrs(&'a self, offset: usize) -> Box<Iterator<Item=&Attr> + 'a> {
[INFO] [stdout]      |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     pub fn attrs(&'a self, offset: usize) -> Box<dyn Iterator<Item=&Attr> + 'a> {
[INFO] [stdout]      |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1421:47
[INFO] [stdout]      |
[INFO] [stdout] 1421 |     pub fn cl_parse_nested<'b>(&self, cb: Box<FnMut(&'a Attr) -> CbRet + 'b>) -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1421 |     pub fn cl_parse_nested<'b>(&self, cb: Box<dyn FnMut(&'a Attr) -> CbRet + 'b>) -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1425:37
[INFO] [stdout]      |
[INFO] [stdout] 1425 |     pub fn nesteds(&'a self) -> Box<Iterator<Item=&Attr> + 'a> {
[INFO] [stdout]      |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1425 |     pub fn nesteds(&'a self) -> Box<dyn Iterator<Item=&Attr> + 'a> {
[INFO] [stdout]      |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1476:51
[INFO] [stdout]      |
[INFO] [stdout] 1476 | pub fn cl_parse_attrs<'a>(payload: &[u8], cb: Box<FnMut(&'a Attr) -> CbRet>) -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1476 | pub fn cl_parse_attrs<'a>(payload: &[u8], cb: Box<dyn FnMut(&'a Attr) -> CbRet>) -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1538:35
[INFO] [stdout]      |
[INFO] [stdout] 1538 |               cb_data: Option<Box<FnMut(Nlmsg) -> CbRet>>)
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1538 |               cb_data: Option<Box<dyn FnMut(Nlmsg) -> CbRet>>)
[INFO] [stdout]      |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1580:36
[INFO] [stdout]      |
[INFO] [stdout] 1580 |                cb_data: Option<Box<FnMut(Nlmsg) -> CbRet>>,
[INFO] [stdout]      |                                    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1580 |                cb_data: Option<Box<dyn FnMut(Nlmsg) -> CbRet>>,
[INFO] [stdout]      |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1581:47
[INFO] [stdout]      |
[INFO] [stdout] 1581 |                cb_ctl_array: &mut [Option<Box<FnMut(Nlmsg) -> CbRet>>])
[INFO] [stdout]      |                                               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1581 |                cb_ctl_array: &mut [Option<Box<dyn FnMut(Nlmsg) -> CbRet>>])
[INFO] [stdout]      |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1442:53
[INFO] [stdout]      |
[INFO] [stdout] 1442 |         let mut cb = Box::from_raw(data as *mut Box<FnMut(&Attr) -> CbRet>);
[INFO] [stdout]      |                                                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1442 |         let mut cb = Box::from_raw(data as *mut Box<dyn FnMut(&Attr) -> CbRet>);
[INFO] [stdout]      |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1493:61
[INFO] [stdout]      |
[INFO] [stdout] 1493 |         let mut op = Box::from_raw(data as *mut (Option<Box<FnMut(Nlmsg) -> CbRet>>,
[INFO] [stdout]      |                                                             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1493 |         let mut op = Box::from_raw(data as *mut (Option<Box<dyn FnMut(Nlmsg) -> CbRet>>,
[INFO] [stdout]      |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1494:63
[INFO] [stdout]      |
[INFO] [stdout] 1494 | ...                   &[Option<Box<FnMut(Nlmsg) -> CbRet>>]));
[INFO] [stdout]      |                                    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1494 |                                                  &[Option<Box<dyn FnMut(Nlmsg) -> CbRet>>]));
[INFO] [stdout]      |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1516:58
[INFO] [stdout]      |
[INFO] [stdout] 1516 |         let cbs = Box::from_raw(data as *mut (Option<Box<FnMut(Nlmsg) -> CbRet>>,
[INFO] [stdout]      |                                                          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1516 |         let cbs = Box::from_raw(data as *mut (Option<Box<dyn FnMut(Nlmsg) -> CbRet>>,
[INFO] [stdout]      |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1517:64
[INFO] [stdout]      |
[INFO] [stdout] 1517 | ...                   &mut [Option<Box<FnMut(Nlmsg) -> CbRet>>]));
[INFO] [stdout]      |                                        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1517 |                                               &mut [Option<Box<dyn FnMut(Nlmsg) -> CbRet>>]));
[INFO] [stdout]      |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1542:73
[INFO] [stdout]      |
[INFO] [stdout] 1542 |                           Box::into_raw(Box::new((cb_data, &[None::<Box<FnMut(Nlmsg) -> CbRet>>]))) as *mut c_void))
[INFO] [stdout]      |                                                                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1542 |                           Box::into_raw(Box::new((cb_data, &[None::<Box<dyn FnMut(Nlmsg) -> CbRet>>]))) as *mut c_void))
[INFO] [stdout]      |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: bounds on generic parameters in type aliases are not enforced
[INFO] [stdout]    --> src/lib.rs:215:24
[INFO] [stdout]     |
[INFO] [stdout] 215 | pub type AttrCb<'a, T: ?Sized> = fn(attr: &'a Attr, data: &mut T) -> CbRet;
[INFO] [stdout]     |                      --^^^^^^
[INFO] [stdout]     |                      | |
[INFO] [stdout]     |                      | will not be checked at usage sites of the type alias
[INFO] [stdout]     |                      help: remove this bound
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = note: `#[warn(type_alias_bounds)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: bounds on generic parameters in type aliases are not enforced
[INFO] [stdout]    --> src/lib.rs:237:20
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub type Cb<'a, T: ?Sized> = fn(nlh: Nlmsg, data: &'a mut T) -> CbRet;
[INFO] [stdout]     |                  --^^^^^^
[INFO] [stdout]     |                  | |
[INFO] [stdout]     |                  | will not be checked at usage sites of the type alias
[INFO] [stdout]     |                  help: remove this bound
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/lib.rs:559:18
[INFO] [stdout]     |
[INFO] [stdout] 559 |         unsafe { &mut(*mnl_nlmsg_put_header(self.as_raw_mut() as *mut _ as *mut c_void)); }
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 559 |         unsafe { let _ = &mut(*mnl_nlmsg_put_header(self.as_raw_mut() as *mut _ as *mut c_void)); }
[INFO] [stdout]     |                  +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:1041:19
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     pub fn attrs(&'a self, offset: usize) -> Box<Iterator<Item=&Attr> + 'a> {
[INFO] [stdout]      |                   ^^ the lifetime is named here                ----- the same lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]      = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     pub fn attrs(&'a self, offset: usize) -> Box<Iterator<Item=&'a Attr> + 'a> {
[INFO] [stdout]      |                                                                 ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:1180:26
[INFO] [stdout]      |
[INFO] [stdout] 1180 |     pub fn current_nlmsg(&mut self) -> io::Result<Nlmsg> {
[INFO] [stdout]      |                          ^^^^^^^^^                ----- the same lifetime is hidden here
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1180 |     pub fn current_nlmsg(&mut self) -> io::Result<Nlmsg<'_>> {
[INFO] [stdout]      |                                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:1425:21
[INFO] [stdout]      |
[INFO] [stdout] 1425 |     pub fn nesteds(&'a self) -> Box<Iterator<Item=&Attr> + 'a> {
[INFO] [stdout]      |                     ^^ the lifetime is named here ----- the same lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 1425 |     pub fn nesteds(&'a self) -> Box<Iterator<Item=&'a Attr> + 'a> {
[INFO] [stdout]      |                                                    ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.37s
[INFO] running `Command { std: "docker" "inspect" "c97969dbce7f23d44c01848d0da5f76c48645ca184296da6daba057dd7ba1d89", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c97969dbce7f23d44c01848d0da5f76c48645ca184296da6daba057dd7ba1d89", kill_on_drop: false }`
[INFO] [stdout] c97969dbce7f23d44c01848d0da5f76c48645ca184296da6daba057dd7ba1d89
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0e93662893e55148ff5801042a82b7ffdf8a1c3d88fb42f4295679047f7c6374
[INFO] running `Command { std: "docker" "start" "-a" "0e93662893e55148ff5801042a82b7ffdf8a1c3d88fb42f4295679047f7c6374", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling log v0.4.28
[INFO] [stderr]    Compiling rustc-serialize v0.3.25
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling term v0.4.6
[INFO] [stderr]    Compiling unicode-xid v0.0.3
[INFO] [stderr]    Compiling regex-syntax v0.8.6
[INFO] [stderr]    Compiling bitflags v0.5.0
[INFO] [stderr]    Compiling glob v0.2.11
[INFO] [stderr]    Compiling pnet_base v0.20.0
[INFO] [stderr]    Compiling pnet_sys v0.20.0
[INFO] [stderr]    Compiling cfg-if v0.1.10
[INFO] [stderr]    Compiling ipnetwork v0.12.8
[INFO] [stderr]    Compiling pnet_base v0.35.0
[INFO] [stderr]    Compiling pnet v0.20.0
[INFO] [stdout] warning: use of deprecated struct `gcc::Build`: crate has been renamed to `cc`, the `gcc` name is not maintained
[INFO] [stdout]  --> build.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 |     gcc::Build::new()
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: crslmnl@0.2.1: src/nlmsg_ext.c: In function 'rsmnl_nlmsg_batch_cap':
[INFO] [stdout] warning: use of deprecated associated function `gcc::Build::new`: crate has been renamed to `cc`, the `gcc` name is not maintained
[INFO] [stdout]  --> build.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 |     gcc::Build::new()
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: crslmnl@0.2.1: src/nlmsg_ext.c:137:17: warning: 'return' with no value, in function returning non-void [-Wreturn-type]
[INFO] [stderr] warning: crslmnl@0.2.1:   137 |                 return;
[INFO] [stderr] warning: crslmnl@0.2.1:       |                 ^~~~~~
[INFO] [stderr] warning: crslmnl@0.2.1: src/nlmsg_ext.c:132:6: note: declared here
[INFO] [stderr] warning: crslmnl@0.2.1:   132 | bool rsmnl_nlmsg_batch_cap(struct mnl_nlmsg_batch *b)
[INFO] [stderr] warning: crslmnl@0.2.1:       |      ^~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: crslmnl@0.2.1: src/nlmsg_ext.c: In function 'rsmnl_nlmsg_batch_reset':
[INFO] [stderr] warning: crslmnl@0.2.1: src/nlmsg_ext.c:130:1: warning: control reaches end of non-void function [-Wreturn-type]
[INFO] [stderr] warning: crslmnl@0.2.1:   130 | }
[INFO] [stderr] warning: crslmnl@0.2.1:       | ^
[INFO] [stderr]    Compiling iovec v0.1.4
[INFO] [stderr]    Compiling time v0.1.45
[INFO] [stderr]    Compiling net2 v0.2.39
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/linux/if_link/mod.rs:1309:35
[INFO] [stdout]      |
[INFO] [stdout] 1309 | pub const XDP_FLAGS_MASK: u32            = (XDP_FLAGS_UPDATE_IF_NOEXIST | XDP_FLAGS_SKB_MODE);
[INFO] [stdout]      |                                            ^                                                ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1309 - pub const XDP_FLAGS_MASK: u32            = (XDP_FLAGS_UPDATE_IF_NOEXIST | XDP_FLAGS_SKB_MODE);
[INFO] [stdout] 1309 + pub const XDP_FLAGS_MASK: u32            = XDP_FLAGS_UPDATE_IF_NOEXIST | XDP_FLAGS_SKB_MODE;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/linux/ifh/mod.rs:47:31
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub const IFF_VOLATILE: u32    = (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|IFF_ECHO|
[INFO] [stdout]    |                                  ^
[INFO] [stdout] 48 |                            IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT);
[INFO] [stdout]    |                                                                                     ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 47 ~ pub const IFF_VOLATILE: u32    = IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|IFF_ECHO|
[INFO] [stdout] 48 ~                            IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> src/linux/netfilter/nfnetlink/mod.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 57 |     (x as u8)
[INFO] [stdout]    |     ^       ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 57 -     (x as u8)
[INFO] [stdout] 57 +     x as u8
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netfilter/nfnetlink_queue/mod.rs:158:39
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub const NFQA_CFG_F_FAIL_OPEN: u32    = (1 << 0);
[INFO] [stdout]     |                                          ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 158 - pub const NFQA_CFG_F_FAIL_OPEN: u32    = (1 << 0);
[INFO] [stdout] 158 + pub const NFQA_CFG_F_FAIL_OPEN: u32    = 1 << 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netfilter/nfnetlink_queue/mod.rs:159:39
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub const NFQA_CFG_F_CONNTRACK: u32    = (1 << 1);
[INFO] [stdout]     |                                          ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 159 - pub const NFQA_CFG_F_CONNTRACK: u32    = (1 << 1);
[INFO] [stdout] 159 + pub const NFQA_CFG_F_CONNTRACK: u32    = 1 << 1;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netfilter/nfnetlink_queue/mod.rs:160:33
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub const NFQA_CFG_F_GSO: u32    = (1 << 2);
[INFO] [stdout]     |                                    ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 160 - pub const NFQA_CFG_F_GSO: u32    = (1 << 2);
[INFO] [stdout] 160 + pub const NFQA_CFG_F_GSO: u32    = 1 << 2;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netfilter/nfnetlink_queue/mod.rs:161:37
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub const NFQA_CFG_F_UID_GID: u32    = (1 << 3);
[INFO] [stdout]     |                                        ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 161 - pub const NFQA_CFG_F_UID_GID: u32    = (1 << 3);
[INFO] [stdout] 161 + pub const NFQA_CFG_F_UID_GID: u32    = 1 << 3;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netfilter/nfnetlink_queue/mod.rs:162:36
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub const NFQA_CFG_F_SECCTX: u32    = (1 << 4);
[INFO] [stdout]     |                                       ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 162 - pub const NFQA_CFG_F_SECCTX: u32    = (1 << 4);
[INFO] [stdout] 162 + pub const NFQA_CFG_F_SECCTX: u32    = 1 << 4;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netfilter/nfnetlink_queue/mod.rs:163:33
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub const NFQA_CFG_F_MAX: u32    = (1 << 5);
[INFO] [stdout]     |                                    ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 163 - pub const NFQA_CFG_F_MAX: u32    = (1 << 5);
[INFO] [stdout] 163 + pub const NFQA_CFG_F_MAX: u32    = 1 << 5;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netfilter/nfnetlink_queue/mod.rs:167:40
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub const NFQA_SKB_CSUMNOTREADY: u32 = (1 << 0);
[INFO] [stdout]     |                                        ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 167 - pub const NFQA_SKB_CSUMNOTREADY: u32 = (1 << 0);
[INFO] [stdout] 167 + pub const NFQA_SKB_CSUMNOTREADY: u32 = 1 << 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netfilter/nfnetlink_queue/mod.rs:169:31
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub const NFQA_SKB_GSO: u32 = (1 << 1);
[INFO] [stdout]     |                               ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 169 - pub const NFQA_SKB_GSO: u32 = (1 << 1);
[INFO] [stdout] 169 + pub const NFQA_SKB_GSO: u32 = 1 << 1;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netfilter/nfnetlink_queue/mod.rs:171:45
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub const NFQA_SKB_CSUM_NOTVERIFIED: u32 =  (1 << 2);
[INFO] [stdout]     |                                             ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 171 - pub const NFQA_SKB_CSUM_NOTVERIFIED: u32 =  (1 << 2);
[INFO] [stdout] 171 + pub const NFQA_SKB_CSUM_NOTVERIFIED: u32 =  1 << 2;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netlink/mod.rs:117:29
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub const NLM_F_DUMP: u16    = (NLM_F_ROOT|NLM_F_MATCH);
[INFO] [stdout]     |                                ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 117 - pub const NLM_F_DUMP: u16    = (NLM_F_ROOT|NLM_F_MATCH);
[INFO] [stdout] 117 + pub const NLM_F_DUMP: u16    = NLM_F_ROOT|NLM_F_MATCH;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/linux/netlink/mod.rs:189:33
[INFO] [stdout]     |
[INFO] [stdout] 189 |     nlh.nlmsg_len - NLMSG_SPACE((len))
[INFO] [stdout]     |                                 ^   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 189 -     nlh.nlmsg_len - NLMSG_SPACE((len))
[INFO] [stdout] 189 +     nlh.nlmsg_len - NLMSG_SPACE(len)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netlink/mod.rs:282:32
[INFO] [stdout]     |
[INFO] [stdout] 282 | pub const NLA_F_NESTED: u16        = (1 << 15);
[INFO] [stdout]     |                                      ^       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 282 - pub const NLA_F_NESTED: u16        = (1 << 15);
[INFO] [stdout] 282 + pub const NLA_F_NESTED: u16        = 1 << 15;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/netlink/mod.rs:283:38
[INFO] [stdout]     |
[INFO] [stdout] 283 | pub const NLA_F_NET_BYTEORDER: u16    = (1 << 14);
[INFO] [stdout]     |                                         ^       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 283 - pub const NLA_F_NET_BYTEORDER: u16    = (1 << 14);
[INFO] [stdout] 283 + pub const NLA_F_NET_BYTEORDER: u16    = 1 << 14;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/rtnetlink/mod.rs:400:35
[INFO] [stdout]     |
[INFO] [stdout] 400 | pub const RTNH_COMPARE_MASK: u8    = (RTNH_F_DEAD | RTNH_F_LINKDOWN | RTNH_F_OFFLOAD);
[INFO] [stdout]     |                                      ^                                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 400 - pub const RTNH_COMPARE_MASK: u8    = (RTNH_F_DEAD | RTNH_F_LINKDOWN | RTNH_F_OFFLOAD);
[INFO] [stdout] 400 + pub const RTNH_COMPARE_MASK: u8    = RTNH_F_DEAD | RTNH_F_LINKDOWN | RTNH_F_OFFLOAD;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/rtnetlink/mod.rs:502:36
[INFO] [stdout]     |
[INFO] [stdout] 502 | pub const RTAX_FEATURE_ECN: u32        = (1 << 0);
[INFO] [stdout]     |                                          ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 502 - pub const RTAX_FEATURE_ECN: u32        = (1 << 0);
[INFO] [stdout] 502 + pub const RTAX_FEATURE_ECN: u32        = 1 << 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/rtnetlink/mod.rs:503:36
[INFO] [stdout]     |
[INFO] [stdout] 503 | pub const RTAX_FEATURE_SACK: u32    = (1 << 1);
[INFO] [stdout]     |                                       ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 503 - pub const RTAX_FEATURE_SACK: u32    = (1 << 1);
[INFO] [stdout] 503 + pub const RTAX_FEATURE_SACK: u32    = 1 << 1;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/rtnetlink/mod.rs:504:41
[INFO] [stdout]     |
[INFO] [stdout] 504 | pub const RTAX_FEATURE_TIMESTAMP: u32    = (1 << 2);
[INFO] [stdout]     |                                            ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 504 - pub const RTAX_FEATURE_TIMESTAMP: u32    = (1 << 2);
[INFO] [stdout] 504 + pub const RTAX_FEATURE_TIMESTAMP: u32    = 1 << 2;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/rtnetlink/mod.rs:505:39
[INFO] [stdout]     |
[INFO] [stdout] 505 | pub const RTAX_FEATURE_ALLFRAG: u32    = (1 << 3);
[INFO] [stdout]     |                                          ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 505 - pub const RTAX_FEATURE_ALLFRAG: u32    = (1 << 3);
[INFO] [stdout] 505 + pub const RTAX_FEATURE_ALLFRAG: u32    = 1 << 3;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/rtnetlink/mod.rs:506:36
[INFO] [stdout]     |
[INFO] [stdout] 506 | pub const RTAX_FEATURE_MASK: u32    = (RTAX_FEATURE_ECN | RTAX_FEATURE_SACK |
[INFO] [stdout]     |                                       ^
[INFO] [stdout] 507 |                                            RTAX_FEATURE_TIMESTAMP | RTAX_FEATURE_ALLFRAG);
[INFO] [stdout]     |                                                                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 506 ~ pub const RTAX_FEATURE_MASK: u32    = RTAX_FEATURE_ECN | RTAX_FEATURE_SACK |
[INFO] [stdout] 507 ~                                            RTAX_FEATURE_TIMESTAMP | RTAX_FEATURE_ALLFRAG;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/rtnetlink/mod.rs:797:36
[INFO] [stdout]     |
[INFO] [stdout] 797 | pub const RTEXT_FILTER_VF: u32            = (1 << 0);
[INFO] [stdout]     |                                             ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 797 - pub const RTEXT_FILTER_VF: u32            = (1 << 0);
[INFO] [stdout] 797 + pub const RTEXT_FILTER_VF: u32            = 1 << 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/rtnetlink/mod.rs:798:39
[INFO] [stdout]     |
[INFO] [stdout] 798 | pub const RTEXT_FILTER_BRVLAN: u32        = (1 << 1);
[INFO] [stdout]     |                                             ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 798 - pub const RTEXT_FILTER_BRVLAN: u32        = (1 << 1);
[INFO] [stdout] 798 + pub const RTEXT_FILTER_BRVLAN: u32        = 1 << 1;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/rtnetlink/mod.rs:799:49
[INFO] [stdout]     |
[INFO] [stdout] 799 | pub const RTEXT_FILTER_BRVLAN_COMPRESSED: u32    = (1 << 2);
[INFO] [stdout]     |                                                    ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 799 - pub const RTEXT_FILTER_BRVLAN_COMPRESSED: u32    = (1 << 2);
[INFO] [stdout] 799 + pub const RTEXT_FILTER_BRVLAN_COMPRESSED: u32    = 1 << 2;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/linux/rtnetlink/mod.rs:800:43
[INFO] [stdout]     |
[INFO] [stdout] 800 | pub const RTEXT_FILTER_SKIP_STATS: u32        = (1 << 3);
[INFO] [stdout]     |                                                 ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 800 - pub const RTEXT_FILTER_SKIP_STATS: u32        = (1 << 3);
[INFO] [stdout] 800 + pub const RTEXT_FILTER_SKIP_STATS: u32        = 1 << 3;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/lib.rs:84:1
[INFO] [stdout]    |
[INFO] [stdout] 84 | extern {
[INFO] [stdout]    | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/lib.rs:103:1
[INFO] [stdout]     |
[INFO] [stdout] 103 | extern {
[INFO] [stdout]     | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/lib.rs:121:1
[INFO] [stdout]     |
[INFO] [stdout] 121 | extern {
[INFO] [stdout]     | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/lib.rs:135:1
[INFO] [stdout]     |
[INFO] [stdout] 135 | extern { // arbitrary function
[INFO] [stdout]     | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/lib.rs:149:1
[INFO] [stdout]     |
[INFO] [stdout] 149 | extern {
[INFO] [stdout]     | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/lib.rs:203:1
[INFO] [stdout]     |
[INFO] [stdout] 203 | extern {
[INFO] [stdout]     | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/lib.rs:222:1
[INFO] [stdout]     |
[INFO] [stdout] 222 | extern {
[INFO] [stdout]     | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/lib.rs:246:1
[INFO] [stdout]     |
[INFO] [stdout] 246 | extern {
[INFO] [stdout]     | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:313:9
[INFO] [stdout]     |
[INFO] [stdout] 313 |         try!(cvt_isize!(mnl_socket_bind(self, group as c_uint, pid as pid_t)));
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:326:9
[INFO] [stdout]     |
[INFO] [stdout] 326 |         try!(cvt_isize!(mnl_socket_close(self)));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:353:17
[INFO] [stdout]     |
[INFO] [stdout] 353 |         let n = try!(cvt_isize!(
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:367:17
[INFO] [stdout]     |
[INFO] [stdout] 367 |         let n = try!(cvt_isize!(
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:382:17
[INFO] [stdout]     |
[INFO] [stdout] 382 |         let n = try!(cvt_isize!(
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:395:17
[INFO] [stdout]     |
[INFO] [stdout] 395 |         let n = try!(cvt_isize!(
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:425:9
[INFO] [stdout]     |
[INFO] [stdout] 425 |         try!(cvt_isize!(
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:442:9
[INFO] [stdout]     |
[INFO] [stdout] 442 |         try!(cvt_isize!(
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:534:9
[INFO] [stdout]     |
[INFO] [stdout] 534 |         try!(nlh.put_header());
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:533:23
[INFO] [stdout]     |
[INFO] [stdout] 533 |         let mut nlh = try!(Self::from_bytes(buf));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/lib.rs:540:44
[INFO] [stdout]     |
[INFO] [stdout] 540 |             std::slice::from_raw_parts_mut((nlh as *mut u8),
[INFO] [stdout]     |                                            ^              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 540 -             std::slice::from_raw_parts_mut((nlh as *mut u8),
[INFO] [stdout] 540 +             std::slice::from_raw_parts_mut(nlh as *mut u8,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/lib.rs:1030:103
[INFO] [stdout]      |
[INFO] [stdout] 1030 |     pub fn parse<T: ?Sized + 'a>(&self, offset: usize, cb: AttrCb<'a, T>, data: &mut T) -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                                                                                       ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1030 -     pub fn parse<T: ?Sized + 'a>(&self, offset: usize, cb: AttrCb<'a, T>, data: &mut T) -> io::Result<(CbRet)> {
[INFO] [stdout] 1030 +     pub fn parse<T: ?Sized + 'a>(&self, offset: usize, cb: AttrCb<'a, T>, data: &mut T) -> io::Result<CbRet> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/lib.rs:1036:105
[INFO] [stdout]      |
[INFO] [stdout] 1036 |     pub fn cl_parse<'b, 'c>(&self, offset: usize, cb: Box<FnMut(&'b Attr) -> CbRet + 'c>) -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                                                                                         ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1036 -     pub fn cl_parse<'b, 'c>(&self, offset: usize, cb: Box<FnMut(&'b Attr) -> CbRet + 'c>) -> io::Result<(CbRet)> {
[INFO] [stdout] 1036 +     pub fn cl_parse<'b, 'c>(&self, offset: usize, cb: Box<FnMut(&'b Attr) -> CbRet + 'c>) -> io::Result<CbRet> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/lib.rs:1336:9
[INFO] [stdout]      |
[INFO] [stdout] 1336 |         try!(cvt_isize!(mnl_attr_type_valid(self, maxtype)));
[INFO] [stdout]      |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/lib.rs:1350:9
[INFO] [stdout]      |
[INFO] [stdout] 1350 |         try!(cvt_isize!(mnl_attr_validate(self, atype as u16)));
[INFO] [stdout]      |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/lib.rs:1365:9
[INFO] [stdout]      |
[INFO] [stdout] 1365 |         try!(cvt_isize!(mnl_attr_validate2(self, atype as u16, exp_len as size_t)));
[INFO] [stdout]      |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/lib.rs:1415:55
[INFO] [stdout]      |
[INFO] [stdout] 1415 | ...                   -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                     ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1415 -                                         -> io::Result<(CbRet)> {
[INFO] [stdout] 1415 +                                         -> io::Result<CbRet> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/lib.rs:1421:93
[INFO] [stdout]      |
[INFO] [stdout] 1421 |     pub fn cl_parse_nested<'b>(&self, cb: Box<FnMut(&'a Attr) -> CbRet + 'b>) -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                                                                             ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1421 -     pub fn cl_parse_nested<'b>(&self, cb: Box<FnMut(&'a Attr) -> CbRet + 'b>) -> io::Result<(CbRet)> {
[INFO] [stdout] 1421 +     pub fn cl_parse_nested<'b>(&self, cb: Box<FnMut(&'a Attr) -> CbRet + 'b>) -> io::Result<CbRet> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]     --> src/lib.rs:1433:1
[INFO] [stdout]      |
[INFO] [stdout] 1433 | extern fn attr_parse_cb<T: ?Sized>(attr: *const netlink::Nlattr, data: *mut c_void) -> c_int {
[INFO] [stdout]      | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]     --> src/lib.rs:1440:1
[INFO] [stdout]      |
[INFO] [stdout] 1440 | extern fn attr_parse_cb2(attr: *const netlink::Nlattr, data: *mut c_void) -> c_int {
[INFO] [stdout]      | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/lib.rs:1469:103
[INFO] [stdout]      |
[INFO] [stdout] 1469 | pub fn parse_attrs<'a, T: 'a + ?Sized>(payload: &[u8], cb: AttrCb<'a, T>, data: &mut T) -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                                                                                       ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1469 - pub fn parse_attrs<'a, T: 'a + ?Sized>(payload: &[u8], cb: AttrCb<'a, T>, data: &mut T) -> io::Result<(CbRet)> {
[INFO] [stdout] 1469 + pub fn parse_attrs<'a, T: 'a + ?Sized>(payload: &[u8], cb: AttrCb<'a, T>, data: &mut T) -> io::Result<CbRet> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/lib.rs:1476:92
[INFO] [stdout]      |
[INFO] [stdout] 1476 | pub fn cl_parse_attrs<'a>(payload: &[u8], cb: Box<FnMut(&'a Attr) -> CbRet>) -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                                                                            ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1476 - pub fn cl_parse_attrs<'a>(payload: &[u8], cb: Box<FnMut(&'a Attr) -> CbRet>) -> io::Result<(CbRet)> {
[INFO] [stdout] 1476 + pub fn cl_parse_attrs<'a>(payload: &[u8], cb: Box<FnMut(&'a Attr) -> CbRet>) -> io::Result<CbRet> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]     --> src/lib.rs:1481:1
[INFO] [stdout]      |
[INFO] [stdout] 1481 | extern fn nlmsg_parse_cb<T: ?Sized>(nlh: *const netlink::Nlmsghdr, data: *mut c_void) -> c_int {
[INFO] [stdout]      | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]     --> src/lib.rs:1491:1
[INFO] [stdout]      |
[INFO] [stdout] 1491 | extern fn nlmsg_parse_cb2(nlh: *const netlink::Nlmsghdr, data: *mut c_void) -> c_int {
[INFO] [stdout]      | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]     --> src/lib.rs:1504:1
[INFO] [stdout]      |
[INFO] [stdout] 1504 | extern fn nlmsg_ctl_cb<T: ?Sized>(nlh: *const netlink::Nlmsghdr, data: *mut c_void) -> c_int {
[INFO] [stdout]      | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]     --> src/lib.rs:1514:1
[INFO] [stdout]      |
[INFO] [stdout] 1514 | extern fn nlmsg_ctl_cb2(nlh: *const netlink::Nlmsghdr, data: *mut c_void) -> c_int {
[INFO] [stdout]      | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/lib.rs:1529:36
[INFO] [stdout]      |
[INFO] [stdout] 1529 |                      -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                    ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1529 -                      -> io::Result<(CbRet)> {
[INFO] [stdout] 1529 +                      -> io::Result<CbRet> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/lib.rs:1539:29
[INFO] [stdout]      |
[INFO] [stdout] 1539 |               -> io::Result<(CbRet)> {
[INFO] [stdout]      |                             ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1539 -               -> io::Result<(CbRet)> {
[INFO] [stdout] 1539 +               -> io::Result<CbRet> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/lib.rs:1569:41
[INFO] [stdout]      |
[INFO] [stdout] 1569 |                           -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                         ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1569 -                           -> io::Result<(CbRet)> {
[INFO] [stdout] 1569 +                           -> io::Result<CbRet> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/lib.rs:1582:30
[INFO] [stdout]      |
[INFO] [stdout] 1582 |                -> io::Result<(CbRet)> {
[INFO] [stdout]      |                              ^     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1582 -                -> io::Result<(CbRet)> {
[INFO] [stdout] 1582 +                -> io::Result<CbRet> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:299:24
[INFO] [stdout]     |
[INFO] [stdout] 299 |     pub fn fdopen(fd: &AsRawFd) -> io::Result<&'a mut Socket> {
[INFO] [stdout]     |                        ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 299 |     pub fn fdopen(fd: &dyn AsRawFd) -> io::Result<&'a mut Socket> {
[INFO] [stdout]     |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:739:32
[INFO] [stdout]     |
[INFO] [stdout] 739 |     pub fn fprintf(&self, fd: &AsRawFd, extra_header_size: usize) {
[INFO] [stdout]     |                                ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 739 |     pub fn fprintf(&self, fd: &dyn AsRawFd, extra_header_size: usize) {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1036:59
[INFO] [stdout]      |
[INFO] [stdout] 1036 |     pub fn cl_parse<'b, 'c>(&self, offset: usize, cb: Box<FnMut(&'b Attr) -> CbRet + 'c>) -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1036 |     pub fn cl_parse<'b, 'c>(&self, offset: usize, cb: Box<dyn FnMut(&'b Attr) -> CbRet + 'c>) -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1041:50
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     pub fn attrs(&'a self, offset: usize) -> Box<Iterator<Item=&Attr> + 'a> {
[INFO] [stdout]      |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     pub fn attrs(&'a self, offset: usize) -> Box<dyn Iterator<Item=&Attr> + 'a> {
[INFO] [stdout]      |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1421:47
[INFO] [stdout]      |
[INFO] [stdout] 1421 |     pub fn cl_parse_nested<'b>(&self, cb: Box<FnMut(&'a Attr) -> CbRet + 'b>) -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1421 |     pub fn cl_parse_nested<'b>(&self, cb: Box<dyn FnMut(&'a Attr) -> CbRet + 'b>) -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1425:37
[INFO] [stdout]      |
[INFO] [stdout] 1425 |     pub fn nesteds(&'a self) -> Box<Iterator<Item=&Attr> + 'a> {
[INFO] [stdout]      |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1425 |     pub fn nesteds(&'a self) -> Box<dyn Iterator<Item=&Attr> + 'a> {
[INFO] [stdout]      |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1476:51
[INFO] [stdout]      |
[INFO] [stdout] 1476 | pub fn cl_parse_attrs<'a>(payload: &[u8], cb: Box<FnMut(&'a Attr) -> CbRet>) -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1476 | pub fn cl_parse_attrs<'a>(payload: &[u8], cb: Box<dyn FnMut(&'a Attr) -> CbRet>) -> io::Result<(CbRet)> {
[INFO] [stdout]      |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1538:35
[INFO] [stdout]      |
[INFO] [stdout] 1538 |               cb_data: Option<Box<FnMut(Nlmsg) -> CbRet>>)
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1538 |               cb_data: Option<Box<dyn FnMut(Nlmsg) -> CbRet>>)
[INFO] [stdout]      |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1580:36
[INFO] [stdout]      |
[INFO] [stdout] 1580 |                cb_data: Option<Box<FnMut(Nlmsg) -> CbRet>>,
[INFO] [stdout]      |                                    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1580 |                cb_data: Option<Box<dyn FnMut(Nlmsg) -> CbRet>>,
[INFO] [stdout]      |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1581:47
[INFO] [stdout]      |
[INFO] [stdout] 1581 |                cb_ctl_array: &mut [Option<Box<FnMut(Nlmsg) -> CbRet>>])
[INFO] [stdout]      |                                               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1581 |                cb_ctl_array: &mut [Option<Box<dyn FnMut(Nlmsg) -> CbRet>>])
[INFO] [stdout]      |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1442:53
[INFO] [stdout]      |
[INFO] [stdout] 1442 |         let mut cb = Box::from_raw(data as *mut Box<FnMut(&Attr) -> CbRet>);
[INFO] [stdout]      |                                                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1442 |         let mut cb = Box::from_raw(data as *mut Box<dyn FnMut(&Attr) -> CbRet>);
[INFO] [stdout]      |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1493:61
[INFO] [stdout]      |
[INFO] [stdout] 1493 |         let mut op = Box::from_raw(data as *mut (Option<Box<FnMut(Nlmsg) -> CbRet>>,
[INFO] [stdout]      |                                                             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1493 |         let mut op = Box::from_raw(data as *mut (Option<Box<dyn FnMut(Nlmsg) -> CbRet>>,
[INFO] [stdout]      |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1494:63
[INFO] [stdout]      |
[INFO] [stdout] 1494 | ...                   &[Option<Box<FnMut(Nlmsg) -> CbRet>>]));
[INFO] [stdout]      |                                    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1494 |                                                  &[Option<Box<dyn FnMut(Nlmsg) -> CbRet>>]));
[INFO] [stdout]      |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1516:58
[INFO] [stdout]      |
[INFO] [stdout] 1516 |         let cbs = Box::from_raw(data as *mut (Option<Box<FnMut(Nlmsg) -> CbRet>>,
[INFO] [stdout]      |                                                          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1516 |         let cbs = Box::from_raw(data as *mut (Option<Box<dyn FnMut(Nlmsg) -> CbRet>>,
[INFO] [stdout]      |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1517:64
[INFO] [stdout]      |
[INFO] [stdout] 1517 | ...                   &mut [Option<Box<FnMut(Nlmsg) -> CbRet>>]));
[INFO] [stdout]      |                                        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1517 |                                               &mut [Option<Box<dyn FnMut(Nlmsg) -> CbRet>>]));
[INFO] [stdout]      |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/lib.rs:1542:73
[INFO] [stdout]      |
[INFO] [stdout] 1542 |                           Box::into_raw(Box::new((cb_data, &[None::<Box<FnMut(Nlmsg) -> CbRet>>]))) as *mut c_void))
[INFO] [stdout]      |                                                                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1542 |                           Box::into_raw(Box::new((cb_data, &[None::<Box<dyn FnMut(Nlmsg) -> CbRet>>]))) as *mut c_void))
[INFO] [stdout]      |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: bounds on generic parameters in type aliases are not enforced
[INFO] [stdout]    --> src/lib.rs:215:24
[INFO] [stdout]     |
[INFO] [stdout] 215 | pub type AttrCb<'a, T: ?Sized> = fn(attr: &'a Attr, data: &mut T) -> CbRet;
[INFO] [stdout]     |                      --^^^^^^
[INFO] [stdout]     |                      | |
[INFO] [stdout]     |                      | will not be checked at usage sites of the type alias
[INFO] [stdout]     |                      help: remove this bound
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = note: `#[warn(type_alias_bounds)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: bounds on generic parameters in type aliases are not enforced
[INFO] [stdout]    --> src/lib.rs:237:20
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub type Cb<'a, T: ?Sized> = fn(nlh: Nlmsg, data: &'a mut T) -> CbRet;
[INFO] [stdout]     |                  --^^^^^^
[INFO] [stdout]     |                  | |
[INFO] [stdout]     |                  | will not be checked at usage sites of the type alias
[INFO] [stdout]     |                  help: remove this bound
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/lib.rs:559:18
[INFO] [stdout]     |
[INFO] [stdout] 559 |         unsafe { &mut(*mnl_nlmsg_put_header(self.as_raw_mut() as *mut _ as *mut c_void)); }
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 559 |         unsafe { let _ = &mut(*mnl_nlmsg_put_header(self.as_raw_mut() as *mut _ as *mut c_void)); }
[INFO] [stdout]     |                  +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:1041:19
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     pub fn attrs(&'a self, offset: usize) -> Box<Iterator<Item=&Attr> + 'a> {
[INFO] [stdout]      |                   ^^ the lifetime is named here                ----- the same lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]      = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     pub fn attrs(&'a self, offset: usize) -> Box<Iterator<Item=&'a Attr> + 'a> {
[INFO] [stdout]      |                                                                 ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling pnet_macros_support v0.20.0
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:1180:26
[INFO] [stdout]      |
[INFO] [stdout] 1180 |     pub fn current_nlmsg(&mut self) -> io::Result<Nlmsg> {
[INFO] [stdout]      |                          ^^^^^^^^^                ----- the same lifetime is hidden here
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1180 |     pub fn current_nlmsg(&mut self) -> io::Result<Nlmsg<'_>> {
[INFO] [stdout]      |                                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:1425:21
[INFO] [stdout]      |
[INFO] [stdout] 1425 |     pub fn nesteds(&'a self) -> Box<Iterator<Item=&Attr> + 'a> {
[INFO] [stdout]      |                     ^^ the lifetime is named here ----- the same lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 1425 |     pub fn nesteds(&'a self) -> Box<Iterator<Item=&'a Attr> + 'a> {
[INFO] [stdout]      |                                                    ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling log v0.3.9
[INFO] [stderr]    Compiling pnet_datalink v0.20.0
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling mio v0.6.23
[INFO] [stderr]    Compiling syntex_pos v0.42.0
[INFO] [stdout] error: cannot find derive macro `RustcEncodable` in this scope
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/syntex_pos-0.42.0/src/lib.rs:253:45
[INFO] [stdout]     |
[INFO] [stdout] 253 | #[derive(PartialEq, Eq, Clone, Debug, Hash, RustcEncodable, RustcDecodable, Copy)]
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find derive macro `RustcDecodable` in this scope
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/syntex_pos-0.42.0/src/lib.rs:253:61
[INFO] [stdout]     |
[INFO] [stdout] 253 | #[derive(PartialEq, Eq, Clone, Debug, Hash, RustcEncodable, RustcDecodable, Copy)]
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find derive macro `RustcEncodable` in this scope
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/syntex_pos-0.42.0/src/lib.rs:275:23
[INFO] [stdout]     |
[INFO] [stdout] 275 | #[derive(Copy, Clone, RustcEncodable, RustcDecodable, Eq, PartialEq)]
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find derive macro `RustcDecodable` in this scope
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/syntex_pos-0.42.0/src/lib.rs:275:39
[INFO] [stdout]     |
[INFO] [stdout] 275 | #[derive(Copy, Clone, RustcEncodable, RustcDecodable, Eq, PartialEq)]
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `encode` exists for struct `Vec<MultiByteChar>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/syntex_pos-0.42.0/src/lib.rs:357:50
[INFO] [stdout]     |
[INFO] [stdout] 276 | pub struct MultiByteChar {
[INFO] [stdout]     | ------------------------ doesn't satisfy `MultiByteChar: Encodable`
[INFO] [stdout] ...
[INFO] [stdout] 357 |                 (*self.multibyte_chars.borrow()).encode(s)
[INFO] [stdout]     |                                                  ^^^^^^ method cannot be called on `Vec<MultiByteChar>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `MultiByteChar: Encodable`
[INFO] [stdout]             which is required by `Vec<MultiByteChar>: Encodable`
[INFO] [stdout]             `MultiByteChar: Encodable`
[INFO] [stdout]             which is required by `[MultiByteChar]: Encodable`
[INFO] [stdout] note: the trait `Encodable` must be implemented
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rustc-serialize-0.3.25/src/serialize.rs:851:1
[INFO] [stdout]     |
[INFO] [stdout] 851 | pub trait Encodable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `MultiByteChar: Decodable` is not satisfied
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/syntex_pos-0.42.0/src/lib.rs:401:68
[INFO] [stdout]     |
[INFO] [stdout] 401 |                 try!(d.read_struct_field("multibyte_chars", 5, |d| Decodable::decode(d)));
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^^^^^^^^ the trait `Decodable` is not implemented for `MultiByteChar`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `Decodable`:
[INFO] [stdout]               ()
[INFO] [stdout]               (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
[INFO] [stdout]               (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
[INFO] [stdout]               (T10, T11)
[INFO] [stdout]               (T11,)
[INFO] [stdout]               (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
[INFO] [stdout]               (T3, T4, T5, T6, T7, T8, T9, T10, T11)
[INFO] [stdout]               (T4, T5, T6, T7, T8, T9, T10, T11)
[INFO] [stdout]             and 74 others
[INFO] [stdout]     = note: required for `Vec<MultiByteChar>` to implement `Decodable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `syntex_pos` (lib) due to 6 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "0e93662893e55148ff5801042a82b7ffdf8a1c3d88fb42f4295679047f7c6374", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0e93662893e55148ff5801042a82b7ffdf8a1c3d88fb42f4295679047f7c6374", kill_on_drop: false }`
[INFO] [stdout] 0e93662893e55148ff5801042a82b7ffdf8a1c3d88fb42f4295679047f7c6374
