rust/tests/ui/feature-gates
bors 2cad938a81 Auto merge of #116447 - oli-obk:gen_fn, r=compiler-errors
Implement `gen` blocks in the 2024 edition

Coroutines tracking issue https://github.com/rust-lang/rust/issues/43122
`gen` block tracking issue https://github.com/rust-lang/rust/issues/117078

This PR implements `gen` blocks that implement `Iterator`. Most of the logic with `async` blocks is shared, and thus I renamed various types that were referring to `async` specifically.

An example usage of `gen` blocks is

```rust
fn foo() -> impl Iterator<Item = i32> {
    gen {
        yield 42;
        for i in 5..18 {
            if i.is_even() { continue }
            yield i * 2;
        }
    }
}
```

The limitations (to be resolved) of the implementation are listed in the tracking issue
2023-10-29 00:03:52 +00:00
..
auxiliary
allow-features-empty.rs
allow-features-empty.stderr
allow-features.rs
allow-features.stderr
bench.rs
bench.stderr
doc-rust-logo.rs rustdoc: remove rust logo from non-Rust crates 2023-10-08 20:17:53 -07:00
doc-rust-logo.stderr rustdoc: remove rust logo from non-Rust crates 2023-10-08 20:17:53 -07:00
duplicate-features.rs
duplicate-features.stderr
feature-gate-abi_amdgpu_kernel.rs
feature-gate-abi_amdgpu_kernel.stderr
feature-gate-abi_ptx.rs
feature-gate-abi_ptx.stderr
feature-gate-abi_unadjusted.rs
feature-gate-abi_unadjusted.stderr
feature-gate-abi-avr-interrupt.rs
feature-gate-abi-avr-interrupt.stderr
feature-gate-abi-msp430-interrupt.rs
feature-gate-abi-msp430-interrupt.stderr
feature-gate-abi-riscv-interrupt.rs
feature-gate-abi-riscv-interrupt.stderr
feature-gate-abi-x86-interrupt.rs
feature-gate-abi-x86-interrupt.stderr
feature-gate-abi.rs
feature-gate-abi.stderr
feature-gate-adt_const_params.rs
feature-gate-adt_const_params.stderr
feature-gate-alloc-error-handler.rs
feature-gate-alloc-error-handler.stderr
feature-gate-allocator_internals.rs
feature-gate-allocator_internals.stderr
feature-gate-allow-internal-unsafe-nested-macro.rs
feature-gate-allow-internal-unsafe-nested-macro.stderr
feature-gate-allow-internal-unstable-nested-macro.rs
feature-gate-allow-internal-unstable-nested-macro.stderr
feature-gate-allow-internal-unstable-struct.rs
feature-gate-allow-internal-unstable-struct.stderr
feature-gate-allow-internal-unstable.rs
feature-gate-allow-internal-unstable.stderr
feature-gate-arbitrary_self_types-raw-pointer.rs
feature-gate-arbitrary_self_types-raw-pointer.stderr
feature-gate-arbitrary-self-types.rs
feature-gate-arbitrary-self-types.stderr
feature-gate-asm_const.rs
feature-gate-asm_const.stderr
feature-gate-asm_experimental_arch.rs
feature-gate-asm_experimental_arch.stderr
feature-gate-asm_unwind.rs
feature-gate-asm_unwind.stderr
feature-gate-assoc-type-defaults.rs
feature-gate-assoc-type-defaults.stderr
feature-gate-associated_const_equality.rs
feature-gate-associated_const_equality.stderr
feature-gate-associated_type_bounds.rs Tweak wording of E0562 2023-10-04 19:51:43 +00:00
feature-gate-associated_type_bounds.stderr Tweak wording of E0562 2023-10-04 19:51:43 +00:00
feature-gate-auto-traits.rs
feature-gate-auto-traits.stderr
feature-gate-box_patterns.rs
feature-gate-box_patterns.stderr
feature-gate-builtin_syntax.rs
feature-gate-builtin_syntax.stderr
feature-gate-c_variadic.rs
feature-gate-c_variadic.stderr
feature-gate-cfg_overflow_checks.rs
feature-gate-cfg_overflow_checks.stderr
feature-gate-cfg_sanitize.rs
feature-gate-cfg_sanitize.stderr
feature-gate-cfg-relocation-model.rs
feature-gate-cfg-relocation-model.stderr
feature-gate-cfg-target-abi.rs
feature-gate-cfg-target-abi.stderr
feature-gate-cfg-target-compact.rs
feature-gate-cfg-target-compact.stderr
feature-gate-cfg-target-has-atomic-equal-alignment.rs
feature-gate-cfg-target-has-atomic-equal-alignment.stderr
feature-gate-cfg-target-has-atomic.rs
feature-gate-cfg-target-has-atomic.stderr
feature-gate-cfg-target-thread-local.rs
feature-gate-cfg-target-thread-local.stderr
feature-gate-cfg-version.rs
feature-gate-cfg-version.stderr
feature-gate-cfi_encoding.rs
feature-gate-cfi_encoding.stderr
feature-gate-check-cfg.rs
feature-gate-check-cfg.stderr
feature-gate-closure_lifetime_binder.rs
feature-gate-closure_lifetime_binder.stderr
feature-gate-closure_track_caller.rs s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
feature-gate-closure_track_caller.stderr s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
feature-gate-collapse_debuginfo.rs
feature-gate-collapse_debuginfo.stderr
feature-gate-compiler-builtins.rs
feature-gate-compiler-builtins.stderr
feature-gate-concat_bytes.rs
feature-gate-concat_bytes.stderr
feature-gate-concat_idents2.rs
feature-gate-concat_idents2.stderr
feature-gate-concat_idents3.rs
feature-gate-concat_idents3.stderr
feature-gate-concat_idents.rs
feature-gate-concat_idents.stderr
feature-gate-const_refs_to_cell.rs
feature-gate-const-indexing.rs
feature-gate-coroutines.e2024.stderr Feature gate coroutine yield usage 2023-10-27 13:05:48 +00:00
feature-gate-coroutines.none.stderr Feature gate coroutine yield usage 2023-10-27 13:05:48 +00:00
feature-gate-coroutines.rs Feature gate coroutine yield usage 2023-10-27 13:05:48 +00:00
feature-gate-coverage-attribute.rs
feature-gate-coverage-attribute.stderr
feature-gate-custom_attribute2.rs
feature-gate-custom_attribute2.stderr
feature-gate-custom_attribute.rs
feature-gate-custom_attribute.stderr
feature-gate-custom_mir.rs
feature-gate-custom_mir.stderr
feature-gate-custom_test_frameworks.rs
feature-gate-custom_test_frameworks.stderr
feature-gate-decl_macro.rs
feature-gate-decl_macro.stderr
feature-gate-default_type_parameter_fallback.rs
feature-gate-default_type_parameter_fallback.stderr
feature-gate-deprecated_safe.rs
feature-gate-deprecated_safe.stderr
feature-gate-dispatch-from-dyn-cell.rs
feature-gate-dispatch-from-dyn-cell.stderr
feature-gate-dispatch-from-dyn-missing-impl.rs
feature-gate-dispatch-from-dyn-missing-impl.stderr
feature-gate-doc_cfg.rs
feature-gate-doc_cfg.stderr
feature-gate-doc_masked.rs
feature-gate-doc_masked.stderr
feature-gate-doc_notable_trait.rs
feature-gate-doc_notable_trait.stderr
feature-gate-exclusive-range-pattern.rs
feature-gate-exclusive-range-pattern.stderr
feature-gate-exhaustive-patterns.rs
feature-gate-exhaustive-patterns.stderr
feature-gate-explicit_tail_calls.rs
feature-gate-explicit_tail_calls.stderr
feature-gate-extern_absolute_paths.rs
feature-gate-extern_absolute_paths.stderr
feature-gate-extern_prelude.rs
feature-gate-extern_prelude.stderr
feature-gate-extern_types.rs
feature-gate-extern_types.stderr
feature-gate-feature-gate.rs
feature-gate-feature-gate.stderr
feature-gate-ffi_const.rs
feature-gate-ffi_const.stderr
feature-gate-ffi_pure.rs
feature-gate-ffi_pure.stderr
feature-gate-ffi_returns_twice.rs
feature-gate-ffi_returns_twice.stderr
feature-gate-fn_align.rs
feature-gate-fn_align.stderr
feature-gate-format_args_nl.rs
feature-gate-format_args_nl.stderr
feature-gate-fundamental.rs
feature-gate-fundamental.stderr
feature-gate-gen_blocks.e2024.stderr Feature gate gen blocks, even in 2024 edition 2023-10-27 13:05:48 +00:00
feature-gate-gen_blocks.none.stderr Feature gate gen blocks, even in 2024 edition 2023-10-27 13:05:48 +00:00
feature-gate-gen_blocks.rs Feature gate gen blocks, even in 2024 edition 2023-10-27 13:05:48 +00:00
feature-gate-generic_arg_infer.normal.stderr
feature-gate-generic_arg_infer.rs
feature-gate-generic_associated_types_extended.rs
feature-gate-generic_associated_types_extended.stderr
feature-gate-impl_trait_in_assoc_type.rs
feature-gate-impl_trait_in_assoc_type.stderr
feature-gate-impl_trait_in_fn_trait_return.rs Tweak wording of E0562 2023-10-04 19:51:43 +00:00
feature-gate-impl_trait_in_fn_trait_return.stderr Tweak wording of E0562 2023-10-04 19:51:43 +00:00
feature-gate-imported_main.rs
feature-gate-imported_main.stderr
feature-gate-inherent_associated_types.rs
feature-gate-inherent_associated_types.stderr
feature-gate-inline_const_pat.rs
feature-gate-inline_const_pat.stderr
feature-gate-inline_const.rs
feature-gate-inline_const.stderr
feature-gate-intrinsics.rs
feature-gate-intrinsics.stderr
feature-gate-is_sorted.rs
feature-gate-is_sorted.stderr
feature-gate-lang-items.rs
feature-gate-lang-items.stderr
feature-gate-large-assignments.rs
feature-gate-large-assignments.stderr
feature-gate-link_cfg.rs
feature-gate-link_cfg.stderr
feature-gate-link_llvm_intrinsics.rs
feature-gate-link_llvm_intrinsics.stderr
feature-gate-linkage.rs
feature-gate-linkage.stderr
feature-gate-lint-reasons.rs
feature-gate-lint-reasons.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
feature-gate-log_syntax2.rs
feature-gate-log_syntax2.stderr
feature-gate-log_syntax2.stdout
feature-gate-log_syntax.rs
feature-gate-log_syntax.stderr
feature-gate-log_syntax.stdout
feature-gate-marker_trait_attr.rs
feature-gate-marker_trait_attr.stderr
feature-gate-may-dangle.rs
feature-gate-may-dangle.stderr
feature-gate-min_const_fn.rs
feature-gate-min_const_fn.stderr
feature-gate-more-qualified-paths.rs
feature-gate-more-qualified-paths.stderr
feature-gate-multiple_supertrait_upcastable.rs
feature-gate-multiple_supertrait_upcastable.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
feature-gate-naked_functions.rs
feature-gate-naked_functions.stderr
feature-gate-native_link_modifiers_as_needed.rs
feature-gate-native_link_modifiers_as_needed.stderr
feature-gate-needs-allocator.rs
feature-gate-needs-allocator.stderr
feature-gate-negate-unsigned.rs
feature-gate-negate-unsigned.stderr
feature-gate-negative_bounds.rs
feature-gate-negative_bounds.stderr
feature-gate-never_type.rs
feature-gate-never_type.stderr
feature-gate-no_core.rs
feature-gate-no_core.stderr
feature-gate-no_sanitize.rs
feature-gate-no_sanitize.stderr
feature-gate-non_exhaustive_omitted_patterns_lint.rs Lint non_exhaustive_omitted_patterns per column 2023-10-14 19:39:18 +02:00
feature-gate-non_exhaustive_omitted_patterns_lint.stderr Lint non_exhaustive_omitted_patterns per column 2023-10-14 19:39:18 +02:00
feature-gate-non_lifetime_binders.rs
feature-gate-non_lifetime_binders.stderr
feature-gate-object_safe_for_dispatch.rs
feature-gate-object_safe_for_dispatch.stderr
feature-gate-omit-gdb-pretty-printer-section.rs
feature-gate-omit-gdb-pretty-printer-section.stderr
feature-gate-optimize_attribute.rs
feature-gate-optimize_attribute.stderr
feature-gate-overlapping_marker_traits.rs
feature-gate-overlapping_marker_traits.stderr
feature-gate-precise_pointer_size_matching.rs
feature-gate-precise_pointer_size_matching.stderr
feature-gate-prelude_import.rs
feature-gate-prelude_import.stderr
feature-gate-proc_macro_byte_character.rs
feature-gate-proc_macro_byte_character.stderr
feature-gate-profiler-runtime.rs
feature-gate-profiler-runtime.stderr
feature-gate-public_private_dependencies.rs
feature-gate-register_tool.rs
feature-gate-register_tool.stderr
feature-gate-repr128.rs
feature-gate-repr128.stderr
feature-gate-repr-simd.rs
feature-gate-repr-simd.stderr
feature-gate-return_type_notation.cfg_current.stderr
feature-gate-return_type_notation.cfg_next.stderr
feature-gate-return_type_notation.cfg.stderr Stabilize AFIT and RPITIT 2023-10-13 21:01:36 +00:00
feature-gate-return_type_notation.no_current.stderr
feature-gate-return_type_notation.no_next.stderr
feature-gate-return_type_notation.no.stderr Stabilize AFIT and RPITIT 2023-10-13 21:01:36 +00:00
feature-gate-return_type_notation.rs Stabilize AFIT and RPITIT 2023-10-13 21:01:36 +00:00
feature-gate-rust_cold_cc.rs
feature-gate-rust_cold_cc.stderr
feature-gate-rustc_const_unstable.rs
feature-gate-rustc_const_unstable.stderr
feature-gate-rustc-allow-const-fn-unstable.rs
feature-gate-rustc-allow-const-fn-unstable.stderr
feature-gate-rustc-attrs-1.rs
feature-gate-rustc-attrs-1.stderr
feature-gate-rustc-attrs.rs
feature-gate-rustc-attrs.stderr
feature-gate-rustdoc_internals.rs
feature-gate-rustdoc_internals.stderr
feature-gate-simd-ffi.rs
feature-gate-simd-ffi.stderr
feature-gate-simd.rs
feature-gate-simd.stderr
feature-gate-staged_api.rs Update since stability attributes in tests 2023-10-23 13:04:47 -07:00
feature-gate-staged_api.stderr Update since stability attributes in tests 2023-10-23 13:04:47 -07:00
feature-gate-start.rs
feature-gate-start.stderr
feature-gate-stmt_expr_attributes.rs
feature-gate-stmt_expr_attributes.stderr
feature-gate-strict_provenance.rs
feature-gate-strict_provenance.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
feature-gate-test_unstable_lint.rs
feature-gate-test_unstable_lint.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
feature-gate-thread_local.rs
feature-gate-thread_local.stderr
feature-gate-trace_macros.rs
feature-gate-trace_macros.stderr
feature-gate-trait_upcasting.rs
feature-gate-trait_upcasting.stderr
feature-gate-trait-alias.rs
feature-gate-trait-alias.stderr
feature-gate-transparent_unions.rs
feature-gate-transparent_unions.stderr
feature-gate-trivial_bounds-lint.rs
feature-gate-trivial_bounds.rs
feature-gate-trivial_bounds.stderr
feature-gate-try_blocks.rs
feature-gate-try_blocks.stderr
feature-gate-type_alias_impl_trait.rs
feature-gate-type_ascription.rs
feature-gate-type_ascription.stderr
feature-gate-type_privacy_lints.rs
feature-gate-type_privacy_lints.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
feature-gate-unboxed-closures-manual-impls.rs
feature-gate-unboxed-closures-manual-impls.stderr
feature-gate-unboxed-closures-method-calls.rs
feature-gate-unboxed-closures-method-calls.stderr
feature-gate-unboxed-closures-ufcs-calls.rs
feature-gate-unboxed-closures-ufcs-calls.stderr
feature-gate-unboxed-closures.rs
feature-gate-unboxed-closures.stderr
feature-gate-unix_sigpipe.rs
feature-gate-unix_sigpipe.stderr
feature-gate-unnamed_fields.rs
feature-gate-unnamed_fields.stderr
feature-gate-unsafe_pin_internals.rs
feature-gate-unsafe_pin_internals.stderr
feature-gate-unsized_fn_params.rs
feature-gate-unsized_fn_params.stderr
feature-gate-unsized_locals.rs
feature-gate-unsized_locals.stderr
feature-gate-unsized_tuple_coercion.rs
feature-gate-unsized_tuple_coercion.stderr
feature-gate-used_with_arg.rs
feature-gate-used_with_arg.stderr
feature-gate-vectorcall.rs
feature-gate-vectorcall.stderr
feature-gate-wasm_abi.rs
feature-gate-wasm_abi.stderr
feature-gate-with_negative_coherence.rs
feature-gate-with_negative_coherence.stderr
feature-gate-yeet_expr-in-cfg.rs
feature-gate-yeet_expr-in-cfg.stderr
feature-gate-yeet_expr.rs
feature-gate-yeet_expr.stderr
feature-gated-feature-in-macro-arg.rs
feature-gated-feature-in-macro-arg.stderr
gated-bad-feature.rs
gated-bad-feature.stderr
issue-43106-gating-of-bench.rs
issue-43106-gating-of-bench.stderr Tweak suggestion spans for invalid crate-level inner attribute 2023-10-26 18:35:09 +00:00
issue-43106-gating-of-builtin-attrs-error.rs Tweak suggestion spans for invalid crate-level inner attribute 2023-10-26 18:35:09 +00:00
issue-43106-gating-of-builtin-attrs-error.stderr Tweak suggestion spans for invalid crate-level inner attribute 2023-10-26 18:35:09 +00:00
issue-43106-gating-of-builtin-attrs.rs
issue-43106-gating-of-builtin-attrs.stderr
issue-43106-gating-of-deprecated.rs
issue-43106-gating-of-derive-2.rs
issue-43106-gating-of-derive-2.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
issue-43106-gating-of-derive.rs
issue-43106-gating-of-derive.stderr
issue-43106-gating-of-macro_escape.rs
issue-43106-gating-of-macro_escape.stderr
issue-43106-gating-of-macro_use.rs
issue-43106-gating-of-macro_use.stderr
issue-43106-gating-of-proc_macro_derive.rs
issue-43106-gating-of-proc_macro_derive.stderr
issue-43106-gating-of-stable.rs
issue-43106-gating-of-stable.stderr
issue-43106-gating-of-test.rs
issue-43106-gating-of-test.stderr Tweak suggestion spans for invalid crate-level inner attribute 2023-10-26 18:35:09 +00:00
issue-43106-gating-of-unstable.rs
issue-43106-gating-of-unstable.stderr
issue-49983-see-issue-0.rs
issue-49983-see-issue-0.stderr
rustc-private.rs
rustc-private.stderr
soft-syntax-gates-with-errors.rs
soft-syntax-gates-with-errors.stderr
soft-syntax-gates-without-errors.rs
soft-syntax-gates-without-errors.stderr
stability-attribute-consistency.rs
stability-attribute-consistency.stderr
stable-features.rs
stable-features.stderr
test-listing-format-json.rs
test-listing-format-json.run.stderr
trace_macros-gate.rs
trace_macros-gate.stderr
unknown-feature.rs
unknown-feature.stderr
unstable-attribute-allow-issue-0.rs
unstable-attribute-allow-issue-0.stderr