- "Features ready to eat"
The LDM is going on break for 3 weeks due to member absences, and the compiler team is starting to wrap up on C# 11 bugs. We therefore took today to triage through smaller features and prototyping work we'd like to start on as we wrap up. The former should be simple features that don't need further design work, and the latter should be features where a prototype would serve to further the design.
Important note: This list is longer than the compiler team will be able to look at in the next few weeks. Think of it as a shortlist, nothing more.
This feature has not been looked at much by the full LDM, but the proposal seems straightforward, follows our existing rules for partial methods, and avoids complicated questions on what to do for fully-auto properties. We'll put it on the list.
We originally wanted to look at this in conjunction with global using
s, but didn't get to it. It's on the list.
Another one we wanted to get to during 11, but ran out of time. It's on the list.
This is our second-highest upvoted Any Time
milestone issue, and continues C#'s operator monad over nulls (along with the previous issue). It's on the list.
This issue is specifically for params IEnumerable
parameters, not including Span<T>
or other possible variations. And we think that's part of the problem with trying to approach
this right now: there's too many questions about what exactly to support. We think this has too many questions to be on the shortlist.
Obviously, this is not in the "go implement in the next few weeks" category. However, we think that starting to prototype will help inform our design choices in this space, and this is feature is (by a large margin) the most up-voted issue on csharplang. Protoyping is on the list.
This is another area where we think prototypes will help drive the conversation, especially since our current questions are around feasibility of implementation. Prototyping/initial implementation is on the list.
This is fairly simple and non-complicated. However, very rarely for a csharplang issue, this issue has no upvotes or activity of any kind, and some members of the LDT are conflicted on whether the feature is worth it. Not on the list.
Would be nice to have, but only in conjunction with the rest of the simple programs feature. Implementation might be one of the simplest ever features in the compiler, but without the tooling to accompany it we don't know that this is the right design. Not on the list.
The last time these were brought up, we blocked on what exactly the primary constructor parameters are: fields, captures, or something else? We think a prototype to play around with might help us make progress, so this is on the prototyping shortlist.
There are a few different directions we could take this space. We could take this approach, or look at modernizing switch statement syntax, or some other form. This space needs more design, so this is not on the list.