Yield is an expression form, not a statement.
This commit is contained in:
parent
1485c16899
commit
587d03bea8
|
@ -1424,7 +1424,7 @@ impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> {
|
|||
}
|
||||
|
||||
/// Reports an error if this is a borrow of local data.
|
||||
/// This is called for all Yield statements on movable generators
|
||||
/// This is called for all Yield expressions on movable generators
|
||||
fn check_for_local_borrow(&mut self, borrow: &BorrowData<'tcx>, yield_span: Span) {
|
||||
debug!("check_for_local_borrow({:?})", borrow);
|
||||
|
||||
|
|
|
@ -131,7 +131,7 @@ pub(super) fn is_active<'tcx>(
|
|||
}
|
||||
|
||||
/// Determines if a given borrow is borrowing local data
|
||||
/// This is called for all Yield statements on movable generators
|
||||
/// This is called for all Yield expressions on movable generators
|
||||
pub(super) fn borrow_of_local_data(place: &Place<'_>) -> bool {
|
||||
match place.base {
|
||||
PlaceBase::Static(_) => false,
|
||||
|
|
|
@ -1775,7 +1775,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
|||
self.tcx.sess,
|
||||
expr.span,
|
||||
E0627,
|
||||
"yield statement outside of generator literal"
|
||||
"yield expression outside of generator literal"
|
||||
)
|
||||
.emit();
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
fn main() {
|
||||
yield true; //~ ERROR yield syntax is experimental
|
||||
//~^ ERROR yield statement outside of generator literal
|
||||
//~^ ERROR yield expression outside of generator literal
|
||||
}
|
||||
|
||||
#[cfg(FALSE)]
|
||||
|
|
|
@ -25,7 +25,7 @@ LL | yield 0;
|
|||
= note: for more information, see https://github.com/rust-lang/rust/issues/43122
|
||||
= help: add `#![feature(generators)]` to the crate attributes to enable
|
||||
|
||||
error[E0627]: yield statement outside of generator literal
|
||||
error[E0627]: yield expression outside of generator literal
|
||||
--> $DIR/feature-gate-generators.rs:2:5
|
||||
|
|
||||
LL | yield true;
|
||||
|
@ -33,4 +33,5 @@ LL | yield true;
|
|||
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0658`.
|
||||
Some errors have detailed explanations: E0627, E0658.
|
||||
For more information about an error, try `rustc --explain E0627`.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#![feature(generators)]
|
||||
|
||||
const A: u8 = { yield 3u8; 3u8};
|
||||
//~^ ERROR yield statement outside
|
||||
//~^ ERROR yield expression outside
|
||||
|
||||
fn main() {}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
error[E0627]: yield statement outside of generator literal
|
||||
error[E0627]: yield expression outside of generator literal
|
||||
--> $DIR/yield-in-const.rs:3:17
|
||||
|
|
||||
LL | const A: u8 = { yield 3u8; 3u8};
|
||||
|
@ -6,3 +6,4 @@ LL | const A: u8 = { yield 3u8; 3u8};
|
|||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0627`.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#![feature(generators)]
|
||||
|
||||
fn main() { yield; }
|
||||
//~^ ERROR yield statement outside
|
||||
//~^ ERROR yield expression outside
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
error[E0627]: yield statement outside of generator literal
|
||||
error[E0627]: yield expression outside of generator literal
|
||||
--> $DIR/yield-in-function.rs:3:13
|
||||
|
|
||||
LL | fn main() { yield; }
|
||||
|
@ -6,3 +6,4 @@ LL | fn main() { yield; }
|
|||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0627`.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#![feature(generators)]
|
||||
|
||||
static B: u8 = { yield 3u8; 3u8};
|
||||
//~^ ERROR yield statement outside
|
||||
//~^ ERROR yield expression outside
|
||||
|
||||
fn main() {}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
error[E0627]: yield statement outside of generator literal
|
||||
error[E0627]: yield expression outside of generator literal
|
||||
--> $DIR/yield-in-static.rs:3:18
|
||||
|
|
||||
LL | static B: u8 = { yield 3u8; 3u8};
|
||||
|
@ -6,3 +6,4 @@ LL | static B: u8 = { yield 3u8; 3u8};
|
|||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0627`.
|
||||
|
|
Loading…
Reference in New Issue