about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorYuki Okushi <huyuumi.dev@gmail.com>2020-03-14 04:03:34 +0900
committerGitHub <noreply@github.com>2020-03-14 04:03:34 +0900
commit93da9d7fe107c8a67b51f16f5bdac10e459fdeba (patch)
tree247ac73cfc61976658799bd702f7fa732abadcf2 /src
parentf2af2cff0fa16aaa277241f6a8c8dbd9c205c4a8 (diff)
parent7c987eb02091c01763c5fb688f093f8974e733b1 (diff)
downloadrust-93da9d7fe107c8a67b51f16f5bdac10e459fdeba.tar.gz
rust-93da9d7fe107c8a67b51f16f5bdac10e459fdeba.zip
Rollup merge of #69966 - JohnTitor:more-more-tests, r=Centril
Add more regression tests

Closes #58490, closes #60390, closes #62504, closes #67739, closes #69092

r? @Centril
Diffstat (limited to 'src')
-rw-r--r--src/test/ui/asm/issue-69092.rs10
-rw-r--r--src/test/ui/asm/issue-69092.stderr11
-rw-r--r--src/test/ui/const-generics/issues/issue-62504.rs25
-rw-r--r--src/test/ui/const-generics/issues/issue-62504.stderr8
-rw-r--r--src/test/ui/const-generics/issues/issue-67739.rs18
-rw-r--r--src/test/ui/const-generics/issues/issue-67739.stderr8
-rw-r--r--src/test/ui/macros/issue-58490.rs26
-rw-r--r--src/test/ui/macros/issue-58490.stderr14
-rw-r--r--src/test/ui/mir/issue-60390.rs8
9 files changed, 128 insertions, 0 deletions
diff --git a/src/test/ui/asm/issue-69092.rs b/src/test/ui/asm/issue-69092.rs
new file mode 100644
index 00000000000..caa5c2e0b9f
--- /dev/null
+++ b/src/test/ui/asm/issue-69092.rs
@@ -0,0 +1,10 @@
+// build-fail
+// ignore-emscripten no asm! support
+// Regression test for #69092
+
+#![feature(asm)]
+
+fn main() {
+    unsafe { asm!(".ascii \"Xen\0\""); }
+    //~^ ERROR: <inline asm>:1:9: error: expected string in '.ascii' directive
+}
diff --git a/src/test/ui/asm/issue-69092.stderr b/src/test/ui/asm/issue-69092.stderr
new file mode 100644
index 00000000000..5661097cb8b
--- /dev/null
+++ b/src/test/ui/asm/issue-69092.stderr
@@ -0,0 +1,11 @@
+error: <inline asm>:1:9: error: expected string in '.ascii' directive
+        .ascii "Xen
+               ^
+
+  --> $DIR/issue-69092.rs:8:14
+   |
+LL |     unsafe { asm!(".ascii \"Xen\0\""); }
+   |              ^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/const-generics/issues/issue-62504.rs b/src/test/ui/const-generics/issues/issue-62504.rs
new file mode 100644
index 00000000000..74ed3d354fc
--- /dev/null
+++ b/src/test/ui/const-generics/issues/issue-62504.rs
@@ -0,0 +1,25 @@
+// Regression test for #62504
+
+#![feature(const_generics)]
+#![allow(incomplete_features)]
+
+trait HasSize {
+    const SIZE: usize;
+}
+
+impl<const X: usize> HasSize for ArrayHolder<{ X }> {
+    const SIZE: usize = X;
+}
+
+struct ArrayHolder<const X: usize>([u32; X]);
+
+impl<const X: usize> ArrayHolder<{ X }> {
+    pub const fn new() -> Self {
+        ArrayHolder([0; Self::SIZE])
+        //~^ ERROR: array lengths can't depend on generic parameters
+    }
+}
+
+fn main() {
+    let mut array = ArrayHolder::new();
+}
diff --git a/src/test/ui/const-generics/issues/issue-62504.stderr b/src/test/ui/const-generics/issues/issue-62504.stderr
new file mode 100644
index 00000000000..c2a752ec171
--- /dev/null
+++ b/src/test/ui/const-generics/issues/issue-62504.stderr
@@ -0,0 +1,8 @@
+error: array lengths can't depend on generic parameters
+  --> $DIR/issue-62504.rs:18:25
+   |
+LL |         ArrayHolder([0; Self::SIZE])
+   |                         ^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/const-generics/issues/issue-67739.rs b/src/test/ui/const-generics/issues/issue-67739.rs
new file mode 100644
index 00000000000..79c5ac9dd18
--- /dev/null
+++ b/src/test/ui/const-generics/issues/issue-67739.rs
@@ -0,0 +1,18 @@
+// Regression test for #67739
+
+#![allow(incomplete_features)]
+#![feature(const_generics)]
+
+use std::mem;
+
+pub trait Trait {
+    type Associated: Sized;
+
+    fn associated_size(&self) -> usize {
+        [0u8; mem::size_of::<Self::Associated>()];
+        //~^ ERROR: array lengths can't depend on generic parameters
+        0
+    }
+}
+
+fn main() {}
diff --git a/src/test/ui/const-generics/issues/issue-67739.stderr b/src/test/ui/const-generics/issues/issue-67739.stderr
new file mode 100644
index 00000000000..a31b556c086
--- /dev/null
+++ b/src/test/ui/const-generics/issues/issue-67739.stderr
@@ -0,0 +1,8 @@
+error: array lengths can't depend on generic parameters
+  --> $DIR/issue-67739.rs:12:15
+   |
+LL |         [0u8; mem::size_of::<Self::Associated>()];
+   |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/macros/issue-58490.rs b/src/test/ui/macros/issue-58490.rs
new file mode 100644
index 00000000000..97e71c9a1ce
--- /dev/null
+++ b/src/test/ui/macros/issue-58490.rs
@@ -0,0 +1,26 @@
+// Regression test for #58490
+
+macro_rules! a {
+    ( @1 $i:item ) => {
+        a! { @2 $i }
+    };
+    ( @2 $i:item ) => {
+        $i
+    };
+}
+mod b {
+    a! {
+        @1
+        #[macro_export]
+        macro_rules! b { () => () }
+    }
+    #[macro_export]
+    macro_rules! b { () => () }
+    //~^ ERROR: the name `b` is defined multiple times
+}
+mod c {
+    #[allow(unused_imports)]
+    use crate::b;
+}
+
+fn main() {}
diff --git a/src/test/ui/macros/issue-58490.stderr b/src/test/ui/macros/issue-58490.stderr
new file mode 100644
index 00000000000..b1f0896f3b6
--- /dev/null
+++ b/src/test/ui/macros/issue-58490.stderr
@@ -0,0 +1,14 @@
+error[E0428]: the name `b` is defined multiple times
+  --> $DIR/issue-58490.rs:18:5
+   |
+LL |         macro_rules! b { () => () }
+   |         -------------- previous definition of the macro `b` here
+...
+LL |     macro_rules! b { () => () }
+   |     ^^^^^^^^^^^^^^ `b` redefined here
+   |
+   = note: `b` must be defined only once in the macro namespace of this module
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0428`.
diff --git a/src/test/ui/mir/issue-60390.rs b/src/test/ui/mir/issue-60390.rs
new file mode 100644
index 00000000000..fd9d6b46dd4
--- /dev/null
+++ b/src/test/ui/mir/issue-60390.rs
@@ -0,0 +1,8 @@
+// check-pass
+// compile-flags: --emit=mir,link
+// Regression test for #60390, this ICE requires `--emit=mir` flag.
+
+fn main() {
+    enum Inner { Member(u32) };
+    Inner::Member(0);
+}