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.
Feature | Branch | State | Developer | Reviewer | IDE Buddy | LDM Champ |
---|---|---|---|---|---|---|
First-class Span Types | FirstClassSpan | In Progress | jjonescz | cston, 333fred | 333fred, stephentoub | |
Default in deconstruction | decon-default | In Progress | jcouv | gafter | jcouv | |
Roles/Extensions | roles | In Progress | jcouv | AlekseyTs, jjonescz | CyrusNajmabadi | MadsTorgersen |
field keyword in properties |
field-keyword | Merged into 17.12p3 | Youssef1313, cston | 333fred, RikkiGibson | CyrusNajmabadi | CyrusNajmabadi |
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 |
---|---|---|---|---|---|
Default Interface Methods | main | Merged to dev16.1 preview2 | AlekseyTs | gafter | gafter |
Nullable reference type | main | Merged to dev16.0 preview1 | cston, jcouv | AlekseyTs, 333fred | mattwar |
Recursive patterns | main | Merged to dev16.0 preview2 | gafter | agocke, cston | gafter |
Async streams | main | Merged to dev16.0 preview1 | jcouv | agocke | stephentoub |
Enhanced using | main | Merged to dev16.0 preview2 | chsienki | agocke | jaredpar |
Ranges | main | Merged to dev16.0 preview1 | agocke | cston | jaredpar |
Null-coalescing Assignment | main | Merged to dev16.0 preview1 | 333fred | cston | gafter |
Alternative interpolated verbatim strings | main | Merged to dev16.0 preview1 | jcouv | cston | jcouv |
stackalloc in nested contexts | main | Merged to dev16.2 preview1 | gafter | - | gafter |
Unmanaged generic structs | main | Merged to dev16.1 preview1 | RikkiGibson | - | jaredpar |
Static local functions | main | Merged in dev16.0 preview2 | cston | jaredpar | jcouv |
Readonly members | main | Merged to dev16.1 preview2 | RikkiGibson | TBD | jaredpar |
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/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 |
- Is target version a guarantee?: No. It's explicitly not a guarantee. This is just the planned and ongoing work to the best of our knowledge at this time.
- Where are these State values defined?: Take a look at the Developing a Language Feature document.