Handle type errors in closure/generator upvar_tys

Co-authored-by: Roxane Fruytier <roxane.fruytier@hotmail.com>
This commit is contained in:
Aman Arora 2020-10-27 03:10:41 -04:00
parent 28f03ac4c0
commit f0ae24e100
7 changed files with 74 additions and 7 deletions

View file

@ -0,0 +1,12 @@
#[derive(Clone)]
struct InGroup<F> {
it: It,
//~^ ERROR cannot find type `It` in this scope
f: F,
}
fn dates_in_year() -> impl Clone {
InGroup { f: |d| d }
//~^ ERROR missing field `it` in initializer of `InGroup<_>`
}
fn main() {}

View file

@ -0,0 +1,16 @@
error[E0412]: cannot find type `It` in this scope
--> $DIR/issue-77993-1.rs:3:9
|
LL | it: It,
| ^^ not found in this scope
error[E0063]: missing field `it` in initializer of `InGroup<_>`
--> $DIR/issue-77993-1.rs:8:5
|
LL | InGroup { f: |d| d }
| ^^^^^^^ missing `it`
error: aborting due to 2 previous errors
Some errors have detailed explanations: E0063, E0412.
For more information about an error, try `rustc --explain E0063`.

View file

@ -0,0 +1,9 @@
// edition:2018
async fn test() -> Result<(), Box<dyn std::error::Error>> {
macro!();
//~^ ERROR expected identifier, found `!`
Ok(())
}
fn main() {}

View file

@ -0,0 +1,8 @@
error: expected identifier, found `!`
--> $DIR/issue-77993-2.rs:4:10
|
LL | macro!();
| ^ expected identifier
error: aborting due to previous error