docs/Language Feature Status.md
This document reflects the status, and planned work in progress, for the compiler team. It is a live document and will be updated as work progresses, features are added / removed, and as work on feature progresses. This is not an exhaustive list of our features but rather the ones which have active development efforts behind them.
The "Feature" column contains a link to the championed proposal or doc for the feature.
The "State" column contains a link to the test plan issue for the feature. The test plan should have a "Feature - XYZ" label, which is also used on PRs and issues for the feature.
Merged features should be in the bottom portion of the table (in descending order from earliest to latest merged), while in-progress features should be in the top portion of the table.
When a feature is merged to the main branch, its entry should be moved to the bottom of the table and its "State" value should be updated to record the relevant version number.
| Feature | Branch | State | Developer | Reviewer | IDE Buddy | LDM Champ |
|---|---|---|---|---|---|---|
| Recognizing 'unmanaged' constraint | main | Merged into 17.13 P2 | AlekseyTs | cston, 333fred | (no IDE impact) | jaredpar |
| Overload Resolution Priority | main | Merged into 17.13 P3 | AlekseyTs | 333fred, cston | (no IDE impact) | 333fred |
| Feature | Branch | State | Developer | Reviewer | LDM Champ |
|---|---|---|---|---|---|
| Caller expression attribute | main | Merged into 17.0p3 | Youssef1313 | 333fred,AlekseyTs | jcouv |
| Feature | Branch | State | Developer | Reviewer | LDM Champ |
|---|---|---|---|---|---|
| Enable consumption of init-only properties | main | Merged (16.9p3) | AlekseyTs | jcouv | N/A |
| Feature | Branch | State | Developer | Reviewer | LDM Champ |
|---|---|---|---|---|---|
| Line continuation comments | main | Merged in 16.1 (preview2) | paul1956 | AlekseyTs | gafter |
| Relax null-coalescing operator requirements | main | Merged in 16.0 | 333fred | cston | gafter |
| Feature | Branch | State | Developer | Reviewer | LDM Champ |
|---|---|---|---|---|---|
| blittable | None | Merged | None | - | jaredpar |
| Support == and != for tuples | main | Merged | jcouv | AlekseyTs | jcouv |
| strongname | main | Merged | tyoverby | agocke | jaredpar |
| Attribute on backing field | features/compiler | Merged | jcouv | AlekseyTs | jcouv |
| Ref Reassignment | main | Merged | agocke | vsadov | gafter |
| Constraints | main | Merged | OmarTawfik | vsadov | gafter |
| Stackalloc initializers | main | Merged | alrz | vsadov | jcouv |
| Custom fixed | main | Merged | vsadov | jcouv | jarepdar |
| Indexing movable fixed buffers | - | Merged | vsadov | jcouv | jarepdar |
| Improved overload candidates | features/compiler | Merged | gafter | cston | mattwar |
| Expression variables | main | Merged | AlekseyTs | gafter | AlekseyTs |
| Feature | Branch | State | Developer | Reviewer | LDM Champ |
|---|---|---|---|---|---|
ref and this ordering in ref extension | - | Merged | alrz | - | - |
Tiebreaker for by-val and in overloads | main | Merged | OmarTawfik | - | - |
| Feature | Branch | State | Developer | Reviewer | LDM Champ |
|---|---|---|---|---|---|
| ref readonly | main | Merged | vsadov, OmarTawfik | cston,gafter | jaredpar |
| interior pointer/Span<T>/ref struct | main | Merged | vsadov | gafter, jaredpar | jaredpar |
| non-trailing named arguments | main | Merged | jcouv | gafter | jcouv |
| private protected | main | Merged | gafter | jcouv | gafter |
| conditional ref operator | main | Merged | vsadov | cston | jaredpar |
| Digit separator after base specifier | main | Merged | alrz | - | gafter |
| Feature | Branch | State | Developer | Reviewer | LDM Champ |
|---|---|---|---|---|---|
| Async Main | main | Merged | tyoverby | vsadov | stephentoub |
| Default Expressions | main | Merged | jcouv | cston | jcouv |
| Ref Assemblies | main | Merged (IDE and project-system integrations ongoing) | jcouv | gafter | N/A |
| Infer tuple names | main | Merged | jcouv | gafter | jcouv |
| Pattern-matching with generics | main | Merged | gafter | agocke | gafter |