- Makes a dad joke "We saw that look on your face."
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.
We already have an internal working group for this topic, and they will be continuing to work on it. Related issues:
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:
- #113 - Discriminated unions
- #485 -
closed
type hierarchies - #3179 -
closed
enums - #2926 - Target-typed name lookup
- We don't want to gate this on DUs, but it will be highly complementary
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:
- #377 - Sequence expressions
- #3037 - Block-bodied switch expression arms
- #3038 - Enhanced switch statements
- #3086 - Expression blocks
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:
- #162 - Pattern-based
with
expressions- It is irksome, but do we have customers who really want it?
- Not sure we would spend time on this currently
- Moved to the backlog.
There are three interrelated, major improvements that need to be done in parallel: ref struct
s implementing interfaces, ref struct
s in
generics, and ref fields to ref structs
- #1148 -
where T : ref struct
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:
- #1757 -
params Span<T>
- #179 -
params IEnumerable
- #6489 - Discussion on
params Span<T>
- #6490 - Discussion on more
params
abilities - #6491 - Discussion on pattern-based
params
Finally, these are the issues that we don't feel need a working group to drive them.
- #133 - Property-scoped fields
- Still think it will be after
field
. - Into the backlog, as we are currently focused on #140.
- Still think it will be after
- #140 -
field
- Will proceed, try to get in for C# 12 after questions are resolved
- #1358 -
default
in deconstruction- Small and independent, but needs LDM input to proceed.
- #2302 - Efficient
params
and string formatting- Was split up into multiple issues, some of which are already done. Will close and link.
- #2180 - Allow omitting unused parameters
- We don't think this is currently important. Will move to the backlog.
- #2691 - Primary Constructors
- Still needs an agreed-upon proposal. We've been meaning to bring one for discussion.
- #3507 - Ignored directive support
- Leaving as is
- #3658 - Repeated Attributes in Partial Members
- We're unlikely to make progress on this ourselves, but would accept community contributions here. Moved to Any Time.