Back to Csharplang

C# Language Design Meeting for September 26th, 2022

meetings/2022/LDM-2022-09-26.md

latest5.5 KB
Original Source

C# Language Design Meeting for September 26th, 2022

Agenda

Quote of the day

  • Makes a dad joke "We saw that look on your face."

Working set triage

Today, we went through a significant portion of the current working set of items, and triaged them into a few categories:

  • Working group themes. We had good success with a smaller working group on required members, and we would like to extend the same strategy to other larger items. For each such area, we'll create a working group to investigate all related issues.
  • Ungrouped features. These are generally smaller features or features with a relatively straightforward design that don't need large amounts of design time to pursue.

Importantly, we didn't get through everything in the working set today, so some of these categories are currently light. We'll finish our pass next meeting.

Roles & Extensions

We already have an internal working group for this topic, and they will be continuing to work on it. Related issues:

Discriminated Unions

This is one of the biggest things that we think will benefit from a smaller group to make design progress. There are a number of areas to investigate, as demonstrated by the open related issues:

Bridging statements and expressions

We think there are two main subcategories here: the general feature of block expressions, and more specific improvements and unification of switch statements and expressions. Related issues:

Construction improvements

We have a few issues related to general construction improvements, such as generalized support for factories, support for final initializers, generalized with support, and others. Related issues:

ref struct improvements

There are three interrelated, major improvements that need to be done in parallel: ref structs implementing interfaces, ref structs in generics, and ref fields to ref structs

params improvements

This doesn't need a full group, just a single dev to investigate and bring back a list of all the things to support in params. The Span<T> is blocked on runtime support, but the other parts of the feature can proceed without waiting for it. Related issues:

Ungrouped

Finally, these are the issues that we don't feel need a working group to drive them.