# C# Language Design Notes for 2024

### Mon Dec 9, 2024

[C# Language Design Meeting for December 9th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-12-09.md)

- First-class span open questions
- Simple Lambda Parameters
- Collection expression arguments

### Wed Dec 4, 2024

[C# Language Design Meeting for December 4th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-12-04.md)

- First-class span open questions
    - Preferring `ReadOnlySpan<T>` over `Span<T>` conversions
    - Conversions in expression trees

### Wed Nov 20, 2024

[C# Language Design Meeting for November 20th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-11-20.md)

- Extensions
- Dictionary Expressions

### Wed Nov 13, 2024

[C# Language Design Meeting for November 13th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-11-13.md)

- Extensions

### Mon Nov 4, 2024

[C# Language Design Meeting for November 4th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-11-04.md)

- `not` and `or` patterns
- Notes on notes

### Wed Oct 30, 2024

[C# Language Design Meeting for October 30th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-10-30.md)

- Extensions

### Mon Oct 28, 2024

[C# Language Design Meeting for October 28th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-10-28.md)

- Increment and Decrement Operators in null conditional access
- `yield` in `try` / `catch`

### Mon Oct 21, 2024

Canceled

### Wed Oct 16, 2024

[C# Language Design Meeting for October 16th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-10-16.md)

- Simple lambda parameters
- Unbound generic types in `nameof`
- `typeof` string constants

### Mon Oct 14, 2024

[C# Language Design Meeting for October 14th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-10-14.md)

- Extensions

### Wed Oct 9, 2024

[C# Language Design Meeting for October 9th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-10-09.md)

- Extensions

### Mon Oct 7, 2024

[C# Language Design Meeting for October 7th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-10-07.md)

- Extensions

### Wed Oct 2, 2024

[C# Language Design Meeting for October 2nd, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-10-02.md)

- Open questions in field
    - `readonly` contexts and `set`
    - `Conditional` code
    - Interface properties and auto-accessors
- Extensions

### Mon Sep 30, 2024

[C# Language Design Meeting for September 30th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-09-30.md)

- Extensions

### Wed Sep 25, 2024

- C# 14 (no notes)

### Mon Sep 23, 2024

- *Design review* (no notes)

### Wed Sep 18, 2024

[C# Language Design Meeting for September 18th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-09-18.md)

- Nullability in `field`
- Extensions naming

### Wed Sep 11, 2024

[C# Language Design Meeting for September 11th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-09-11.md)

- Better conversion from collection expression and `params` collections
- First-class span types
    - `Reverse`
    - New ambiguities
    - Covariant arrays

### Wed Sep 4, 2024

[C# Language Design Meeting for September 4th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-09-04.md)

- Triage (no milestone)
    - Type inference using method group natural type
    - Collection Expressions Next (C#13 and beyond)
    - Dictionary expressions
    - Extending patterns to "as"
    - `params in` parameters
- Triage (working set)
    - Only Allow Lexical Keywords in the Language
    - Permit variable declarations under disjunctive patterns
    - CallerCharacterNumberAttribute
    - `Task<T>` nullability covariance
    - Nullable analysis of LINQ queries

### Wed Aug 28, 2024

[C# Language Design Meeting for August 28th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-08-28.md)

- Nullable in `ref` ternaries
- Block-bodied switch expression arms

### Mon Aug 26, 2024

[C# Language Design Meeting for August 26th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-08-26.md)

- `field` keyword open questions
    - `field` in property initializers
    - Interaction with partial properties
    - `readonly` field

### Wed Aug 21, 2024

[C# Language Design Meeting for August 21st, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-08-21.md)

- Better conversion from collection expression
- `field` keyword nullability

### Mon Aug 19, 2024

[C# Language Design Meeting for August 19th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-08-19.md)

- Better conversion from collection expression

### Wed Aug 14, 2024

[C# Language Design Meeting for August 14th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-08-14.md)

- `field` keyword
    - `field` nullability
    - `field` in event accessor
    - Scenarios similar to `set;`

### Wed Jul 24, 2024

[C# Language Design Meeting for July 24th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-07-24.md)

- Discriminated Unions
- Better conversion from collection expression with `ReadOnlySpan<T>` overloads

### Mon Jul 22, 2024

[C# Language Design Meeting for July 22nd, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-07-22.md)

- Extensions
- Ref structs implementing interfaces

### Wed Jul 17, 2024

[C# Language Design Meeting for July 17th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-07-17.md)

- Overload resolution priority open questions
- Better conversion from collection expression with `ReadOnlySpan<T>` overloads

### Mon Jul 15, 2024

[C# Language Design Meeting for July 15th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-07-15.md)

- `field` keyword
- First-Class Spans Open Question

### Wed Jun 26, 2024

[C# Language Design Meeting for June 26th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-06-26.md)

- Extensions

### Mon Jun 24, 2024

[C# Language Design Meeting for June 24th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-06-24.md)

- First-Class Spans
- `field` questions
    - Mixing auto-accessors
    - Nullability

### Mon Jun 17, 2024

[C# Language Design Meeting for June 17th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-06-17.md)

- `params` Span breaks
- Overload resolution priority questions
    - Application error or warning on `override`s
    - Implicit interface implementation
- Inline arrays as `record struct`s

### Wed Jun 12, 2024

[C# Language Design Meeting for June 12th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-06-12.md)

- `params Span` breaks
- Extensions

### Mon Jun 10, 2024

[C# Language Design Meeting for June 10th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-06-10.md)

- `ref struct`s implementing interfaces and in generics

### Mon Jun 3, 2024

[C# Language Design Meeting for June 3rd, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-06-03.md)

- Params collections and dynamic
- Allow ref and unsafe in iterators and async

### Wed May 15, 2024

[C# Language Design Meeting for May 15th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-05-15.md)

- `field` and `value` as contextual keywords
  - Usage in `nameof`
  - Should `value` be a keyword in a property or indexer get? Should `field` be a keyword in an indexer?
  - Should `field` and `value` be considered keywords in lambdas and local functions within property accessors?
  - Should `field` and `value` be keywords in property or accessor signatures? What about `nameof` in those spaces?
- Dictionary expressions

### Mon May 13, 2024

[C# Language Design Meeting for May 13th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-05-13.md)

- First-class span types questions
    - Delegate conversions
    - Variant conversion existence
- Overload resolution priority questions
    - Attribute shape and inheritance
    - Extension overload resolution

### Wed May 8, 2024

[C# Language Design Meeting for May 8th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-05-08.md)

- `readonly` for primary constructor parameters

### Wed May 1, 2024

[C# Language Design Meeting for May 1st, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-05-01.md)

- Adjust binding rules in the presence of a single candidate

### Wed Apr 24, 2024

[C# Language Design Meeting for Apr 24th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-04-24.md)

- Adjust dynamic binding rules for a situation of a single applicable candidate

### Mon Apr 22, 2024

[C# Language Design Meeting for Apr 22nd, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-04-22.md)

- Effect of language version on overload resolution in presence of `params` collections
- Partial type inference: '_' in method and object creation type argument lists

### Wed Apr 17, 2024

[C# Language Design Meeting for Apr 17th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-04-17.md)

- Relax `Add` requirement for collection expression conversions to types implementing `IEnumerable`
- Extensions

### Mon Apr 15, 2024

[C# Language Design Meeting for Apr 15th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-04-15.md)

- Non-enumerable collection types
- Interceptors
- Relax `Add` requirement for collection expression conversions to types implementing `IEnumerable`

### Mon Apr 8, 2024

[C# Language Design Meeting for Apr 8th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-04-08.md)

- Implementation specific documentation

### Mon Apr 1, 2024

[C# Language Design Meeting for Apr 1st, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-04-01.md)

- Async improvements (Async2)

### Wed Mar 27, 2024

[C# Language Design Meeting for Mar 27th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-03-27.md)

- Discriminated Unions

### Mon Mar 11, 2024

[C# Language Design Meeting for Mar 11th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-03-11.md)

- Dictionary expressions

### Mon Mar 4, 2024

[C# Language Design Meeting for Mar 4th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-03-04.md)

- Breaking changes: making `field` and `value` contextual keywords
- Overload resolution priority

### Wed Feb 28, 2024

[C# Language Design Meeting for Feb 28th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-02-28.md)

- Extensions

### Mon Feb 26, 2024

[C# Language Design Meeting for Feb 26th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-02-26.md)

- `ref struct`s in generics
- Collection expressions

### Wed Feb 21, 2024

[C# Language Design Meeting for Feb 21st, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-02-21.md)

- Declaration of ref/out parameters in lambdas without typename
- `params` collections
    - Metadata format
    - `params` and `scoped` across `override`s
    - `required` members and `params` parameters

### Wed Feb 7, 2024

[C# Language Design Meeting for Feb 7th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-02-07.md)

- Partial type inference
- Breaking change warnings

### Mon Feb 5, 2024

[C# Language Design Meeting for Feb 5th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-02-05.md)

- First-class span types
- Collection expressions: inline collections

### Wed Jan 31, 2024

[C# Language Design Meeting for January 31st, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-01-31.md)

- Relax "enumerable" requirement for collection expressions
- `params` collections evaluation orders

### Mon Jan 29, 2024

[C# Language Design Meeting for January 29th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-01-29.md)

- `params` collections
  - Better function member changes
  - `dynamic` support
- `dynamic` and `ref` local function bugfixing

### Mon Jan 22, 2024

[C# Language Design Meeting for January 22nd, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-01-22.md)

### Wed Jan 10, 2024

[C# Language Design Meeting for January 10th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-01-10.md)

- Collection expressions: conversion vs construction

### Mon Jan 8, 2024

[C# Language Design Meeting for January 8th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-01-08.md)

- Collection expressions
    - Iteration type of `CollectionBuilderAttribute` collections
    - Iteration type in conversions
