346 lines
9.5 KiB
Markdown
346 lines
9.5 KiB
Markdown
# Upcoming meetings for 2020
|
|
|
|
## Schedule ASAP
|
|
|
|
- `.ToString()` or `GetDebuggerDisplay()` on records?
|
|
- Should we allow base syntax on record without parameter list? `record Derived : Base(0) { }`
|
|
- nullability expectations for `bool Equals(R? other)` and `Type EqualityContract { get; }` and `R? <Clone>$()` and `void Deconstruct(out string? NotNullableStringProperty)`.
|
|
|
|
## Schedule when convenient
|
|
|
|
## Recurring topics
|
|
|
|
- *Triage championed features*
|
|
- *Triage milestones*
|
|
- *Design review*
|
|
|
|
## Aug 26, 2020
|
|
|
|
## Aug 24, 2020
|
|
|
|
## Jul 27, 2020
|
|
|
|
## Jun 3, 2020
|
|
|
|
- allow suppression on `return someBoolValue!;` (issue https://github.com/dotnet/roslyn/issues/44080, Julien)
|
|
- record decision on side-effect of `M(someMaybeNullValue); // warns` and effect of suppression `expr!` (issue https://github.com/dotnet/roslyn/issues/43383, Julien)
|
|
- improving suppression in the middle of null-coalescing (https://github.com/dotnet/csharplang/issues/3393, Neal/Julien)
|
|
- init-only: should `_ = new C() { readonlyField = null };` be allowed in a method on type `C`? (Jared/Julien)
|
|
- init-only: confirm metadata encoding (`IsExternalInit` modreq) with compat implications (Jared/Julien)
|
|
- init-only: init-only methods ? `init void Init()` (Jared/Julien)
|
|
|
|
## May 18, 2020
|
|
|
|
- Record Monday (Andy, Jared, Mads)
|
|
|
|
## April 29, 2020
|
|
|
|
- Design review
|
|
|
|
## April 22, 2020
|
|
|
|
- https://github.com/dotnet/csharplang/projects/4 Triage for C# 10.0 (Mads)
|
|
|
|
## March 18, 2020
|
|
|
|
- https://github.com/jaredpar/csharplang/blob/record/proposals/recordsv3.md clone-style records (Jared)
|
|
|
|
## Jan 13, 2020
|
|
|
|
- Records: Paging back in the previous proposal (Andy)
|
|
|
|
# C# Language Design Notes for 2020
|
|
|
|
Overview of meetings and agendas for 2020
|
|
|
|
## Jul 20, 2020
|
|
|
|
## Jul 20, 2020
|
|
|
|
[C# Language Design Notes for July 20th, 2020](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-07-20.md)
|
|
|
|
- [struct private fields in definite assignment](https://github.com/dotnet/csharplang/issues/3431) (Neal/Julien)
|
|
- [Proposal 1](https://github.com/dotnet/roslyn/issues/30194#issuecomment-657858716)
|
|
- [Proposal 2](https://github.com/dotnet/roslyn/issues/30194#issuecomment-657900257)
|
|
- Finish [Triage](https://github.com/dotnet/csharplang/issues?q=is%3Aopen+is%3Aissue+label%3A%22Proposal+champion%22+no%3Amilestone)
|
|
- Records-related features to pick up in the next version of C# (Mads)
|
|
|
|
|
|
## Jul 13, 2020
|
|
|
|
[C# Language Design Notes for July 13th, 2020](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-07-13.md)
|
|
|
|
- Triage open issues
|
|
|
|
## Jul 6, 2020
|
|
|
|
[C# Language Design Notes for July 6, 2020](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-07-06.md)
|
|
|
|
- [Repeat Attributes in Partial Members](https://github.com/RikkiGibson/csharplang/blob/repeated-attributes/proposals/repeat-attributes.md) (Rikki)
|
|
- `sealed` on `data` members
|
|
- [Required properties](https://github.com/dotnet/csharplang/issues/3630) (Fred)
|
|
|
|
|
|
## Jul 1, 2020
|
|
|
|
[C# Language Design Notes for July 1, 2020](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-07-01.md)
|
|
|
|
- [Non-defaultable struct types](https://github.com/dotnet/csharplang/issues/99#issuecomment-601792573) (Sam, Chuck)
|
|
- Confirm unspeakable `Clone` method and long-term implications (Jared/Julien)
|
|
|
|
## Jun 29, 2020
|
|
|
|
[C# Language Design Notes for June 29, 2020](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-06-29.md)
|
|
|
|
- [Static interface members](https://github.com/Partydonk/partydonk/issues/1) (Miguel, Aaron, Mads, Carol)
|
|
|
|
## Jun 24, 2020
|
|
|
|
[C# Language Design Notes for June 24, 2020](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-06-24.md)
|
|
|
|
- Parameter null checking: finalize syntax
|
|
- https://github.com/dotnet/csharplang/issues/3275 Variance on static interface members (Aleksey)
|
|
- [Function pointer question](https://github.com/dotnet/roslyn/issues/39865#issuecomment-647692516) (Fred)
|
|
|
|
|
|
## Jun 22, 2020
|
|
|
|
[C# Language Design Notes for June 22, 2020](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-06-22.md)
|
|
|
|
1. Data properties
|
|
|
|
1. Clarifying what's supported in records for C# 9
|
|
|
|
- Structs
|
|
|
|
- Inheritance with records and classes
|
|
|
|
## Jun 17, 2020
|
|
|
|
[C# Language Design Notes for June 17, 2020](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-06-17.md)
|
|
|
|
1. Null-suppression & null-conditional operator
|
|
1. `parameter!` syntax
|
|
1. `T??`
|
|
|
|
## Jun 15, 2020
|
|
|
|
[C# Language Design Notes for June 15, 2020](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-06-15.md)
|
|
|
|
Record:
|
|
|
|
1. `modreq` for init accessors
|
|
|
|
1. Initializing `readonly` fields in same type
|
|
|
|
1. `init` methods
|
|
|
|
1. Equality dispatch
|
|
|
|
1. Confirming some previous design decisions
|
|
|
|
1. `IEnumerable.Current`
|
|
|
|
## Jun 10, 2020
|
|
|
|
[C# Language Design Notes for June 15, 2020](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-06-15.md)
|
|
|
|
- https://github.com/dotnet/csharplang/issues/1711 Roles and extensions
|
|
|
|
## Jun 1, 2020
|
|
|
|
[C# Language Design Notes for June 1, 2020](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-06-01.md)
|
|
|
|
Records:
|
|
1. Base call syntax
|
|
2. Synthesizing positional record members and assignments
|
|
3. Record equality through inheritance
|
|
|
|
## May 27, 2020
|
|
|
|
[C# Language Design Notes for May 27, 2020](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-05-27.md)
|
|
|
|
Record syntax
|
|
1. Record structs?
|
|
2. Record syntax/keyword
|
|
3. Details on property shorthand syntax
|
|
|
|
## May 11, 2020
|
|
|
|
[C# Language Design Notes for May 11, 2020](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-05-11.md)
|
|
|
|
Records
|
|
|
|
## May 6, 2020
|
|
|
|
[C# Language Design Notes for May 6, 2020](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-05-06.md)
|
|
|
|
1. Target-typing ?: when the natural type isn't convertible to the target type.
|
|
1. Allow `if (x is not string y)` pattern.
|
|
1. Open issues in extension `GetEnumerator`
|
|
1. Args in top-level programs
|
|
|
|
## May 4, 2020
|
|
|
|
[C# Language Design Notes for May 4, 2020](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-05-04.md)
|
|
|
|
1. Reviewing design review feedback
|
|
|
|
## April 27, 2020
|
|
|
|
[C# Language Design Notes for April 27, 2020](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-04-27.md)
|
|
|
|
Records: positional & primary constructors
|
|
|
|
## April 20, 2020
|
|
|
|
[C# Language Design Notes for April 20, 2020](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-04-20.md)
|
|
|
|
Records: Factories
|
|
|
|
## April 15, 2020
|
|
|
|
[C# Language Design Notes for April 15, 2020](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-04-15.md)
|
|
|
|
1. Non-void and non-private partial methods
|
|
2. Top-level programs
|
|
|
|
## April 13. 2020
|
|
|
|
[C# Language Design Notes for April 13, 2020](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-04-13.md)
|
|
|
|
1. Roadmap for records
|
|
2. Init-only properties
|
|
|
|
## April 8, 2020
|
|
|
|
[C# Language Design Notes for April 8, 2020](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-04-08.md)
|
|
|
|
1. `e is dynamic` pure null check
|
|
2. Target typing `?:`
|
|
3. Inferred type of an `or` pattern
|
|
4. Module initializers
|
|
|
|
## April 6, 2020
|
|
|
|
[C# Language Design Notes for April 6, 2020](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-04-06.md)
|
|
|
|
1. Record Monday: Init-only members
|
|
|
|
## April 1, 2020
|
|
|
|
[C# Language Design Notes for April 1, 2020](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-04-01.md)
|
|
|
|
1. Function pointer design adjustments
|
|
|
|
2. `field` keyword in properties
|
|
|
|
## March 30, 2020
|
|
|
|
1. Record Monday
|
|
|
|
[C# Language Design Notes for March 30, 2020](LDM-2020-03-30.md)
|
|
|
|
## March 25, 2020
|
|
|
|
[C# Language Design Notes for March 25, 2020](LDM-2020-03-25.md)
|
|
|
|
1. Open issues with native int
|
|
|
|
2. Open issues with target-typed new
|
|
|
|
## March 23, 2020
|
|
|
|
[C# Language Design Notes for March 23, 2020](LDM-2020-03-23.md)
|
|
|
|
1. Triage
|
|
2. Builder-based records
|
|
|
|
## March 9, 2020
|
|
|
|
[C# Language Design Notes for March 9, 2020](LDM-2020-03-09.md)
|
|
|
|
1. Simple programs
|
|
|
|
2. Records
|
|
|
|
## Feb 26, 2020
|
|
|
|
[C# Language Design Notes for Feb. 26, 2020](LDM-2020-02-26.md)
|
|
|
|
Design Review
|
|
|
|
## Feb 24
|
|
|
|
[C# Language Design Notes for Feb. 24, 2020](LDM-2020-02-24.md)
|
|
|
|
Taking another look at "nominal" records
|
|
|
|
## Feb 19
|
|
|
|
[C# Language Design Notes for Feb. 19, 2020](LDM-2020-02-19.md)
|
|
|
|
State-based value equality
|
|
|
|
## Feb 12
|
|
|
|
[C# Language Design Notes for Feb. 12, 2020](LDM-2020-02-12.md)
|
|
|
|
Records
|
|
|
|
## Feb 10
|
|
|
|
[C# Language Design Notes for Feb. 10, 2020](LDM-2020-02-10.md)
|
|
|
|
Records
|
|
|
|
## Feb 5
|
|
|
|
[C# Language Design Notes for Feb. 5, 2020](LDM-2020-02-05.md)
|
|
|
|
- Nullability of dependent calls (Chuck, Julien)
|
|
- https://github.com/dotnet/csharplang/issues/3137 Records as individual features (Mads)
|
|
|
|
## Feb 3
|
|
|
|
[C# Language Design Notes for Feb. 3, 2020](LDM-2020-02-03.md)
|
|
|
|
Value Equality
|
|
|
|
## Jan 29, 2020
|
|
|
|
[C# Language Design Notes for Jan. 29, 2020](LDM-2020-01-29.md)
|
|
|
|
Records: "With-ers"
|
|
|
|
## Jan 22, 2020
|
|
|
|
[C# Language Design Notes for Jan 22, 2020](LDM-2020-01-22.md)
|
|
|
|
1. Top-level statements and functions
|
|
2. Expression Blocks
|
|
|
|
## Jan 15, 2020
|
|
|
|
[C# Language Design Notes for Jan 15, 2020](LDM-2020-01-15.md)
|
|
|
|
Records
|
|
|
|
1. "programming with data"
|
|
1. Decomposing subfeatures of records
|
|
|
|
## Jan 8, 2020
|
|
|
|
[C# Language Design Notes for Jan 8, 2020](LDM-2020-01-08.md)
|
|
|
|
1. Unconstrained type parameter annotation
|
|
2. Covariant returns
|
|
|
|
## Jan 6, 2020
|
|
|
|
[C# Language Design Notes for Jan 6, 2020](LDM-2020-01-06.md)
|
|
|
|
1. Use attribute info inside method bodies
|
|
1. Making Task-like types covariant for nullability
|
|
1. Casting to non-nullable reference type
|
|
1. Triage
|