Rollup merge of #67551 - ldm0:E0627, r=Dylan-DPC

Add long error code explanation message for E0627

Part of #61137.

r? @GuillaumeGomez
This commit is contained in:
Mazdak Farrokhzad 2019-12-24 04:39:58 +01:00 committed by GitHub
commit a75968a782
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 47 additions and 13 deletions

View file

@ -346,6 +346,7 @@ E0622: include_str!("./error_codes/E0622.md"),
E0623: include_str!("./error_codes/E0623.md"),
E0624: include_str!("./error_codes/E0624.md"),
E0626: include_str!("./error_codes/E0626.md"),
E0627: include_str!("./error_codes/E0627.md"),
E0631: include_str!("./error_codes/E0631.md"),
E0633: include_str!("./error_codes/E0633.md"),
E0635: include_str!("./error_codes/E0635.md"),
@ -574,7 +575,6 @@ E0745: include_str!("./error_codes/E0745.md"),
// E0612, // merged into E0609
// E0613, // Removed (merged with E0609)
E0625, // thread-local statics cannot be accessed at compile-time
E0627, // yield statement outside of generator literal
E0628, // generators cannot have explicit parameters
E0629, // missing 'feature' (rustc_const_unstable)
// rustc_const_unstable attribute must be paired with stable/unstable

View file

@ -0,0 +1,30 @@
A yield expression was used outside of the generator literal.
Erroneous code example:
```compile_fail,E0627
#![feature(generators, generator_trait)]
fn fake_generator() -> &'static str {
yield 1;
return "foo"
}
fn main() {
let mut generator = fake_generator;
}
```
The error occurs because keyword `yield` can only be used inside the generator
literal. This can be fixed by constructing the generator correctly.
```
#![feature(generators, generator_trait)]
fn main() {
let mut generator = || {
yield 1;
return "foo"
};
}
```