Skip to content

Latest commit

 

History

History
96 lines (57 loc) · 4.42 KB

LDM-2024-09-04.md

File metadata and controls

96 lines (57 loc) · 4.42 KB

C# Language Design Meeting for September 4th, 2024

Agenda

Quote of the Day

  • "The power I have is that I get to interpret"

Discussion

Triage (no milestone)

Today we triaged our championed issues without milestones, and started going through our working set.

Type inference using method group natural type

Issue: #7687

We need to investigate and make sure we didn't intentionally not do this in C# 10. Once we figure that out, we think it can to into Any Time. Until then, Needs More Work.

Collection Expressions Next (C#13 and beyond)

Issue: #7913

This is an epic tracking multiple smaller improvements, and the champion is currently on vacation so we can't talk through all the individual things. We'll come back when the issue champion is back from vacation.

Dictionary expressions

Issue: #7822

We've actively worked on this in the past year and continue to think about it. Working set.

Extending patterns to "as"

Issue: #8210

We don't like that this would collapse the success and failure branches of an is into null and not null, that would then need to be checked again to actually use the value; part of the point of is is to get rid of that type of code. We think the expanded versions of the examples are more readable. This proposal is rejected.

params in parameters

Issue: #8301

There's some interesting design work here around ref structs that would push us to further expand our lifetime tracking, but we're not sure that this issue, by itself, would meet the bar of doing that work. We don't think that it's a bad idea to add, particularly if we start by blocking ref structs from participating, so we'll put this in the working set.

Triage (working set)

Next, we started going through our working set issues to see if there's anything we should pull out. We didn't get through the whole thing; we stopped after 3590. The notes below only include issues that we decided to change something about.

Only Allow Lexical Keywords in the Language

Issue: #4460

This issue was a forcing function to get us to think about breaking changes. We've thought about breaking changes, and our approach to field, while breaking, is significantly less breaking than this issue proposes. We may pull it out of our back pocket in a future release where we're more comfortable with breaking changes in general, but until then, this is moved to the backlog.

Permit variable declarations under disjunctive patterns

Issue: #4018

We do still want this feature, but aren't doing any active design work on it right now. Therefore, we'll move it to the backlog.

CallerCharacterNumberAttribute

Issue: #3992

This was a proposal for how we might implement interceptors. We don't plan on doing this, this proposal is rejected.

Task<T> nullability covariance

Issue: #3950

We do still want this feature, but aren't doing any active design work on it right now. Therefore, we'll move it to the backlog.

Nullable analysis of LINQ queries

Issue: #3951

We do still want this feature, but aren't doing any active design work on it right now. Therefore, we'll move it to the backlog.