about summary refs log tree commit diff
diff options
context:
space:
mode:
authorYuki Okushi <huyuumi.dev@gmail.com>2020-10-04 11:45:01 +0900
committerGitHub <noreply@github.com>2020-10-04 11:45:01 +0900
commitf09c962a84ea125152d37ad8c38bca1aef668c07 (patch)
treedd7d93139fd4c4a8a305f8b5b07af56987c95f3d
parent44ce38ac9bc014df43167697ee55acf13e0ff149 (diff)
parent38f460f8669de8ee0d975ec89f06e89a5849ab65 (diff)
downloadrust-f09c962a84ea125152d37ad8c38bca1aef668c07.tar.gz
rust-f09c962a84ea125152d37ad8c38bca1aef668c07.zip
Rollup merge of #77388 - JohnTitor:add-tests, r=Dylan-DPC
Add some regression tests

Closes #66501
Closes #68951
Closes #72565
Closes #74244
Closes #75299

The first issue is fixed in 1.43.0, other issues are fixed in the recent nightly.
-rw-r--r--src/test/ui/const-generics/issues/issue-75299.rs11
-rw-r--r--src/test/ui/issues/issue-68951.rs9
-rw-r--r--src/test/ui/pattern/issue-66501.rs12
-rw-r--r--src/test/ui/pattern/issue-72565.rs8
-rw-r--r--src/test/ui/pattern/issue-72565.stderr8
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-74244.rs20
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-74244.stderr9
7 files changed, 77 insertions, 0 deletions
diff --git a/src/test/ui/const-generics/issues/issue-75299.rs b/src/test/ui/const-generics/issues/issue-75299.rs
new file mode 100644
index 00000000000..23f30a1eea0
--- /dev/null
+++ b/src/test/ui/const-generics/issues/issue-75299.rs
@@ -0,0 +1,11 @@
+// compile-flags: -Zmir-opt-level=3
+// run-pass
+
+#![feature(const_generics)]
+#![allow(incomplete_features)]
+fn main() {
+    fn foo<const N: usize>() -> [u8; N] {
+        [0; N]
+    }
+    let _x = foo::<1>();
+}
diff --git a/src/test/ui/issues/issue-68951.rs b/src/test/ui/issues/issue-68951.rs
new file mode 100644
index 00000000000..1c1e92c5bbc
--- /dev/null
+++ b/src/test/ui/issues/issue-68951.rs
@@ -0,0 +1,9 @@
+// check-pass
+
+fn main() {
+    let array = [0x42u8; 10];
+    for b in &array {
+        let lo = b & 0xf;
+        let hi = (b >> 4) & 0xf;
+    }
+}
diff --git a/src/test/ui/pattern/issue-66501.rs b/src/test/ui/pattern/issue-66501.rs
new file mode 100644
index 00000000000..ffcfd4ad83e
--- /dev/null
+++ b/src/test/ui/pattern/issue-66501.rs
@@ -0,0 +1,12 @@
+// check-pass
+
+#![allow(unreachable_patterns)]
+
+fn main() {
+    const CONST: &[Option<()>; 1] = &[Some(())];
+    match &[Some(())] {
+        &[None] => {}
+        CONST => {}
+        &[Some(())] => {}
+    }
+}
diff --git a/src/test/ui/pattern/issue-72565.rs b/src/test/ui/pattern/issue-72565.rs
new file mode 100644
index 00000000000..1e262fd5067
--- /dev/null
+++ b/src/test/ui/pattern/issue-72565.rs
@@ -0,0 +1,8 @@
+const F: &'static dyn PartialEq<u32> = &7u32;
+
+fn main() {
+    let a: &dyn PartialEq<u32> = &7u32;
+    match a {
+        F => panic!(), //~ ERROR: `&dyn PartialEq<u32>` cannot be used in patterns
+    }
+}
diff --git a/src/test/ui/pattern/issue-72565.stderr b/src/test/ui/pattern/issue-72565.stderr
new file mode 100644
index 00000000000..2f82616b277
--- /dev/null
+++ b/src/test/ui/pattern/issue-72565.stderr
@@ -0,0 +1,8 @@
+error: `&dyn PartialEq<u32>` cannot be used in patterns
+  --> $DIR/issue-72565.rs:6:9
+   |
+LL |         F => panic!(),
+   |         ^
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/type-alias-impl-trait/issue-74244.rs b/src/test/ui/type-alias-impl-trait/issue-74244.rs
new file mode 100644
index 00000000000..bb4104b3d25
--- /dev/null
+++ b/src/test/ui/type-alias-impl-trait/issue-74244.rs
@@ -0,0 +1,20 @@
+#![feature(type_alias_impl_trait)]
+
+trait Allocator {
+    type Buffer;
+}
+
+struct DefaultAllocator;
+
+impl<T> Allocator for DefaultAllocator {
+    //~^ ERROR: the type parameter `T` is not constrained
+    type Buffer = ();
+}
+
+type A = impl Fn(<DefaultAllocator as Allocator>::Buffer);
+
+fn foo() -> A {
+    |_| ()
+}
+
+fn main() {}
diff --git a/src/test/ui/type-alias-impl-trait/issue-74244.stderr b/src/test/ui/type-alias-impl-trait/issue-74244.stderr
new file mode 100644
index 00000000000..ff6bacd277e
--- /dev/null
+++ b/src/test/ui/type-alias-impl-trait/issue-74244.stderr
@@ -0,0 +1,9 @@
+error[E0207]: the type parameter `T` is not constrained by the impl trait, self type, or predicates
+  --> $DIR/issue-74244.rs:9:6
+   |
+LL | impl<T> Allocator for DefaultAllocator {
+   |      ^ unconstrained type parameter
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0207`.