about summary refs log tree commit diff
path: root/src/test/ui/polymorphization/const_parameters
diff options
context:
space:
mode:
authorDavid Wood <david@davidtw.co>2020-07-16 17:52:23 +0100
committerDavid Wood <david@davidtw.co>2020-07-20 19:35:35 +0100
commitb1f8bd635696644f86bdb5ea69fb69ec50bc6d9b (patch)
treef4c081257834b91b3eb89613bf3507adcf22585f /src/test/ui/polymorphization/const_parameters
parent5ce29d3d6f8994a1d9db9b9f8aa076001f7b8d07 (diff)
downloadrust-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')
-rw-r--r--src/test/ui/polymorphization/const_parameters/closures.rs17
-rw-r--r--src/test/ui/polymorphization/const_parameters/closures.stderr12
-rw-r--r--src/test/ui/polymorphization/const_parameters/functions.rs9
-rw-r--r--src/test/ui/polymorphization/const_parameters/functions.stderr6
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