diff options
| author | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2020-09-27 00:00:00 +0000 |
|---|---|---|
| committer | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2020-09-27 23:55:53 +0200 |
| commit | 063d5e9d8bdf9f0b26817265ca90e246bb20e379 (patch) | |
| tree | 37560ca69ad0d788d71092cd194106b2ac3c64de | |
| parent | 33dde94d33f4200f1931d3ad0a28d798f807f27c (diff) | |
| download | rust-063d5e9d8bdf9f0b26817265ca90e246bb20e379.tar.gz rust-063d5e9d8bdf9f0b26817265ca90e246bb20e379.zip | |
liveness: Test interaction with automatically_derived attribute
| -rw-r--r-- | src/test/ui/liveness/liveness-derive.rs | 38 | ||||
| -rw-r--r-- | src/test/ui/liveness/liveness-derive.stderr | 15 |
2 files changed, 53 insertions, 0 deletions
diff --git a/src/test/ui/liveness/liveness-derive.rs b/src/test/ui/liveness/liveness-derive.rs new file mode 100644 index 00000000000..66d0b7090ff --- /dev/null +++ b/src/test/ui/liveness/liveness-derive.rs @@ -0,0 +1,38 @@ +// Test for interaction between #[automatically_derived] attribute used by +// built-in derives and lints generated by liveness pass. +// +// edition:2018 +// check-pass +#![warn(unused)] + +pub trait T: Sized { + const N: usize; + fn t(&self) -> Self; +} + +impl T for u32 { + const N: usize = { + let a = 0; // FIXME should warn about unused variable + 4 + }; + + fn t(&self) -> Self { + let b = 16; //~ WARN unused variable: `b` + 0 + } +} + +#[automatically_derived] +impl T for i32 { + const N: usize = { + let c = 0; + 4 + }; + + fn t(&self) -> Self { + let d = 17; + 0 + } +} + +fn main() {} diff --git a/src/test/ui/liveness/liveness-derive.stderr b/src/test/ui/liveness/liveness-derive.stderr new file mode 100644 index 00000000000..d4f45a0a313 --- /dev/null +++ b/src/test/ui/liveness/liveness-derive.stderr @@ -0,0 +1,15 @@ +warning: unused variable: `b` + --> $DIR/liveness-derive.rs:20:13 + | +LL | let b = 16; + | ^ help: if this is intentional, prefix it with an underscore: `_b` + | +note: the lint level is defined here + --> $DIR/liveness-derive.rs:6:9 + | +LL | #![warn(unused)] + | ^^^^^^ + = note: `#[warn(unused_variables)]` implied by `#[warn(unused)]` + +warning: 1 warning emitted + |
