Skip to content

Commit

Permalink
Auto merge of rust-lang#117978 - petrochenkov:deleggate, r=TaKO8Ki,jo…
Browse files Browse the repository at this point in the history
…shtriplett

Add an experimental feature gate for function delegation

In accordance with the [process](https://github.com/rust-lang/lang-team/blob/master/src/how_to/experiment.md).

Detailed description of the feature can be found in the RFC repo - rust-lang/rfcs#3530.

TODO: find a lang team liaison - https://rust-lang.zulipchat.com/#narrow/stream/213817-t-lang/topic/fn.20delegation.20liaison/near/402506959.
  • Loading branch information
bors committed Nov 23, 2023
2 parents 91f7f26 + edf6c9c commit 237339f
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 0 deletions.
2 changes: 2 additions & 0 deletions compiler/rustc_feature/src/unstable.rs
Original file line number Diff line number Diff line change
Expand Up @@ -456,6 +456,8 @@ declare_features! (
(unstable, ffi_returns_twice, "1.34.0", Some(58314), None),
/// Allows using `#[repr(align(...))]` on function items
(unstable, fn_align, "1.53.0", Some(82232), None),
/// Support delegating implementation of functions to other already implemented functions.
(incomplete, fn_delegation, "CURRENT_RUSTC_VERSION", Some(118212), None),
/// Allows defining gen blocks and `gen fn`.
(unstable, gen_blocks, "1.75.0", Some(117078), None),
/// Infer generic args for both consts and types.
Expand Down
1 change: 1 addition & 0 deletions compiler/rustc_span/src/symbol.rs
Original file line number Diff line number Diff line change
Expand Up @@ -787,6 +787,7 @@ symbols! {
fmt,
fmul_fast,
fn_align,
fn_delegation,
fn_must_use,
fn_mut,
fn_once,
Expand Down
3 changes: 3 additions & 0 deletions tests/ui/feature-gates/feature-gate-fn_delegation.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
todo!(); //~ ERROR

fn main() {}
13 changes: 13 additions & 0 deletions tests/ui/feature-gates/feature-gate-fn_delegation.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
error: expected one of `!` or `::`, found `(`
--> $DIR/feature-gate-fn_delegation.rs:1:1
|
LL | todo!();
| ^^^^^^^
| |
| expected one of `!` or `::`
| in this macro invocation
|
= note: this error originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info)

error: aborting due to previous error

0 comments on commit 237339f

Please sign in to comment.