about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAvi Dessauer <avi.the.coder@gmail.com>2020-06-25 15:53:47 -0400
committerJacob Hughes <j@jacobhughes.me>2020-09-22 21:54:13 -0400
commita1892f1a798f8b0c24136d0be65fa4cc23e0ff74 (patch)
treebca21c8dd0e01346df8c32e19ffb5558160fc7d2
parentf665ccd3a2f5e58c6ac3828e34f5c8e94f71811c (diff)
downloadrust-a1892f1a798f8b0c24136d0be65fa4cc23e0ff74.tar.gz
rust-a1892f1a798f8b0c24136d0be65fa4cc23e0ff74.zip
Test stability on default parameter of deprecated
-rw-r--r--src/test/ui/stability-attribute/auxiliary/unstable_generic_param.rs20
-rw-r--r--src/test/ui/stability-attribute/generics-default-stability.rs27
-rw-r--r--src/test/ui/stability-attribute/generics-default-stability.stderr124
3 files changed, 170 insertions, 1 deletions
diff --git a/src/test/ui/stability-attribute/auxiliary/unstable_generic_param.rs b/src/test/ui/stability-attribute/auxiliary/unstable_generic_param.rs
index c38fb92905b..64d725e55ed 100644
--- a/src/test/ui/stability-attribute/auxiliary/unstable_generic_param.rs
+++ b/src/test/ui/stability-attribute/auxiliary/unstable_generic_param.rs
@@ -41,6 +41,20 @@ pub struct Struct3<A = isize, #[unstable(feature = "unstable_default", issue = "
     pub field2: B,
 }
 
+#[rustc_deprecated(since = "1.1.0", reason = "test")]
+#[stable(feature = "stable_test_feature", since = "1.0.0")]
+pub struct Struct4<A = usize> {
+    #[stable(feature = "stable_test_feature", since = "1.0.0")]
+    pub field: A,
+}
+
+#[rustc_deprecated(since = "1.1.0", reason = "test")]
+#[stable(feature = "stable_test_feature", since = "1.0.0")]
+pub struct Struct5<#[unstable(feature = "unstable_default", issue = "none")] A = usize> {
+    #[stable(feature = "stable_test_feature", since = "1.0.0")]
+    pub field: A,
+}
+
 #[stable(feature = "stable_test_feature", since = "1.0.0")]
 pub const STRUCT1: Struct1 = Struct1 { field: 1 };
 
@@ -49,3 +63,9 @@ pub const STRUCT2: Struct2 = Struct2 { field: 1 };
 
 #[stable(feature = "stable_test_feature", since = "1.0.0")]
 pub const STRUCT3: Struct3 = Struct3 { field1: 1, field2: 2 };
+
+#[stable(feature = "stable_test_feature", since = "1.0.0")]
+pub const STRUCT4: Struct4 = Struct4 { field: 1 };
+
+#[stable(feature = "stable_test_feature", since = "1.0.0")]
+pub const STRUCT5: Struct5 = Struct5 { field: 1 };
diff --git a/src/test/ui/stability-attribute/generics-default-stability.rs b/src/test/ui/stability-attribute/generics-default-stability.rs
index 063058c0f53..de178eee1d7 100644
--- a/src/test/ui/stability-attribute/generics-default-stability.rs
+++ b/src/test/ui/stability-attribute/generics-default-stability.rs
@@ -76,4 +76,31 @@ fn main() {
     let _: Struct3<usize> = Struct3 { field1: 0, field2: 0 }; // ok
     let _ = STRUCT3.field2 + 1; // ok
     let _ = STRUCT3.field2 + 1usize; // ok
+
+    let _ = STRUCT4;
+    let _: Struct4<isize> = Struct4 { field: 1 };
+    //~^ use of deprecated item 'unstable_generic_param::Struct4': test [deprecated]
+    //~^^ use of deprecated item 'unstable_generic_param::Struct4': test [deprecated]
+    //~^^^ use of deprecated item 'unstable_generic_param::Struct4::field': test [deprecated]
+    let _ = STRUCT4;
+    let _: Struct4 = STRUCT4; //~ use of deprecated item 'unstable_generic_param::Struct4': test [deprecated]
+    let _: Struct4<usize> = STRUCT4; //~ use of deprecated item 'unstable_generic_param::Struct4': test [deprecated]
+    let _: Struct4<isize> = Struct4 { field: 0 };
+    //~^ use of deprecated item 'unstable_generic_param::Struct4': test [deprecated]
+    //~^^ use of deprecated item 'unstable_generic_param::Struct4': test [deprecated]
+    //~^^^ use of deprecated item 'unstable_generic_param::Struct4::field': test [deprecated]
+
+    let _ = STRUCT5;
+    let _: Struct5<isize> = Struct5 { field: 1 }; //~ ERROR use of unstable library feature 'unstable_default'
+    //~^ use of deprecated item 'unstable_generic_param::Struct5': test [deprecated]
+    //~^^ use of deprecated item 'unstable_generic_param::Struct5': test [deprecated]
+    //~^^^ use of deprecated item 'unstable_generic_param::Struct5::field': test [deprecated]
+    let _ = STRUCT5;
+    let _: Struct5 = STRUCT5; //~ use of deprecated item 'unstable_generic_param::Struct5': test [deprecated]
+    let _: Struct5<usize> = STRUCT5; //~ ERROR use of unstable library feature 'unstable_default'
+    //~^ use of deprecated item 'unstable_generic_param::Struct5': test [deprecated]
+    let _: Struct5<isize> = Struct5 { field: 0 }; //~ ERROR use of unstable library feature 'unstable_default'
+    //~^ use of deprecated item 'unstable_generic_param::Struct5': test [deprecated]
+    //~^^ use of deprecated item 'unstable_generic_param::Struct5': test [deprecated]
+    //~^^^ use of deprecated item 'unstable_generic_param::Struct5::field': test [deprecated]
 }
diff --git a/src/test/ui/stability-attribute/generics-default-stability.stderr b/src/test/ui/stability-attribute/generics-default-stability.stderr
index eadcd2641d0..2bc98cc0095 100644
--- a/src/test/ui/stability-attribute/generics-default-stability.stderr
+++ b/src/test/ui/stability-attribute/generics-default-stability.stderr
@@ -22,6 +22,80 @@ LL | impl Trait2<usize> for S {
    |
    = help: add `#![feature(unstable_default)]` to the crate attributes to enable
 
+warning: use of deprecated item 'unstable_generic_param::Struct4': test
+  --> $DIR/generics-default-stability.rs:81:29
+   |
+LL |     let _: Struct4<isize> = Struct4 { field: 1 };
+   |                             ^^^^^^^
+   |
+   = note: `#[warn(deprecated)]` on by default
+
+warning: use of deprecated item 'unstable_generic_param::Struct4': test
+  --> $DIR/generics-default-stability.rs:81:12
+   |
+LL |     let _: Struct4<isize> = Struct4 { field: 1 };
+   |            ^^^^^^^^^^^^^^
+
+warning: use of deprecated item 'unstable_generic_param::Struct4': test
+  --> $DIR/generics-default-stability.rs:86:12
+   |
+LL |     let _: Struct4 = STRUCT4;
+   |            ^^^^^^^
+
+warning: use of deprecated item 'unstable_generic_param::Struct4': test
+  --> $DIR/generics-default-stability.rs:87:12
+   |
+LL |     let _: Struct4<usize> = STRUCT4;
+   |            ^^^^^^^^^^^^^^
+
+warning: use of deprecated item 'unstable_generic_param::Struct4': test
+  --> $DIR/generics-default-stability.rs:88:29
+   |
+LL |     let _: Struct4<isize> = Struct4 { field: 0 };
+   |                             ^^^^^^^
+
+warning: use of deprecated item 'unstable_generic_param::Struct4': test
+  --> $DIR/generics-default-stability.rs:88:12
+   |
+LL |     let _: Struct4<isize> = Struct4 { field: 0 };
+   |            ^^^^^^^^^^^^^^
+
+warning: use of deprecated item 'unstable_generic_param::Struct5': test
+  --> $DIR/generics-default-stability.rs:94:29
+   |
+LL |     let _: Struct5<isize> = Struct5 { field: 1 };
+   |                             ^^^^^^^
+
+warning: use of deprecated item 'unstable_generic_param::Struct5': test
+  --> $DIR/generics-default-stability.rs:94:12
+   |
+LL |     let _: Struct5<isize> = Struct5 { field: 1 };
+   |            ^^^^^^^^^^^^^^
+
+warning: use of deprecated item 'unstable_generic_param::Struct5': test
+  --> $DIR/generics-default-stability.rs:99:12
+   |
+LL |     let _: Struct5 = STRUCT5;
+   |            ^^^^^^^
+
+warning: use of deprecated item 'unstable_generic_param::Struct5': test
+  --> $DIR/generics-default-stability.rs:100:12
+   |
+LL |     let _: Struct5<usize> = STRUCT5;
+   |            ^^^^^^^^^^^^^^
+
+warning: use of deprecated item 'unstable_generic_param::Struct5': test
+  --> $DIR/generics-default-stability.rs:102:29
+   |
+LL |     let _: Struct5<isize> = Struct5 { field: 0 };
+   |                             ^^^^^^^
+
+warning: use of deprecated item 'unstable_generic_param::Struct5': test
+  --> $DIR/generics-default-stability.rs:102:12
+   |
+LL |     let _: Struct5<isize> = Struct5 { field: 0 };
+   |            ^^^^^^^^^^^^^^
+
 error[E0658]: use of unstable library feature 'unstable_default'
   --> $DIR/generics-default-stability.rs:35:20
    |
@@ -70,6 +144,54 @@ LL |     let _: Struct3<usize, usize> = Struct3 { field1: 0, field2: 0 };
    |
    = help: add `#![feature(unstable_default)]` to the crate attributes to enable
 
-error: aborting due to 9 previous errors
+error[E0658]: use of unstable library feature 'unstable_default'
+  --> $DIR/generics-default-stability.rs:94:20
+   |
+LL |     let _: Struct5<isize> = Struct5 { field: 1 };
+   |                    ^^^^^
+   |
+   = help: add `#![feature(unstable_default)]` to the crate attributes to enable
+
+error[E0658]: use of unstable library feature 'unstable_default'
+  --> $DIR/generics-default-stability.rs:100:20
+   |
+LL |     let _: Struct5<usize> = STRUCT5;
+   |                    ^^^^^
+   |
+   = help: add `#![feature(unstable_default)]` to the crate attributes to enable
+
+error[E0658]: use of unstable library feature 'unstable_default'
+  --> $DIR/generics-default-stability.rs:102:20
+   |
+LL |     let _: Struct5<isize> = Struct5 { field: 0 };
+   |                    ^^^^^
+   |
+   = help: add `#![feature(unstable_default)]` to the crate attributes to enable
+
+warning: use of deprecated item 'unstable_generic_param::Struct4::field': test
+  --> $DIR/generics-default-stability.rs:81:39
+   |
+LL |     let _: Struct4<isize> = Struct4 { field: 1 };
+   |                                       ^^^^^^^^
+
+warning: use of deprecated item 'unstable_generic_param::Struct4::field': test
+  --> $DIR/generics-default-stability.rs:88:39
+   |
+LL |     let _: Struct4<isize> = Struct4 { field: 0 };
+   |                                       ^^^^^^^^
+
+warning: use of deprecated item 'unstable_generic_param::Struct5::field': test
+  --> $DIR/generics-default-stability.rs:94:39
+   |
+LL |     let _: Struct5<isize> = Struct5 { field: 1 };
+   |                                       ^^^^^^^^
+
+warning: use of deprecated item 'unstable_generic_param::Struct5::field': test
+  --> $DIR/generics-default-stability.rs:102:39
+   |
+LL |     let _: Struct5<isize> = Struct5 { field: 0 };
+   |                                       ^^^^^^^^
+
+error: aborting due to 12 previous errors; 16 warnings emitted
 
 For more information about this error, try `rustc --explain E0658`.