Repository: rust-lang/rust
File: compiler/rustc_feature/src/unstable.rs (Rust)

Code before:
    (unstable, naked_functions_target_feature, "1.86.0", Some(138568)),
    /// Allows specifying the as-needed link modifier
    (unstable, native_link_modifiers_as_needed, "1.53.0", Some(81490)),
    /// Allow negative trait implementations.
    (unstable, negative_impls, "1.44.0", Some(68318)),
    /// Allows the `!` pattern.
    (incomplete, never_patterns, "1.76.0", Some(118155)),
    /// Allows the `!` type. Does not imply 'exhaustive_patterns' (below) any more.
    (unstable, never_type, "1.13.0", Some(35121)),
    /// Switch `..` syntax to use the new (`Copy + IntoIterator`) range types.
    (unstable, new_range, "1.86.0", Some(123741)),
    /// Allows `#![no_core]`.
    (unstable, no_core, "1.3.0", Some(29639)),
    /// Allows using the `non_exhaustive_omitted_patterns` lint.
    (unstable, non_exhaustive_omitted_patterns_lint, "1.57.0", Some(89554)),
    /// Allows `for<T>` binders in where-clauses
    (incomplete, non_lifetime_binders, "1.69.0", Some(108185)),
    /// Target feaures on nvptx.
    (unstable, nvptx_target_feature, "1.91.0", Some(150254)),
    /// Allows using enums in offset_of!
    (unstable, offset_of_enum, "1.75.0", Some(120141)),
    /// Allows using fields with slice type in offset_of!
    (unstable, offset_of_slice, "1.81.0", Some(126151)),
    /// Allows using generics in more complex const expressions, based on definitional equality.
    // TODO: create tracking issue
    (unstable, opaque_generic_const_args, "CURRENT_RUSTC_VERSION", None),
    /// Allows using `#[optimize(X)]`.
    (unstable, optimize_attribute, "1.34.0", Some(54882)),
    /// Allows specifying nop padding on functions for dynamic patching.
    (unstable, patchable_function_entry, "1.81.0", Some(123115)),
    /// Experimental features that make `Pin` more ergonomic.
    (incomplete, pin_ergonomics, "1.83.0", Some(130494)),
    /// Allows postfix match `expr.match { ... }`
    (unstable, postfix_match, "1.79.0", Some(121618)),
    /// Target features on powerpc.
    (unstable, powerpc_target_feature, "1.27.0", Some(150255)),
    /// The prfchw target feature on x86.
    (unstable, prfchw_target_feature, "1.78.0", Some(150256)),
    /// Allows macro attributes on expressions, statements and non-inline modules.
    (unstable, proc_macro_hygiene, "1.30.0", Some(54727)),
    /// Allows the use of raw-dylibs on ELF platforms
    (incomplete, raw_dylib_elf, "1.87.0", Some(135694)),
    (unstable, reborrow, "1.91.0", Some(145612)),
    /// Makes `&` and `&mut` patterns eat only one layer of references in Rust 2024.
    (incomplete, ref_pat_eat_one_layer_2024, "1.79.0", Some(123076)),
    /// Makes `&` and `&mut` patterns eat only one layer of references in Rust 2024—structural variant
    (incomplete, ref_pat_eat_one_layer_2024_structural, "1.81.0", Some(123076)),
    /// Allows using the `#[register_tool]` attribute.
    (unstable, register_tool, "1.41.0", Some(66079)),
    /// Allows `repr(simd)` and importing the various simd intrinsics.
    (unstable, repr_simd, "1.4.0", Some(27731)),

Review comment (suggestion):
```suggestion
    (unstable, opaque_generic_const_args, "CURRENT_RUSTC_VERSION", Some(151972)),
```

Code after:
    (incomplete, mut_ref, "1.79.0", Some(123076)),
    /// Allows using `#[naked]` on `extern "Rust"` functions.
    (unstable, naked_functions_rustic_abi, "1.88.0", Some(138997)),
    /// Allows using `#[target_feature(enable = "...")]` on `#[naked]` on functions.
    (unstable, naked_functions_target_feature, "1.86.0", Some(138568)),
    /// Allows specifying the as-needed link modifier
    (unstable, native_link_modifiers_as_needed, "1.53.0", Some(81490)),
    /// Allow negative trait implementations.
    (unstable, negative_impls, "1.44.0", Some(68318)),
    /// Allows the `!` pattern.
    (incomplete, never_patterns, "1.76.0", Some(118155)),
    /// Allows the `!` type. Does not imply 'exhaustive_patterns' (below) any more.
    (unstable, never_type, "1.13.0", Some(35121)),
    /// Switch `..` syntax to use the new (`Copy + IntoIterator`) range types.
    (unstable, new_range, "1.86.0", Some(123741)),
    /// Allows `#![no_core]`.
    (unstable, no_core, "1.3.0", Some(29639)),
    /// Allows using the `non_exhaustive_omitted_patterns` lint.
    (unstable, non_exhaustive_omitted_patterns_lint, "1.57.0", Some(89554)),
    /// Allows `for<T>` binders in where-clauses
    (incomplete, non_lifetime_binders, "1.69.0", Some(108185)),
    /// Target feaures on nvptx.
    (unstable, nvptx_target_feature, "1.91.0", Some(150254)),
    /// Allows using enums in offset_of!
    (unstable, offset_of_enum, "1.75.0", Some(120141)),
    /// Allows using fields with slice type in offset_of!
    (unstable, offset_of_slice, "1.81.0", Some(126151)),
    /// Allows using generics in more complex const expressions, based on definitional equality.
    (unstable, opaque_generic_const_args, "CURRENT_RUSTC_VERSION", Some(151972)),
    /// Allows using `#[optimize(X)]`.
    (unstable, optimize_attribute, "1.34.0", Some(54882)),
    /// Allows specifying nop padding on functions for dynamic patching.
    (unstable, patchable_function_entry, "1.81.0", Some(123115)),
    /// Experimental features that make `Pin` more ergonomic.
    (incomplete, pin_ergonomics, "1.83.0", Some(130494)),
    /// Allows postfix match `expr.match { ... }`
    (unstable, postfix_match, "1.79.0", Some(121618)),
    /// Target features on powerpc.
    (unstable, powerpc_target_feature, "1.27.0", Some(150255)),
    /// The prfchw target feature on x86.
    (unstable, prfchw_target_feature, "1.78.0", Some(150256)),
    /// Allows macro attributes on expressions, statements and non-inline modules.
    (unstable, proc_macro_hygiene, "1.30.0", Some(54727)),
    /// Allows the use of raw-dylibs on ELF platforms
    (incomplete, raw_dylib_elf, "1.87.0", Some(135694)),
    (unstable, reborrow, "1.91.0", Some(145612)),
    /// Makes `&` and `&mut` patterns eat only one layer of references in Rust 2024.
    (incomplete, ref_pat_eat_one_layer_2024, "1.79.0", Some(123076)),
    /// Makes `&` and `&mut` patterns eat only one layer of references in Rust 2024—structural variant
    (incomplete, ref_pat_eat_one_layer_2024_structural, "1.81.0", Some(123076)),
    /// Allows using the `#[register_tool]` attribute.