Ignore dead_code warnings for tuple structs in tests

We use Box to be able to catch memory leaks using miri/valgrind.

```
error: field `0` is never read
  --> tests/join.rs:29:24
   |
29 |             struct Fut(Box<i32>);
   |                    --- ^^^^^^^^
   |                    |
   |                    field in this struct
...
99 |     future!(f, POLL, DROP_F, DROP_T);
   |     -------------------------------- in this macro invocation
   |
   = note: `-D dead-code` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(dead_code)]`
   = note: this error originates in the macro `future` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
   |
29 |             struct Fut(());
   |                        ~~

error: field `0` is never read
  --> tests/join.rs:47:24
   |
47 |             struct Out(Box<i32>, bool);
   |                    --- ^^^^^^^^
   |                    |
   |                    field in this struct
...
99 |     future!(f, POLL, DROP_F, DROP_T);
   |     -------------------------------- in this macro invocation
   |
   = note: this error originates in the macro `future` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
   |
47 |             struct Out((), bool);
   |                        ~~

error: field `0` is never read
   --> tests/join.rs:75:26
    |
75  |             struct Guard(Box<i32>);
    |                    ----- ^^^^^^^^
    |                    |
    |                    field in this struct
...
100 |     schedule!(s, SCHEDULE, DROP_S);
    |     ------------------------------ in this macro invocation
    |
    = note: this error originates in the macro `schedule` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
75  |             struct Guard(());
    |                          ~~

error: field `0` is never read
   --> tests/join.rs:29:24
    |
29  |             struct Fut(Box<i32>);
    |                    --- ^^^^^^^^
    |                    |
    |                    field in this struct
...
118 |     future!(f, POLL, DROP_F, DROP_T);
    |     -------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `future` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
29  |             struct Fut(());
    |                        ~~

error: field `0` is never read
   --> tests/join.rs:47:24
    |
47  |             struct Out(Box<i32>, bool);
    |                    --- ^^^^^^^^
    |                    |
    |                    field in this struct
...
118 |     future!(f, POLL, DROP_F, DROP_T);
    |     -------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `future` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
47  |             struct Out((), bool);
    |                        ~~

error: field `0` is never read
   --> tests/join.rs:75:26
    |
75  |             struct Guard(Box<i32>);
    |                    ----- ^^^^^^^^
    |                    |
    |                    field in this struct
...
119 |     schedule!(s, SCHEDULE, DROP_S);
    |     ------------------------------ in this macro invocation
    |
    = note: this error originates in the macro `schedule` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
75  |             struct Guard(());
    |                          ~~

error: field `0` is never read
   --> tests/join.rs:29:24
    |
29  |             struct Fut(Box<i32>);
    |                    --- ^^^^^^^^
    |                    |
    |                    field in this struct
...
137 |     future!(f, POLL, DROP_F, DROP_T);
    |     -------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `future` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
29  |             struct Fut(());
    |                        ~~

error: field `0` is never read
   --> tests/join.rs:47:24
    |
47  |             struct Out(Box<i32>, bool);
    |                    --- ^^^^^^^^
    |                    |
    |                    field in this struct
...
137 |     future!(f, POLL, DROP_F, DROP_T);
    |     -------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `future` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
47  |             struct Out((), bool);
    |                        ~~

error: field `0` is never read
   --> tests/join.rs:75:26
    |
75  |             struct Guard(Box<i32>);
    |                    ----- ^^^^^^^^
    |                    |
    |                    field in this struct
...
138 |     schedule!(s, SCHEDULE, DROP_S);
    |     ------------------------------ in this macro invocation
    |
    = note: this error originates in the macro `schedule` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
75  |             struct Guard(());
    |                          ~~

error: field `0` is never read
   --> tests/join.rs:29:24
    |
29  |             struct Fut(Box<i32>);
    |                    --- ^^^^^^^^
    |                    |
    |                    field in this struct
...
156 |     future!(f, POLL, DROP_F, DROP_T);
    |     -------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `future` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
29  |             struct Fut(());
    |                        ~~

error: field `0` is never read
   --> tests/join.rs:47:24
    |
47  |             struct Out(Box<i32>, bool);
    |                    --- ^^^^^^^^
    |                    |
    |                    field in this struct
...
156 |     future!(f, POLL, DROP_F, DROP_T);
    |     -------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `future` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
47  |             struct Out((), bool);
    |                        ~~

error: field `0` is never read
   --> tests/join.rs:75:26
    |
75  |             struct Guard(Box<i32>);
    |                    ----- ^^^^^^^^
    |                    |
    |                    field in this struct
...
157 |     schedule!(s, SCHEDULE, DROP_S);
    |     ------------------------------ in this macro invocation
    |
    = note: this error originates in the macro `schedule` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
75  |             struct Guard(());
    |                          ~~

error: field `0` is never read
   --> tests/join.rs:29:24
    |
29  |             struct Fut(Box<i32>);
    |                    --- ^^^^^^^^
    |                    |
    |                    field in this struct
...
185 |     future!(f, POLL, DROP_F, DROP_T);
    |     -------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `future` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
29  |             struct Fut(());
    |                        ~~

error: field `0` is never read
   --> tests/join.rs:47:24
    |
47  |             struct Out(Box<i32>, bool);
    |                    --- ^^^^^^^^
    |                    |
    |                    field in this struct
...
185 |     future!(f, POLL, DROP_F, DROP_T);
    |     -------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `future` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
47  |             struct Out((), bool);
    |                        ~~

error: field `0` is never read
   --> tests/join.rs:75:26
    |
75  |             struct Guard(Box<i32>);
    |                    ----- ^^^^^^^^
    |                    |
    |                    field in this struct
...
186 |     schedule!(s, SCHEDULE, DROP_S);
    |     ------------------------------ in this macro invocation
    |
    = note: this error originates in the macro `schedule` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
75  |             struct Guard(());
    |                          ~~

error: field `0` is never read
   --> tests/join.rs:29:24
    |
29  |             struct Fut(Box<i32>);
    |                    --- ^^^^^^^^
    |                    |
    |                    field in this struct
...
216 |     future!(f, POLL, DROP_F, DROP_T);
    |     -------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `future` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
29  |             struct Fut(());
    |                        ~~

error: field `0` is never read
   --> tests/join.rs:47:24
    |
47  |             struct Out(Box<i32>, bool);
    |                    --- ^^^^^^^^
    |                    |
    |                    field in this struct
...
216 |     future!(f, POLL, DROP_F, DROP_T);
    |     -------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `future` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
47  |             struct Out((), bool);
    |                        ~~

error: field `0` is never read
   --> tests/join.rs:75:26
    |
75  |             struct Guard(Box<i32>);
    |                    ----- ^^^^^^^^
    |                    |
    |                    field in this struct
...
217 |     schedule!(s, SCHEDULE, DROP_S);
    |     ------------------------------ in this macro invocation
    |
    = note: this error originates in the macro `schedule` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
75  |             struct Guard(());
    |                          ~~

error: field `0` is never read
   --> tests/join.rs:29:24
    |
29  |             struct Fut(Box<i32>);
    |                    --- ^^^^^^^^
    |                    |
    |                    field in this struct
...
247 |     future!(f, POLL, DROP_F, DROP_T);
    |     -------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `future` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
29  |             struct Fut(());
    |                        ~~

error: field `0` is never read
   --> tests/join.rs:47:24
    |
47  |             struct Out(Box<i32>, bool);
    |                    --- ^^^^^^^^
    |                    |
    |                    field in this struct
...
247 |     future!(f, POLL, DROP_F, DROP_T);
    |     -------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `future` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
47  |             struct Out((), bool);
    |                        ~~

error: field `0` is never read
   --> tests/join.rs:75:26
    |
75  |             struct Guard(Box<i32>);
    |                    ----- ^^^^^^^^
    |                    |
    |                    field in this struct
...
248 |     schedule!(s, SCHEDULE, DROP_S);
    |     ------------------------------ in this macro invocation
    |
    = note: this error originates in the macro `schedule` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
75  |             struct Guard(());
    |                          ~~

error: field `0` is never read
   --> tests/join.rs:29:24
    |
29  |             struct Fut(Box<i32>);
    |                    --- ^^^^^^^^
    |                    |
    |                    field in this struct
...
285 |     future!(f, POLL, DROP_F, DROP_T);
    |     -------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `future` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
29  |             struct Fut(());
    |                        ~~

error: field `0` is never read
   --> tests/join.rs:47:24
    |
47  |             struct Out(Box<i32>, bool);
    |                    --- ^^^^^^^^
    |                    |
    |                    field in this struct
...
285 |     future!(f, POLL, DROP_F, DROP_T);
    |     -------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `future` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
47  |             struct Out((), bool);
    |                        ~~

error: field `0` is never read
   --> tests/join.rs:75:26
    |
75  |             struct Guard(Box<i32>);
    |                    ----- ^^^^^^^^
    |                    |
    |                    field in this struct
...
286 |     schedule!(s, SCHEDULE, DROP_S);
    |     ------------------------------ in this macro invocation
    |
    = note: this error originates in the macro `schedule` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
75  |             struct Guard(());
    |                          ~~

error: field `0` is never read
   --> tests/join.rs:29:24
    |
29  |             struct Fut(Box<i32>);
    |                    --- ^^^^^^^^
    |                    |
    |                    field in this struct
...
319 |     future!(f, POLL, DROP_F, DROP_T);
    |     -------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `future` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
29  |             struct Fut(());
    |                        ~~

error: field `0` is never read
   --> tests/join.rs:47:24
    |
47  |             struct Out(Box<i32>, bool);
    |                    --- ^^^^^^^^
    |                    |
    |                    field in this struct
...
319 |     future!(f, POLL, DROP_F, DROP_T);
    |     -------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `future` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
47  |             struct Out((), bool);
    |                        ~~

error: field `0` is never read
   --> tests/join.rs:75:26
    |
75  |             struct Guard(Box<i32>);
    |                    ----- ^^^^^^^^
    |                    |
    |                    field in this struct
...
320 |     schedule!(s, SCHEDULE, DROP_S);
    |     ------------------------------ in this macro invocation
    |
    = note: this error originates in the macro `schedule` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
75  |             struct Guard(());
    |                          ~~
```
This commit is contained in:
Taiki Endo 2024-01-07 13:09:58 +09:00
parent 8f2c088750
commit b5f4978f54
8 changed files with 19 additions and 19 deletions

View File

@ -21,7 +21,7 @@ macro_rules! future {
static $drop: AtomicUsize = AtomicUsize::new(0);
let $name = {
struct Fut(Box<i32>);
struct Fut(#[allow(dead_code)] Box<i32>);
impl Future for Fut {
type Output = Box<i32>;
@ -56,7 +56,7 @@ macro_rules! schedule {
static $sched: AtomicUsize = AtomicUsize::new(0);
let $name = {
struct Guard(Box<i32>);
struct Guard(#[allow(dead_code)] Box<i32>);
impl Drop for Guard {
fn drop(&mut self) {

View File

@ -24,7 +24,7 @@ macro_rules! future {
static $drop_t: AtomicUsize = AtomicUsize::new(0);
let $name = {
struct Fut(Box<i32>);
struct Fut(#[allow(dead_code)] Box<i32>);
impl Future for Fut {
type Output = Out;
@ -43,7 +43,7 @@ macro_rules! future {
}
#[derive(Default)]
struct Out(Box<i32>, bool);
struct Out(#[allow(dead_code)] Box<i32>, bool);
impl Drop for Out {
fn drop(&mut self) {
@ -71,7 +71,7 @@ macro_rules! schedule {
static $sched: AtomicUsize = AtomicUsize::new(0);
let $name = {
struct Guard(Box<i32>);
struct Guard(#[allow(dead_code)] Box<i32>);
impl Drop for Guard {
fn drop(&mut self) {

View File

@ -26,7 +26,7 @@ macro_rules! future {
static $drop_t: AtomicUsize = AtomicUsize::new(0);
let $name = {
struct Fut(Box<i32>);
struct Fut(#[allow(dead_code)] Box<i32>);
impl Future for Fut {
type Output = Out;
@ -44,7 +44,7 @@ macro_rules! future {
}
#[derive(Default)]
struct Out(Box<i32>, bool);
struct Out(#[allow(dead_code)] Box<i32>, bool);
impl Drop for Out {
fn drop(&mut self) {
@ -72,7 +72,7 @@ macro_rules! schedule {
static $sched: AtomicUsize = AtomicUsize::new(0);
let $name = {
struct Guard(Box<i32>);
struct Guard(#[allow(dead_code)] Box<i32>);
impl Drop for Guard {
fn drop(&mut self) {

View File

@ -23,7 +23,7 @@ macro_rules! future {
static $drop: AtomicUsize = AtomicUsize::new(0);
let $name = {
struct Fut(Box<i32>);
struct Fut(#[allow(dead_code)] Box<i32>);
impl Future for Fut {
type Output = ();
@ -59,7 +59,7 @@ macro_rules! schedule {
static $sched: AtomicUsize = AtomicUsize::new(0);
let $name = {
struct Guard(Box<i32>);
struct Guard(#[allow(dead_code)] Box<i32>);
impl Drop for Guard {
fn drop(&mut self) {

View File

@ -24,7 +24,7 @@ macro_rules! future {
static $drop_t: AtomicUsize = AtomicUsize::new(0);
let $name = {
struct Fut(Box<i32>);
struct Fut(#[allow(dead_code)] Box<i32>);
impl Future for Fut {
type Output = Out;
@ -43,7 +43,7 @@ macro_rules! future {
}
#[derive(Default)]
struct Out(Box<i32>, bool);
struct Out(#[allow(dead_code)] Box<i32>, bool);
impl Drop for Out {
fn drop(&mut self) {
@ -71,7 +71,7 @@ macro_rules! schedule {
static $sched: AtomicUsize = AtomicUsize::new(0);
let $name = {
struct Guard(Box<i32>);
struct Guard(#[allow(dead_code)] Box<i32>);
impl Drop for Guard {
fn drop(&mut self) {

View File

@ -29,7 +29,7 @@ macro_rules! future {
static WAKER: AtomicWaker = AtomicWaker::new();
let ($name, $get_waker) = {
struct Fut(Cell<bool>, Box<i32>);
struct Fut(Cell<bool>, #[allow(dead_code)] Box<i32>);
impl Future for Fut {
type Output = ();
@ -76,7 +76,7 @@ macro_rules! schedule {
let ($name, $chan) = {
let (s, r) = flume::unbounded();
struct Guard(Box<i32>);
struct Guard(#[allow(dead_code)] Box<i32>);
impl Drop for Guard {
fn drop(&mut self) {

View File

@ -26,7 +26,7 @@ macro_rules! future {
static WAKER: AtomicWaker = AtomicWaker::new();
let ($name, $get_waker) = {
struct Fut(Box<i32>);
struct Fut(#[allow(dead_code)] Box<i32>);
impl Future for Fut {
type Output = ();
@ -67,7 +67,7 @@ macro_rules! schedule {
let ($name, $chan) = {
let (s, r) = flume::unbounded();
struct Guard(Box<i32>);
struct Guard(#[allow(dead_code)] Box<i32>);
impl Drop for Guard {
fn drop(&mut self) {

View File

@ -26,7 +26,7 @@ macro_rules! future {
static WAKER: AtomicWaker = AtomicWaker::new();
let ($name, $get_waker) = {
struct Fut(Cell<bool>, Box<i32>);
struct Fut(Cell<bool>, #[allow(dead_code)] Box<i32>);
impl Future for Fut {
type Output = Box<i32>;
@ -73,7 +73,7 @@ macro_rules! schedule {
let ($name, $chan) = {
let (s, r) = flume::unbounded();
struct Guard(Box<i32>);
struct Guard(#[allow(dead_code)] Box<i32>);
impl Drop for Guard {
fn drop(&mut self) {