Skip to content

Commit 1485c16

Browse files
committed
Add long error code explanation message for E0627
1 parent a916ac2 commit 1485c16

File tree

2 files changed

+31
-1
lines changed

2 files changed

+31
-1
lines changed

src/librustc_error_codes/error_codes.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,7 @@ E0622: include_str!("./error_codes/E0622.md"),
346346
E0623: include_str!("./error_codes/E0623.md"),
347347
E0624: include_str!("./error_codes/E0624.md"),
348348
E0626: include_str!("./error_codes/E0626.md"),
349+
E0627: include_str!("./error_codes/E0627.md"),
349350
E0631: include_str!("./error_codes/E0631.md"),
350351
E0633: include_str!("./error_codes/E0633.md"),
351352
E0635: include_str!("./error_codes/E0635.md"),
@@ -574,7 +575,6 @@ E0745: include_str!("./error_codes/E0745.md"),
574575
// E0612, // merged into E0609
575576
// E0613, // Removed (merged with E0609)
576577
E0625, // thread-local statics cannot be accessed at compile-time
577-
E0627, // yield statement outside of generator literal
578578
E0628, // generators cannot have explicit parameters
579579
E0629, // missing 'feature' (rustc_const_unstable)
580580
// rustc_const_unstable attribute must be paired with stable/unstable
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
A yield expression was used outside of the generator literal.
2+
3+
Erroneous code example:
4+
5+
```compile_fail,E0627
6+
#![feature(generators, generator_trait)]
7+
8+
fn fake_generator() -> &'static str {
9+
yield 1;
10+
return "foo"
11+
}
12+
13+
fn main() {
14+
let mut generator = fake_generator;
15+
}
16+
```
17+
18+
The error occurs because keyword `yield` can only be used inside the generator
19+
literal. This can be fixed by constructing the generator correctly.
20+
21+
```
22+
#![feature(generators, generator_trait)]
23+
24+
fn main() {
25+
let mut generator = || {
26+
yield 1;
27+
return "foo"
28+
};
29+
}
30+
```

0 commit comments

Comments
 (0)