diff options
| author | David Wood <david@davidtw.co> | 2020-07-16 17:52:23 +0100 |
|---|---|---|
| committer | David Wood <david@davidtw.co> | 2020-07-20 19:35:35 +0100 |
| commit | b1f8bd635696644f86bdb5ea69fb69ec50bc6d9b (patch) | |
| tree | f4c081257834b91b3eb89613bf3507adcf22585f /src/test/ui/polymorphization/const_parameters | |
| parent | 5ce29d3d6f8994a1d9db9b9f8aa076001f7b8d07 (diff) | |
| download | rust-b1f8bd635696644f86bdb5ea69fb69ec50bc6d9b.tar.gz rust-b1f8bd635696644f86bdb5ea69fb69ec50bc6d9b.zip | |
mir: use attribute over `-Z polymorphize-errors`
This commit replaces the `-Z polymorphize-errors` debugging flag with a `#[rustc_polymorphize_error]` attribute for use on functions. Signed-off-by: David Wood <david@davidtw.co>
Diffstat (limited to 'src/test/ui/polymorphization/const_parameters')
4 files changed, 26 insertions, 18 deletions
diff --git a/src/test/ui/polymorphization/const_parameters/closures.rs b/src/test/ui/polymorphization/const_parameters/closures.rs index da83cc1bee4..7bbcaebea01 100644 --- a/src/test/ui/polymorphization/const_parameters/closures.rs +++ b/src/test/ui/polymorphization/const_parameters/closures.rs @@ -1,33 +1,36 @@ // build-fail -// compile-flags: -Zpolymorphize-errors -#![feature(const_generics)] +#![feature(const_generics, rustc_attrs)] //~^ WARN the feature `const_generics` is incomplete // This test checks that the polymorphization analysis correctly detects unused const // parameters in closures. // Function doesn't have any generic parameters to be unused. +#[rustc_polymorphize_error] pub fn no_parameters() { let _ = || {}; } // Function has an unused generic parameter in parent and closure. +#[rustc_polymorphize_error] pub fn unused<const T: usize>() -> usize { -//~^ ERROR item has unused generic parameters + //~^ ERROR item has unused generic parameters let add_one = |x: usize| x + 1; -//~^ ERROR item has unused generic parameters + //~^ ERROR item has unused generic parameters add_one(3) } // Function has an unused generic parameter in closure, but not in parent. +#[rustc_polymorphize_error] pub fn used_parent<const T: usize>() -> usize { let x: usize = T; let add_one = |x: usize| x + 1; -//~^ ERROR item has unused generic parameters + //~^ ERROR item has unused generic parameters x + add_one(3) } // Function uses generic parameter in value of a binding in closure. +#[rustc_polymorphize_error] pub fn used_binding<const T: usize>() -> usize { let x = || { let y: usize = T; @@ -38,14 +41,16 @@ pub fn used_binding<const T: usize>() -> usize { } // Closure uses a value as an upvar, which used the generic parameter. +#[rustc_polymorphize_error] pub fn unused_upvar<const T: usize>() -> usize { let x: usize = T; let y = || x; -//~^ ERROR item has unused generic parameters + //~^ ERROR item has unused generic parameters y() } // Closure uses generic parameter in substitutions to another function. +#[rustc_polymorphize_error] pub fn used_substs<const T: usize>() -> usize { let x = || unused::<T>(); x() diff --git a/src/test/ui/polymorphization/const_parameters/closures.stderr b/src/test/ui/polymorphization/const_parameters/closures.stderr index 73a071f346a..eb872eac74c 100644 --- a/src/test/ui/polymorphization/const_parameters/closures.stderr +++ b/src/test/ui/polymorphization/const_parameters/closures.stderr @@ -1,14 +1,14 @@ warning: the feature `const_generics` is incomplete and may not be safe to use and/or cause compiler crashes - --> $DIR/closures.rs:3:12 + --> $DIR/closures.rs:2:12 | -LL | #![feature(const_generics)] +LL | #![feature(const_generics, rustc_attrs)] | ^^^^^^^^^^^^^^ | = note: `#[warn(incomplete_features)]` on by default = note: see issue #44580 <https://github.com/rust-lang/rust/issues/44580> for more information error: item has unused generic parameters - --> $DIR/closures.rs:17:19 + --> $DIR/closures.rs:18:19 | LL | pub fn unused<const T: usize>() -> usize { | - generic parameter `T` is unused @@ -17,13 +17,13 @@ LL | let add_one = |x: usize| x + 1; | ^^^^^^^^^^^^^^^^ error: item has unused generic parameters - --> $DIR/closures.rs:15:8 + --> $DIR/closures.rs:16:8 | LL | pub fn unused<const T: usize>() -> usize { | ^^^^^^ - generic parameter `T` is unused error: item has unused generic parameters - --> $DIR/closures.rs:25:19 + --> $DIR/closures.rs:27:19 | LL | pub fn used_parent<const T: usize>() -> usize { | - generic parameter `T` is unused @@ -32,7 +32,7 @@ LL | let add_one = |x: usize| x + 1; | ^^^^^^^^^^^^^^^^ error: item has unused generic parameters - --> $DIR/closures.rs:43:13 + --> $DIR/closures.rs:47:13 | LL | pub fn unused_upvar<const T: usize>() -> usize { | - generic parameter `T` is unused diff --git a/src/test/ui/polymorphization/const_parameters/functions.rs b/src/test/ui/polymorphization/const_parameters/functions.rs index 1c19f9480b4..77539b94e48 100644 --- a/src/test/ui/polymorphization/const_parameters/functions.rs +++ b/src/test/ui/polymorphization/const_parameters/functions.rs @@ -1,26 +1,29 @@ // build-fail -// compile-flags: -Zpolymorphize-errors -#![feature(const_generics)] +#![feature(const_generics, rustc_attrs)] //~^ WARN the feature `const_generics` is incomplete // This test checks that the polymorphization analysis correctly detects unused const // parameters in functions. // Function doesn't have any generic parameters to be unused. +#[rustc_polymorphize_error] pub fn no_parameters() {} // Function has an unused generic parameter. +#[rustc_polymorphize_error] pub fn unused<const T: usize>() { -//~^ ERROR item has unused generic parameters + //~^ ERROR item has unused generic parameters } // Function uses generic parameter in value of a binding. +#[rustc_polymorphize_error] pub fn used_binding<const T: usize>() -> usize { let x: usize = T; x } // Function uses generic parameter in substitutions to another function. +#[rustc_polymorphize_error] pub fn used_substs<const T: usize>() { unused::<T>() } diff --git a/src/test/ui/polymorphization/const_parameters/functions.stderr b/src/test/ui/polymorphization/const_parameters/functions.stderr index a503ec51942..c99a9b788eb 100644 --- a/src/test/ui/polymorphization/const_parameters/functions.stderr +++ b/src/test/ui/polymorphization/const_parameters/functions.stderr @@ -1,14 +1,14 @@ warning: the feature `const_generics` is incomplete and may not be safe to use and/or cause compiler crashes - --> $DIR/functions.rs:3:12 + --> $DIR/functions.rs:2:12 | -LL | #![feature(const_generics)] +LL | #![feature(const_generics, rustc_attrs)] | ^^^^^^^^^^^^^^ | = note: `#[warn(incomplete_features)]` on by default = note: see issue #44580 <https://github.com/rust-lang/rust/issues/44580> for more information error: item has unused generic parameters - --> $DIR/functions.rs:13:8 + --> $DIR/functions.rs:14:8 | LL | pub fn unused<const T: usize>() { | ^^^^^^ - generic parameter `T` is unused |
