mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-29 19:47:38 +00:00
![]() Implement `#[rustc_default_body_unstable]` This PR implements a new stability attribute — `#[rustc_default_body_unstable]`. `#[rustc_default_body_unstable]` controls the stability of default bodies in traits. For example: ```rust pub trait Trait { #[rustc_default_body_unstable(feature = "feat", isssue = "none")] fn item() {} } ``` In order to implement `Trait` user needs to either - implement `item` (even though it has a default implementation) - enable `#![feature(feat)]` This is useful in conjunction with [`#[rustc_must_implement_one_of]`](https://github.com/rust-lang/rust/pull/92164), we may want to relax requirements for a trait, for example allowing implementing either of `PartialEq::{eq, ne}`, but do so in a safe way — making implementation of only `PartialEq::ne` unstable. r? `@Aaron1011` cc `@nrc` (iirc you were interested in this wrt `read_buf`), `@danielhenrymantilla` (you were interested in the related `#[rustc_must_implement_one_of]`) P.S. This is my first time working with stability attributes, so I'm not sure if I did everything right 😅 |
||
---|---|---|
.. | ||
analyze_source_file | ||
lev_distance | ||
source_map | ||
symbol | ||
analyze_source_file.rs | ||
caching_source_map_view.rs | ||
def_id.rs | ||
edition.rs | ||
fatal_error.rs | ||
hygiene.rs | ||
lev_distance.rs | ||
lib.rs | ||
profiling.rs | ||
source_map.rs | ||
span_encoding.rs | ||
symbol.rs | ||
tests.rs |