Skip to content

Commit abf399d

Browse files
committed
Add yield_expr feature to remaining code
1 parent 5ae4d9b commit abf399d

File tree

208 files changed

+216
-229
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

208 files changed

+216
-229
lines changed

compiler/rustc_codegen_gcc/example/std_example.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#![allow(internal_features)]
2-
#![feature(core_intrinsics, coroutines, coroutine_trait, stmt_expr_attributes)]
2+
#![feature(core_intrinsics, coroutines, yield_expr, coroutine_trait, stmt_expr_attributes)]
33

44
#[cfg(feature="master")]
55
#[cfg(target_arch="x86_64")]

compiler/rustc_hir_analysis/src/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ This API is completely unstable and subject to change.
5959
#![allow(internal_features)]
6060
#![allow(rustc::diagnostic_outside_of_impl)]
6161
#![allow(rustc::untranslatable_diagnostic)]
62+
#![cfg_attr(not(bootstrap), feature(yield_expr))]
6263
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
6364
#![doc(rust_logo)]
6465
#![feature(assert_matches)]

compiler/rustc_metadata/src/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// tidy-alphabetical-start
22
#![allow(internal_features)]
3+
#![cfg_attr(not(bootstrap), feature(yield_expr))]
34
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
45
#![doc(rust_logo)]
56
#![feature(coroutines)]

compiler/rustc_middle/src/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
#![allow(rustc::diagnostic_outside_of_impl)]
3030
#![allow(rustc::potential_query_instability)]
3131
#![allow(rustc::untranslatable_diagnostic)]
32+
#![cfg_attr(not(bootstrap), feature(yield_expr))]
3233
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
3334
#![doc(rust_logo)]
3435
#![feature(allocator_api)]

compiler/rustc_type_ir/src/ty_kind.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ pub enum TyKind<I: Interner> {
199199
/// may end up as something like `for<'a> [Vec<i32>, &'a Vec<i32>]`:
200200
///
201201
/// ```
202-
/// #![feature(coroutines)]
202+
/// #![feature(coroutines, yield_expr)]
203203
/// #[coroutine] static |a| {
204204
/// let x = &vec![3];
205205
/// yield a;

library/core/src/iter/sources/from_coroutine.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use crate::pin::Pin;
1111
/// # Examples
1212
///
1313
/// ```
14-
/// #![feature(coroutines)]
14+
/// #![feature(coroutines, yield_expr)]
1515
/// #![feature(iter_from_coroutine)]
1616
///
1717
/// let it = std::iter::from_coroutine(#[coroutine] || {

library/core/src/ops/coroutine.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ pub enum CoroutineState<Y, R> {
3838
/// closure-like:
3939
///
4040
/// ```rust
41-
/// #![feature(coroutines)]
41+
/// #![feature(coroutines, yield_expr)]
4242
/// #![feature(coroutine_trait)]
4343
/// #![feature(stmt_expr_attributes)]
4444
///

library/core/src/pin.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1855,7 +1855,7 @@ unsafe impl<T: ?Sized> PinCoerceUnsized for *mut T {}
18551855
/// ### With `Coroutine`s
18561856
///
18571857
/// ```rust
1858-
/// #![feature(coroutines)]
1858+
/// #![feature(coroutines, yield_expr)]
18591859
/// #![feature(coroutine_trait)]
18601860
/// use core::{
18611861
/// ops::{Coroutine, CoroutineState},

src/tools/clippy/tests/ui/crashes/ice-5238.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
//@ check-pass
22
// Regression test for #5238 / https://github.com/rust-lang/rust/pull/69562
33

4-
#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]
4+
#![feature(coroutines, yield_expr, coroutine_trait, stmt_expr_attributes)]
55

66
fn main() {
77
let _ = #[coroutine]

src/tools/clippy/tests/ui/redundant_locals.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
//@aux-build:proc_macros.rs
22
#![allow(unused, clippy::no_effect, clippy::needless_pass_by_ref_mut)]
33
#![warn(clippy::redundant_locals)]
4-
#![feature(coroutines, stmt_expr_attributes)]
4+
#![feature(coroutines, yield_expr, stmt_expr_attributes)]
55

66
extern crate proc_macros;
77
use proc_macros::{external, with_span};

src/tools/miri/tests/fail/coroutine-pinned-moved.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//@compile-flags: -Zmiri-disable-validation -Zmiri-disable-stacked-borrows
2-
#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]
2+
#![feature(coroutines, yield_expr, coroutine_trait, stmt_expr_attributes)]
33

44
use std::ops::{Coroutine, CoroutineState};
55
use std::pin::Pin;

src/tools/miri/tests/pass/coroutine.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//@revisions: stack tree
22
//@[tree]compile-flags: -Zmiri-tree-borrows
3-
#![feature(coroutines, coroutine_trait, never_type, stmt_expr_attributes)]
3+
#![feature(coroutines, yield_expr, coroutine_trait, never_type, stmt_expr_attributes)]
44

55
use std::fmt::Debug;
66
use std::mem::ManuallyDrop;

src/tools/miri/tests/pass/stacked-borrows/coroutine-self-referential.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// See https://github.com/rust-lang/unsafe-code-guidelines/issues/148:
22
// this fails when Stacked Borrows is strictly applied even to `!Unpin` types.
3-
#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]
3+
#![feature(coroutines, yield_expr, coroutine_trait, stmt_expr_attributes)]
44

55
use std::ops::{Coroutine, CoroutineState};
66
use std::pin::Pin;

src/tools/miri/tests/pass/track-caller-attribute.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#![feature(stmt_expr_attributes)]
33
#![feature(closure_track_caller)]
44
#![feature(coroutine_trait)]
5-
#![feature(coroutines)]
5+
#![feature(coroutines, yield_expr)]
66

77
use std::ops::{Coroutine, CoroutineState};
88
use std::panic::Location;

src/tools/rust-analyzer/crates/ide-db/src/generated/lints.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -4980,7 +4980,7 @@ tweaks to the overall design.
49804980
A syntactical example of a coroutine is:
49814981

49824982
```rust
4983-
#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]
4983+
#![feature(coroutines, yield_expr, coroutine_trait, stmt_expr_attributes)]
49844984

49854985
use std::ops::{Coroutine, CoroutineState};
49864986
use std::pin::Pin;
@@ -5013,7 +5013,7 @@ An example of the control flow of coroutines is that the following example
50135013
prints all numbers in order:
50145014

50155015
```rust
5016-
#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]
5016+
#![feature(coroutines, yield_expr, coroutine_trait, stmt_expr_attributes)]
50175017

50185018
use std::ops::Coroutine;
50195019
use std::pin::Pin;
@@ -5118,7 +5118,7 @@ which point all state is saved off in the coroutine and a value is returned.
51185118
Let's take a look at an example to see what's going on here:
51195119

51205120
```rust
5121-
#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]
5121+
#![feature(coroutines, yield_expr, coroutine_trait, stmt_expr_attributes)]
51225122

51235123
use std::ops::Coroutine;
51245124
use std::pin::Pin;

src/tools/rustfmt/tests/source/immovable_coroutines.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![feature(coroutines)]
1+
#![feature(coroutines, yield_expr)]
22

33
unsafe fn foo() {
44
let mut ga = #[coroutine]

src/tools/rustfmt/tests/target/immovable_coroutines.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![feature(coroutines)]
1+
#![feature(coroutines, yield_expr)]
22

33
unsafe fn foo() {
44
let mut ga = #[coroutine]

tests/codegen/coroutine-debug-msvc.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
//@ compile-flags: -C debuginfo=2
88
//@ only-msvc
99

10-
#![feature(coroutines, coroutine_trait)]
10+
#![feature(coroutines, yield_expr, coroutine_trait)]
1111
use std::ops::Coroutine;
1212

1313
fn coroutine_test() -> impl Coroutine<Yield = i32, Return = ()> {

tests/codegen/coroutine-debug.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
//@ compile-flags: -C debuginfo=2 --edition=2018
88
//@ ignore-msvc
99

10-
#![feature(coroutines, coroutine_trait)]
10+
#![feature(coroutines, yield_expr, coroutine_trait)]
1111
use std::ops::Coroutine;
1212

1313
fn coroutine_test() -> impl Coroutine<Yield = i32, Return = ()> {

tests/codegen/issues/issue-98678-closure-coroutine.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
//! This test verifies the accuracy of emitted file and line debuginfo metadata for closures and
33
//! coroutines.
44
5-
#![feature(coroutines, stmt_expr_attributes)]
5+
#![feature(coroutines, yield_expr, stmt_expr_attributes)]
66

77
//@ revisions: MSVC NONMSVC
88
//@[MSVC] only-msvc

tests/coverage/coroutine.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]
1+
#![feature(coroutines, yield_expr, coroutine_trait, stmt_expr_attributes)]
22

33
use std::ops::{Coroutine, CoroutineState};
44
use std::pin::Pin;

tests/coverage/yield.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]
1+
#![feature(coroutines, yield_expr, coroutine_trait, stmt_expr_attributes)]
22
#![allow(unused_assignments)]
33

44
use std::ops::{Coroutine, CoroutineState};

tests/debuginfo/coroutine-locals.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@
4444
// lldb-command:v c
4545
// lldb-check:(int) c = 6
4646

47-
#![feature(omit_gdb_pretty_printer_section, coroutines, coroutine_trait, stmt_expr_attributes)]
47+
#![feature(omit_gdb_pretty_printer_section, coroutines, yield_expr, coroutine_trait,
48+
stmt_expr_attributes)]
4849
#![omit_gdb_pretty_printer_section]
4950

5051
use std::ops::Coroutine;

tests/debuginfo/coroutine-objects.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@
5353
// cdb-check: b : Returned [Type: enum2$<coroutine_objects::main::coroutine_env$0>]
5454
// cdb-check: [+0x[...]] _ref__a : 0x[...] : 6 [Type: int *]
5555

56-
#![feature(omit_gdb_pretty_printer_section, coroutines, coroutine_trait, stmt_expr_attributes)]
56+
#![feature(omit_gdb_pretty_printer_section, coroutines, yield_expr, coroutine_trait,
57+
stmt_expr_attributes)]
5758
#![omit_gdb_pretty_printer_section]
5859

5960
use std::ops::Coroutine;

tests/debuginfo/function-names.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
#![allow(unused_variables)]
8181
#![feature(omit_gdb_pretty_printer_section)]
8282
#![omit_gdb_pretty_printer_section]
83-
#![feature(adt_const_params, coroutines, coroutine_trait, stmt_expr_attributes)]
83+
#![feature(adt_const_params, coroutines, yield_expr, coroutine_trait, stmt_expr_attributes)]
8484
#![allow(incomplete_features)]
8585

8686
use std::ops::Coroutine;

tests/debuginfo/issue-57822.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
// lldb-command:v b
2525
// lldb-check:(issue_57822::main::{coroutine_env#3}) b = { value = { a = { value = { y = 2 } $discr$ = '\x02' } } $discr$ = '\x02' }
2626

27-
#![feature(omit_gdb_pretty_printer_section, coroutines, coroutine_trait, stmt_expr_attributes)]
27+
#![feature(omit_gdb_pretty_printer_section, coroutines, yield_expr, coroutine_trait,
28+
stmt_expr_attributes)]
2829
#![omit_gdb_pretty_printer_section]
2930

3031
use std::ops::Coroutine;

tests/mir-opt/coroutine_drop_cleanup.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// skip-filecheck
2-
#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]
2+
#![feature(coroutines, yield_expr, coroutine_trait, stmt_expr_attributes)]
33

44
// EMIT_MIR_FOR_EACH_PANIC_STRATEGY
55

tests/mir-opt/coroutine_storage_dead_unwind.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
// Basic block and local names can safely change, but the StorageDead statements
77
// should not go away.
88

9-
#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]
9+
#![feature(coroutines, yield_expr, coroutine_trait, stmt_expr_attributes)]
1010

1111
struct Foo(i32);
1212

tests/mir-opt/coroutine_tiny.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
//@ compile-flags: -C panic=abort
66
//@ no-prefer-dynamic
77

8-
#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]
8+
#![feature(coroutines, yield_expr, coroutine_trait, stmt_expr_attributes)]
99

1010
struct HasDrop;
1111

tests/mir-opt/inline/inline_coroutine.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// EMIT_MIR_FOR_EACH_PANIC_STRATEGY
22
//@ compile-flags: -Zinline-mir-hint-threshold=1000 -C debuginfo=full
3-
#![feature(coroutines, coroutine_trait)]
3+
#![feature(coroutines, yield_expr, coroutine_trait)]
44

55
use std::ops::Coroutine;
66
use std::pin::Pin;

tests/ui/async-await/coroutine-not-future.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//@ edition:2018
22
//@compile-flags: --diagnostic-width=300
3-
#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]
3+
#![feature(coroutines, yield_expr, coroutine_trait, stmt_expr_attributes)]
44

55
use std::future::Future;
66
use std::ops::Coroutine;

tests/ui/async-await/for-await-passthrough.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//@ run-pass
22
//@ edition: 2024
3-
#![feature(async_iterator, async_iter_from_iter, async_for_loop, gen_blocks)]
3+
#![feature(async_iterator, async_iter_from_iter, async_for_loop, gen_blocks, yield_expr)]
44

55
async gen fn async_iter() -> i32 {
66
let iter = core::async_iter::from_iter(0..3);

tests/ui/async-await/issues/issue-65419/issue-65419-async-fn-resume-after-completion.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
//@ error-pattern: `async fn` resumed after completion
77
//@ edition:2018
88

9-
#![feature(coroutines, coroutine_trait)]
9+
#![feature(coroutines, yield_expr, coroutine_trait)]
1010

1111
async fn foo() {
1212
}

tests/ui/async-await/issues/issue-65419/issue-65419-async-fn-resume-after-panic.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
//@ error-pattern: `async fn` resumed after panicking
88
//@ edition:2018
99

10-
#![feature(coroutines, coroutine_trait)]
10+
#![feature(coroutines, yield_expr, coroutine_trait)]
1111

1212
use std::panic;
1313

tests/ui/async-await/issues/issue-65419/issue-65419-coroutine-resume-after-completion.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
//@ error-pattern:coroutine resumed after completion
77
//@ edition:2018
88

9-
#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]
9+
#![feature(coroutines, yield_expr, coroutine_trait, stmt_expr_attributes)]
1010

1111
use std::{ops::Coroutine, pin::Pin};
1212

tests/ui/async-await/non-trivial-drop.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
//@ build-pass
22
//@ edition:2018
33

4-
#![feature(coroutines)]
4+
#![feature(coroutines, yield_expr)]
55

66
fn main() {
77
foo();

tests/ui/coherence/coherence-with-coroutine.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// Test that encountering closures during coherence does not cause issues.
2-
#![feature(type_alias_impl_trait, coroutines)]
2+
#![feature(type_alias_impl_trait, coroutines, yield_expr)]
33
#![cfg_attr(specialized, feature(specialization))]
44
#![allow(incomplete_features)]
55

tests/ui/coroutine/addassign-yield.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
// is being used), we were failing to account for all types that might
66
// possibly be live across a yield point.
77

8-
#![feature(coroutines, stmt_expr_attributes)]
8+
#![feature(coroutines, yield_expr, stmt_expr_attributes)]
99

1010
fn foo() {
1111
let _x = #[coroutine] static || {

tests/ui/coroutine/arg-count-mismatch-on-unit-input.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]
1+
#![feature(coroutines, yield_expr, coroutine_trait, stmt_expr_attributes)]
22

33
use std::ops::Coroutine;
44

tests/ui/coroutine/async-coroutine-issue-67158.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![feature(coroutines)]
1+
#![feature(coroutines, yield_expr)]
22
//@ edition:2018
33
// Regression test for #67158.
44
fn main() {

tests/ui/coroutine/async-gen-deduce-yield.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
//@ compile-flags: --edition 2024
22
//@ check-pass
33

4-
#![feature(async_iterator, gen_blocks)]
4+
#![feature(async_iterator, gen_blocks, yield_expr)]
55

66
use std::async_iter::AsyncIterator;
77

tests/ui/coroutine/async-gen-yield-ty-is-unit.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
//@ compile-flags: --edition 2024
22
//@ check-pass
33

4-
#![feature(async_iterator, gen_blocks)]
4+
#![feature(async_iterator, gen_blocks, yield_expr)]
55

66
use std::{async_iter::AsyncIterator, pin::pin, task::{Context, Waker}};
77

tests/ui/coroutine/async_gen_fn_iter.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
//@ edition: 2024
22
//@ run-pass
33

4-
#![feature(gen_blocks, async_iterator)]
4+
#![feature(gen_blocks, async_iterator, yield_expr)]
55

66
// make sure that a ridiculously simple async gen fn works as an iterator.
77

tests/ui/coroutine/auto-trait-regions.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![feature(coroutines, stmt_expr_attributes)]
1+
#![feature(coroutines, yield_expr, stmt_expr_attributes)]
22
#![feature(auto_traits)]
33
#![feature(negative_impls)]
44

tests/ui/coroutine/auxiliary/metadata-sufficient-for-layout.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//@ compile-flags: --emit metadata
2-
#![feature(coroutines, coroutine_trait)]
2+
#![feature(coroutines, yield_expr, coroutine_trait)]
33

44
use std::marker::Unpin;
55
use std::ops::Coroutine;

tests/ui/coroutine/auxiliary/unwind-aux.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
//@ no-prefer-dynamic
33
//@ edition:2021
44

5-
#![feature(coroutines, stmt_expr_attributes)]
5+
#![feature(coroutines, yield_expr, stmt_expr_attributes)]
66
pub fn run<T>(a: T) {
77
let _ = #[coroutine]
88
move || {

0 commit comments

Comments
 (0)