diff options
| author | Yuki Okushi <huyuumi.dev@gmail.com> | 2020-10-04 11:45:01 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-04 11:45:01 +0900 |
| commit | f09c962a84ea125152d37ad8c38bca1aef668c07 (patch) | |
| tree | dd7d93139fd4c4a8a305f8b5b07af56987c95f3d | |
| parent | 44ce38ac9bc014df43167697ee55acf13e0ff149 (diff) | |
| parent | 38f460f8669de8ee0d975ec89f06e89a5849ab65 (diff) | |
| download | rust-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.rs | 11 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-68951.rs | 9 | ||||
| -rw-r--r-- | src/test/ui/pattern/issue-66501.rs | 12 | ||||
| -rw-r--r-- | src/test/ui/pattern/issue-72565.rs | 8 | ||||
| -rw-r--r-- | src/test/ui/pattern/issue-72565.stderr | 8 | ||||
| -rw-r--r-- | src/test/ui/type-alias-impl-trait/issue-74244.rs | 20 | ||||
| -rw-r--r-- | src/test/ui/type-alias-impl-trait/issue-74244.stderr | 9 |
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`. |
