about summary refs log tree commit diff
path: root/src/test/ui
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2020-04-26 01:12:20 +0000
committerbors <bors@rust-lang.org>2020-04-26 01:12:20 +0000
commitb592b37fa31c0d81ca23fea9fe7998c3f0f4bd0b (patch)
tree065f6ab256a55a6cbc1826ddc1aa75ecbca043b4 /src/test/ui
parent0862458dad90a0d80827e22e3f86e33add6d847c (diff)
parentf70c9dba22df28b606ee413a82a3fe4305855620 (diff)
downloadrust-b592b37fa31c0d81ca23fea9fe7998c3f0f4bd0b.tar.gz
rust-b592b37fa31c0d81ca23fea9fe7998c3f0f4bd0b.zip
Auto merge of #71566 - Dylan-DPC:rollup-9xoz6fg, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #70043 (Add all remaining `DefKind`s.)
 - #71140 ([breaking change] Disallow statics initializing themselves)
 - #71392 (Don't hold the predecessor cache lock longer than necessary)
 - #71541 (Add regression test for #26376)
 - #71554 (Replace thread_local with generator resume arguments in box_region.)

Failed merges:

r? @ghost
Diffstat (limited to 'src/test/ui')
-rw-r--r--src/test/ui/associated-const/associated-const-dead-code.rs2
-rw-r--r--src/test/ui/associated-const/associated-const-dead-code.stderr2
-rw-r--r--src/test/ui/consts/recursive-zst-static.rs8
-rw-r--r--src/test/ui/consts/recursive-zst-static.stderr21
-rw-r--r--src/test/ui/issues/issue-17718-const-naming.rs2
-rw-r--r--src/test/ui/issues/issue-17718-const-naming.stderr2
-rw-r--r--src/test/ui/lint/dead-code/lint-dead-code-1.rs4
-rw-r--r--src/test/ui/lint/dead-code/lint-dead-code-1.stderr4
-rw-r--r--src/test/ui/lint/dead-code/lint-dead-code-3.rs4
-rw-r--r--src/test/ui/lint/dead-code/lint-dead-code-3.stderr4
-rw-r--r--src/test/ui/stability-attribute/missing-stability-attr-at-top-level.rs2
-rw-r--r--src/test/ui/stability-attribute/missing-stability-attr-at-top-level.stderr2
-rw-r--r--src/test/ui/unsized/return-unsized-from-trait-method.rs16
-rw-r--r--src/test/ui/unsized/return-unsized-from-trait-method.stderr9
14 files changed, 66 insertions, 16 deletions
diff --git a/src/test/ui/associated-const/associated-const-dead-code.rs b/src/test/ui/associated-const/associated-const-dead-code.rs
index c47e474d2dd..e659bdb83f9 100644
--- a/src/test/ui/associated-const/associated-const-dead-code.rs
+++ b/src/test/ui/associated-const/associated-const-dead-code.rs
@@ -4,7 +4,7 @@ struct MyFoo;
 
 impl MyFoo {
     const BAR: u32 = 1;
-    //~^ ERROR associated const is never used: `BAR`
+    //~^ ERROR associated constant is never used: `BAR`
 }
 
 fn main() {
diff --git a/src/test/ui/associated-const/associated-const-dead-code.stderr b/src/test/ui/associated-const/associated-const-dead-code.stderr
index 172aed733fc..9b6bbb68a71 100644
--- a/src/test/ui/associated-const/associated-const-dead-code.stderr
+++ b/src/test/ui/associated-const/associated-const-dead-code.stderr
@@ -1,4 +1,4 @@
-error: associated const is never used: `BAR`
+error: associated constant is never used: `BAR`
   --> $DIR/associated-const-dead-code.rs:6:5
    |
 LL |     const BAR: u32 = 1;
diff --git a/src/test/ui/consts/recursive-zst-static.rs b/src/test/ui/consts/recursive-zst-static.rs
index df7562bd9f5..768df58e1e3 100644
--- a/src/test/ui/consts/recursive-zst-static.rs
+++ b/src/test/ui/consts/recursive-zst-static.rs
@@ -1,6 +1,10 @@
-// build-pass
+// This test ensures that we do not allow ZST statics to initialize themselves without ever
+// actually creating a value of that type. This is important, as the ZST may have private fields
+// that users can reasonably expect to only get initialized by their own code. Thus unsafe code
+// can depend on this fact and will thus do unsound things when it is violated.
+// See https://github.com/rust-lang/rust/issues/71078 for more details.
 
-static FOO: () = FOO;
+static FOO: () = FOO; //~ cycle detected when const-evaluating `FOO`
 
 fn main() {
     FOO
diff --git a/src/test/ui/consts/recursive-zst-static.stderr b/src/test/ui/consts/recursive-zst-static.stderr
new file mode 100644
index 00000000000..e21dcf691ab
--- /dev/null
+++ b/src/test/ui/consts/recursive-zst-static.stderr
@@ -0,0 +1,21 @@
+error[E0391]: cycle detected when const-evaluating `FOO`
+  --> $DIR/recursive-zst-static.rs:7:18
+   |
+LL | static FOO: () = FOO;
+   |                  ^^^
+   |
+note: ...which requires const-evaluating `FOO`...
+  --> $DIR/recursive-zst-static.rs:7:1
+   |
+LL | static FOO: () = FOO;
+   | ^^^^^^^^^^^^^^^^^^^^^
+   = note: ...which again requires const-evaluating `FOO`, completing the cycle
+note: cycle used when const-evaluating + checking `FOO`
+  --> $DIR/recursive-zst-static.rs:7:1
+   |
+LL | static FOO: () = FOO;
+   | ^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0391`.
diff --git a/src/test/ui/issues/issue-17718-const-naming.rs b/src/test/ui/issues/issue-17718-const-naming.rs
index d30b95843f3..7386478f9f0 100644
--- a/src/test/ui/issues/issue-17718-const-naming.rs
+++ b/src/test/ui/issues/issue-17718-const-naming.rs
@@ -3,6 +3,6 @@
 
 const foo: isize = 3;
 //~^ ERROR: should have an upper case name
-//~^^ ERROR: constant item is never used
+//~^^ ERROR: constant is never used
 
 fn main() {}
diff --git a/src/test/ui/issues/issue-17718-const-naming.stderr b/src/test/ui/issues/issue-17718-const-naming.stderr
index 4c0aa0553eb..ce4ebcb5e3e 100644
--- a/src/test/ui/issues/issue-17718-const-naming.stderr
+++ b/src/test/ui/issues/issue-17718-const-naming.stderr
@@ -1,4 +1,4 @@
-error: constant item is never used: `foo`
+error: constant is never used: `foo`
   --> $DIR/issue-17718-const-naming.rs:4:1
    |
 LL | const foo: isize = 3;
diff --git a/src/test/ui/lint/dead-code/lint-dead-code-1.rs b/src/test/ui/lint/dead-code/lint-dead-code-1.rs
index 09977f8df51..896147fcc77 100644
--- a/src/test/ui/lint/dead-code/lint-dead-code-1.rs
+++ b/src/test/ui/lint/dead-code/lint-dead-code-1.rs
@@ -17,14 +17,14 @@ mod foo2 {
 }
 
 pub static pub_static: isize = 0;
-static priv_static: isize = 0; //~ ERROR: static item is never used
+static priv_static: isize = 0; //~ ERROR: static is never used
 const used_static: isize = 0;
 pub static used_static2: isize = used_static;
 const USED_STATIC: isize = 0;
 const STATIC_USED_IN_ENUM_DISCRIMINANT: isize = 10;
 
 pub const pub_const: isize = 0;
-const priv_const: isize = 0; //~ ERROR: constant item is never used
+const priv_const: isize = 0; //~ ERROR: constant is never used
 const used_const: isize = 0;
 pub const used_const2: isize = used_const;
 const USED_CONST: isize = 1;
diff --git a/src/test/ui/lint/dead-code/lint-dead-code-1.stderr b/src/test/ui/lint/dead-code/lint-dead-code-1.stderr
index 0a08aa6da9a..af97ea98b2b 100644
--- a/src/test/ui/lint/dead-code/lint-dead-code-1.stderr
+++ b/src/test/ui/lint/dead-code/lint-dead-code-1.stderr
@@ -10,13 +10,13 @@ note: the lint level is defined here
 LL | #![deny(dead_code)]
    |         ^^^^^^^^^
 
-error: static item is never used: `priv_static`
+error: static is never used: `priv_static`
   --> $DIR/lint-dead-code-1.rs:20:1
    |
 LL | static priv_static: isize = 0;
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-error: constant item is never used: `priv_const`
+error: constant is never used: `priv_const`
   --> $DIR/lint-dead-code-1.rs:27:1
    |
 LL | const priv_const: isize = 0;
diff --git a/src/test/ui/lint/dead-code/lint-dead-code-3.rs b/src/test/ui/lint/dead-code/lint-dead-code-3.rs
index 4397522f3f3..6826d2cd67e 100644
--- a/src/test/ui/lint/dead-code/lint-dead-code-3.rs
+++ b/src/test/ui/lint/dead-code/lint-dead-code-3.rs
@@ -12,7 +12,7 @@ extern {
 
 struct Foo; //~ ERROR: struct is never constructed
 impl Foo {
-    fn foo(&self) { //~ ERROR: method is never used
+    fn foo(&self) { //~ ERROR: associated function is never used
         bar()
     }
 }
@@ -58,7 +58,7 @@ mod blah {
 
 enum c_void {} //~ ERROR: enum is never used
 extern {
-    fn free(p: *const c_void); //~ ERROR: foreign function is never used
+    fn free(p: *const c_void); //~ ERROR: function is never used
 }
 
 // Check provided method
diff --git a/src/test/ui/lint/dead-code/lint-dead-code-3.stderr b/src/test/ui/lint/dead-code/lint-dead-code-3.stderr
index aab25c481e6..a2614a0bf74 100644
--- a/src/test/ui/lint/dead-code/lint-dead-code-3.stderr
+++ b/src/test/ui/lint/dead-code/lint-dead-code-3.stderr
@@ -10,7 +10,7 @@ note: the lint level is defined here
 LL | #![deny(dead_code)]
    |         ^^^^^^^^^
 
-error: method is never used: `foo`
+error: associated function is never used: `foo`
   --> $DIR/lint-dead-code-3.rs:15:5
    |
 LL |     fn foo(&self) {
@@ -28,7 +28,7 @@ error: enum is never used: `c_void`
 LL | enum c_void {}
    |      ^^^^^^
 
-error: foreign function is never used: `free`
+error: function is never used: `free`
   --> $DIR/lint-dead-code-3.rs:61:5
    |
 LL |     fn free(p: *const c_void);
diff --git a/src/test/ui/stability-attribute/missing-stability-attr-at-top-level.rs b/src/test/ui/stability-attribute/missing-stability-attr-at-top-level.rs
index 8f750ae62f5..38faa246916 100644
--- a/src/test/ui/stability-attribute/missing-stability-attr-at-top-level.rs
+++ b/src/test/ui/stability-attribute/missing-stability-attr-at-top-level.rs
@@ -1,4 +1,4 @@
 #![feature(staged_api)]
-//~^ ERROR crate has missing stability attribute
+//~^ ERROR module has missing stability attribute
 
 fn main() {}
diff --git a/src/test/ui/stability-attribute/missing-stability-attr-at-top-level.stderr b/src/test/ui/stability-attribute/missing-stability-attr-at-top-level.stderr
index b6c9564e904..c7ade234d3d 100644
--- a/src/test/ui/stability-attribute/missing-stability-attr-at-top-level.stderr
+++ b/src/test/ui/stability-attribute/missing-stability-attr-at-top-level.stderr
@@ -1,4 +1,4 @@
-error: crate has missing stability attribute
+error: module has missing stability attribute
   --> $DIR/missing-stability-attr-at-top-level.rs:1:1
    |
 LL | / #![feature(staged_api)]
diff --git a/src/test/ui/unsized/return-unsized-from-trait-method.rs b/src/test/ui/unsized/return-unsized-from-trait-method.rs
new file mode 100644
index 00000000000..2d265d5db5c
--- /dev/null
+++ b/src/test/ui/unsized/return-unsized-from-trait-method.rs
@@ -0,0 +1,16 @@
+// ignore-tidy-linelength
+
+// regression test for #26376
+
+trait Foo {
+    fn foo(&self) -> [u8];
+}
+
+fn foo(f: Option<&dyn Foo>) {
+    if let Some(f) = f {
+        let _ = f.foo();
+        //~^ ERROR cannot move a value of type [u8]: the size of [u8] cannot be statically determined
+    }
+}
+
+fn main() { foo(None) }
diff --git a/src/test/ui/unsized/return-unsized-from-trait-method.stderr b/src/test/ui/unsized/return-unsized-from-trait-method.stderr
new file mode 100644
index 00000000000..7ecdd286166
--- /dev/null
+++ b/src/test/ui/unsized/return-unsized-from-trait-method.stderr
@@ -0,0 +1,9 @@
+error[E0161]: cannot move a value of type [u8]: the size of [u8] cannot be statically determined
+  --> $DIR/return-unsized-from-trait-method.rs:11:17
+   |
+LL |         let _ = f.foo();
+   |                 ^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0161`.