Skip to content

Latest commit

 

History

History
186 lines (157 loc) · 39.9 KB

Language Feature Status.md

File metadata and controls

186 lines (157 loc) · 39.9 KB

Language Feature Status

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.

Working Set

Feature Branch State Developer Reviewer IDE Buddy LDM Champ
First-class Span Types FirstClassSpan In Progress jjonescz cston, 333fred 333fred, stephentoub
Partial properties partial-properties In Progress RikkiGibson jcouv, 333fred Cosifne 333fred, RikkiGibson
Ref Struct Interfaces RefStructInterfaces In Progress AlekseyTs cston, jjonescz ToddGrun agocke, jaredpar
Semi-auto-properties semi-auto-props In Progress Youssef1313 333fred, RikkiGibson CyrusNajmabadi CyrusNajmabadi
Default in deconstruction decon-default In Progress jcouv gafter jcouv
Roles/Extensions roles In Progress jcouv AlekseyTs, jjonescz CyrusNajmabadi MadsTorgersen
Escape character N/A Merged into 17.9p1 CyrusNajmabadi jcouv, RikkiGibson (no IDE impact) CyrusNajmabadi
Method group natural type improvements main Merged into 17.9p2 jcouv AlekseyTs, cston (no IDE impact) jcouv
Lock object LockObject Merged into 17.10p2 jjonescz cston, RikkiGibson CyrusNajmabadi (needs IDE fixer) stephentoub
Implicit indexer access in object initializers main Merged into 17.9p3 jcouv AlekseyTs, cston (no IDE impact)
Params-collections main Merged to 17.10p3 AlekseyTs RikkiGibson, 333fred akhera99 (needs IDE fixer) MadsTorgersen, AlekseyTs
Ref/unsafe in iterators/async RefInAsync Merged into 17.11p2 jjonescz AlekseyTs, cston (no IDE impact)

C# 12.0

Feature Branch State Developer Reviewer LDM Champ
ref readonly parameters RefReadonly Merged into 17.8p2 jjonescz jcouv, AlekseyTs akhera99
Collection Expressions CollectionLiterals Merged into 17.7p5 cston 333fred, RikkiGibson CyrusNajmabadi
Interceptors (experimental feature) interceptors Merged into 17.7p3 RikkiGibson cston, jcouv akhera99
Inline Arrays InlineArrays Merged into 17.7p3 AlekseyTs cston, jjonescz Cosifne
nameof accessing instance members main Merged into 17.7p1 YairHalberstadt, jjonescz 333fred, AlekseyTs 333fred
Using aliases for any type main Merged into 17.6.P3 CyrusNajmabadi jcouv cston CyrusNajmabadi
Primary Constructors PrimaryConstructors Merged into 17.6.P2 AlekseyTs cston, jjonescz akhera99
Lambda optional parameters lambda-default-parameters Merged into 17.5p2 adamperlin, jjonescz 333fred, cston captainsafia
Experimental attribute main Merged into 17.8p2 jcouv cston, jjonescz jcouv

C# 11.0

Feature Branch State Developer Reviewer LDM Champ
File-local types file-types Merged into 17.4p1 RikkiGibson jcouv, cston stephentoub
ref fields ref-fields Merged into 17.3p3 cston RikkiGibson, AlekseyTs jaredpar
Required members main Merged into 17.3p2 333fred jcouv, RikkiGibson 333fred
DIM for Static Members DefaultInterfaceImplementation Merged into 17.3p2 AlekseyTs 333fred, jcouv MadsTorgersen
Numeric IntPtr numeric-intptr Merged into 17.3p2 jcouv cston, 333fred jcouv
Unsigned Right Shift UnsignedRightShift Merged into 17.3p1 AlekseyTs 333fred, jcouv AlekseyTs
Utf8 String Literals main Merged into 17.3p1 AlekseyTs cston, RikkiGibson MadsTorgersen
Pattern matching on ReadOnlySpan<char> patterns-span-char Merged into 17.3p1 YairHalberstadt cston, RikkiGibson jcouv
Checked Operators CheckedUserDefinedOperators Merged into 17.3p1 AlekseyTs 333fred, chsienki AlekseyTs
auto-default structs main Merged into 17.3p1 RikkiGibson cston, jcouv
Newlines in interpolations main Merged in 17.1p1 CyrusNajmabadi jcouv, chsienki CyrusNajmabadi
List patterns main Merged in 17.1p2 alrz jcouv, 333fred 333fred
Raw string literals main Merged into 17.2 CyrusNajmabadi jcouv CyrusNajmabadi
Cache delegates for static method group main Merged into 17.2 pawchen AlekseyTs, jcouv AlekseyTs
nameof(parameter) main Merged into 17.3p2 jcouv AlekseyTs, RikkiGibson jcouv
Relaxing Shift Operator main Merged into 17.3p2 AlekseyTs 333fred, jcouv MadsTorgersen
Generic attributes main Merged into 17.0p4 AviAvni RikkiGibson, jcouv mattwar

C# 10.0

Feature Branch State Developer Reviewer LDM Champ
Record structs main Merged into 16.11 jcouv AlekseyTs, RikkiGibson jcouv
Global Using Directive main Merged into 16.11 AlekseyTs 333fred, cston AlekseyTs
Improved Definite Assignment main Merged into 17.0 RikkiGibson jcouv jaredpar
Constant Interpolated Strings main Merged into 16.9p3 kevinsun-dev 333fred jaredar, agocke
Extended property patterns main Merged into 17.0 alrz jcouv, 333fred 333fred
Sealed record ToString main Merged thomaslevesque jcouv 333fred
Source Generator V2 APIs main Merged into 17.0p2 chsienki rikkigibson, jaredpar, cston N/A
Mix declarations and variables in deconstruction main Merged into 16.10 YairHalberstadt jcouv MadsTorgersen
Async method builder override main Merged into 17.0p2 jcouv cston, RikkiGibson stephentoub
Enhanced #line directive main Merged into 17.0p2 cston jcouv, RikkiGibson MadsTorgersen
Lambda improvements main Merged into 17.0p2 cston 333fred, jcouv jaredpar
Static Abstract Members In Interfaces C# 10 Preview main Merged into 17.0p2 AlekseyTs 333fred, RikkiGibson MadsTorgersen
Interpolated string improvements main Merged into 17.0p3 333fred AlekseyTs, chsienki jaredpar
File-scoped namespace main Merged into 17.0p3 RikkiGibson jcouv, chsienki CyrusNajmabadi
Parameterless struct constructors main Merged into 17.0p3 cston jcouv, 333fred jcouv
Caller expression attribute main Merged into 17.0p3 Youssef1313 333fred,AlekseyTs jcouv

VB 17.0

Feature Branch State Developer Reviewer LDM Champ
Caller expression attribute main Merged into 17.0p3 Youssef1313 333fred,AlekseyTs jcouv

VB 16.9

Feature Branch State Developer Reviewer LDM Champ
Enable consumption of init-only properties main Merged (16.9p3) AlekseyTs jcouv N/A

C# 9

Feature Branch State Developer Reviewer LDM Champ
Target-typed new target-typed-new Merged into 16.7p1 alrz jcouv jcouv
Skip locals init localsinit Merged t-camaia, agocke jaredpar agocke
Lambda discard parameters main Merged jcouv AlekseyTs, chsienki jcouv
Native ints main Merged into 16.7p1 cston 333fred, gafter jaredpar
Attributes on local functions features/local-function-attributes Merged RikkiGibson agocke agocke
Function pointers main Merged into 16.7p3 333fred AlekseyTs jaredpar
Pattern matching improvements main Merged into 16.7p1 gafter RikkiGibson,agocke gafter
Static lambdas main Merged in 16.7p4 CyrusNajmabadi jcouv jcouv
Records main Merged into 16.7p3 agocke gafter, 333fred agocke
Target-typed conditional features/target-typing Merged into 16.7p4 gafter agocke, RikkiGibson gafter
Covariant Returns features/covariant-returns Merged into 16.8p2 gafter AlekseyTs, agocke gafter
Extension GetEnumerator main Merged into 16.8p2 YairHalberstadt 333fred 333fred
Module initializers main Merged in 16.7p4 RikkiGibson jnm2 AlekseyTs gafter
Extending Partial main Merged into 16.7p2 RikkiGibson chsienki jaredpar
Top-level statements features/SimplePrograms Merged into 16.7p3 AlekseyTs cston, RikkiGibson MadsTorgersen

C# 8.0

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

VB 16.0

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

C# 7.3

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

C# 7.2 fixes

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 - -

C# 7.2

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

C# 7.1

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

FAQ

  • 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.