Rollup merge of #69842 - JohnTitor:more-tests, r=Centril

Add more regression tests

Closes #54239
Closes #57200
Closes #57201
Closes #60473
Closes #64620
Closes #67166

r? @Centril
This commit is contained in:
Mazdak Farrokhzad 2020-03-09 12:57:54 +01:00 committed by GitHub
commit 7e903f82ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 131 additions and 0 deletions

View File

@ -0,0 +1,17 @@
// Regression test for #54239, shouldn't trigger lint.
// check-pass
// edition:2018
#![deny(missing_debug_implementations)]
struct DontLookAtMe(i32);
async fn secret() -> DontLookAtMe {
DontLookAtMe(41)
}
pub async fn looking() -> i32 { // Shouldn't trigger lint here.
secret().await.0
}
fn main() {}

View File

@ -0,0 +1,9 @@
// Regression test for #64620
#![feature(generators)]
pub fn crash(arr: [usize; 1]) {
yield arr[0]; //~ ERROR: yield expression outside of generator literal
}
fn main() {}

View File

@ -0,0 +1,9 @@
error[E0627]: yield expression outside of generator literal
--> $DIR/issue-64620-yield-array-element.rs:6:5
|
LL | yield arr[0];
| ^^^^^^^^^^^^
error: aborting due to previous error
For more information about this error, try `rustc --explain E0627`.

View File

@ -0,0 +1,15 @@
// Regression test for #57200
// FIXME: The error is temporary hack, we'll revisit here at some point.
#![feature(impl_trait_in_bindings)]
#![allow(incomplete_features)]
fn bug<'a, 'b, T>()
where
'a: 'b,
{
let f: impl Fn(&'a T) -> &'b T = |x| x;
//~^ ERROR: lifetimes in impl Trait types in bindings are not currently supported
}
fn main() {}

View File

@ -0,0 +1,8 @@
error: lifetimes in impl Trait types in bindings are not currently supported
--> $DIR/issue-57200.rs:11:12
|
LL | let f: impl Fn(&'a T) -> &'b T = |x| x;
| ^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -0,0 +1,15 @@
// Regression test for #57201
// FIXME: The error is temporary hack, we'll revisit here at some point.
#![feature(impl_trait_in_bindings)]
#![allow(incomplete_features)]
fn bug<'a, 'b, T>()
where
'a: 'b,
{
let f: &impl Fn(&'a T) -> &'b T = &|x| x;
//~^ ERROR: lifetimes in impl Trait types in bindings are not currently supported
}
fn main() {}

View File

@ -0,0 +1,8 @@
error: lifetimes in impl Trait types in bindings are not currently supported
--> $DIR/issue-57201.rs:11:13
|
LL | let f: &impl Fn(&'a T) -> &'b T = &|x| x;
| ^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -0,0 +1,17 @@
// Regression test for #60473
#![feature(impl_trait_in_bindings)]
#![allow(incomplete_features)]
struct A<'a>(&'a ());
trait Trait<T> {
}
impl<T> Trait<T> for () {
}
fn main() {
let x: impl Trait<A> = (); // FIXME: The error doesn't seem correct.
//~^ ERROR: opaque type expands to a recursive type
}

View File

@ -0,0 +1,11 @@
error[E0720]: opaque type expands to a recursive type
--> $DIR/issue-60473.rs:15:12
|
LL | let x: impl Trait<A> = (); // FIXME: The error doesn't seem correct.
| ^^^^^^^^^^^^^ expands to a recursive type
|
= note: type resolves to itself
error: aborting due to previous error
For more information about this error, try `rustc --explain E0720`.

View File

@ -0,0 +1,11 @@
// Regression test for #67166
#![feature(impl_trait_in_bindings)]
#![allow(incomplete_features)]
pub fn run() {
let _foo: Box<impl Copy + '_> = Box::new(()); // FIXME: The error doesn't much make sense.
//~^ ERROR: opaque type expands to a recursive type
}
fn main() {}

View File

@ -0,0 +1,11 @@
error[E0720]: opaque type expands to a recursive type
--> $DIR/issue-67166.rs:7:19
|
LL | let _foo: Box<impl Copy + '_> = Box::new(()); // FIXME: The error doesn't much make sense.
| ^^^^^^^^^^^^^^ expands to a recursive type
|
= note: type resolves to itself
error: aborting due to previous error
For more information about this error, try `rustc --explain E0720`.