2020-06-01 23:33:26 +02:00
# Upcoming meetings for 2020
2019-12-13 21:15:12 +01:00
## Schedule ASAP
2020-04-06 20:53:37 +02:00
2020-07-20 21:01:29 +02:00
## Schedule when convenient
2019-12-13 21:15:12 +01:00
## Recurring topics
- *Triage championed features*
- *Triage milestones*
- *Design review*
2020-04-20 17:23:29 +02:00
2020-06-30 02:17:44 +02:00
## Aug 26, 2020
## Aug 24, 2020
2020-07-03 01:10:49 +02:00
## Jul 27, 2020
2020-07-21 19:56:33 +02:00
- [Equality operators (`==` and `!=`) in records ](https://github.com/dotnet/csharplang/issues/3707#issuecomment-661800278 ) (Fred)
2020-07-24 21:49:11 +02:00
- `.ToString()` or `GetDebuggerDisplay()` on records? (Julien)
- Should we allow base syntax on record without parameter list? `record Derived : Base(0) { }` (Julien)
- nullability expectations for `bool Equals(R? other)` and `Type EqualityContract { get; }` and `R? <Clone>$()` and `void Deconstruct(out string? NotNullableStringProperty)` . (Julien)
2020-07-21 19:56:33 +02:00
2020-05-26 20:51:35 +02:00
## Jun 3, 2020
2020-05-30 00:49:55 +02:00
- 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)
2020-04-20 17:23:29 +02:00
## May 18, 2020
- Record Monday (Andy, Jared, Mads)
2020-04-03 22:47:38 +02:00
## April 29, 2020
- Design review
## April 22, 2020
2020-04-20 18:52:34 +02:00
- https://github.com/dotnet/csharplang/projects/4 Triage for C# 10.0 (Mads)
2020-03-02 19:23:20 +01:00
## March 18, 2020
2020-03-18 17:20:07 +01:00
- https://github.com/jaredpar/csharplang/blob/record/proposals/recordsv3.md clone-style records (Jared)
2020-03-03 19:48:18 +01:00
2020-01-08 01:20:48 +01:00
## Jan 13, 2020
2019-12-13 21:15:12 +01:00
2020-01-13 04:38:23 +01:00
- Records: Paging back in the previous proposal (Andy)
2019-12-18 00:57:27 +01:00
2019-12-13 21:15:12 +01:00
# C# Language Design Notes for 2020
2020-07-13 23:55:43 +02:00
Overview of meetings and agendas for 2020
2020-07-13 23:52:25 +02:00
2020-07-21 00:52:41 +02:00
## 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)
2020-07-13 23:52:25 +02:00
## Jul 13, 2020
2020-07-13 23:55:43 +02:00
[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
2020-01-06 20:12:29 +01:00
2020-07-08 22:25:48 +02:00
## Jul 6, 2020
2020-07-13 23:52:25 +02:00
[C# Language Design Notes for July 6, 2020 ](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-07-06.md )
2020-07-08 22:25:48 +02:00
- [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
2020-07-16 17:15:53 +02:00
[C# Language Design Notes for June 24, 2020 ](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-06-24.md )
2020-07-08 22:25:48 +02:00
- 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)
2020-06-29 07:22:19 +02:00
## 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
2020-06-19 01:08:51 +02:00
## Jun 17, 2020
2020-07-08 22:25:48 +02:00
[C# Language Design Notes for June 17, 2020 ](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-06-17.md )
2020-06-19 01:08:51 +02:00
1. Null-suppression & null-conditional operator
1. `parameter!` syntax
1. `T??`
2020-06-17 19:08:09 +02:00
## 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
2020-06-01 23:33:26 +02:00
## 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
2020-05-31 10:04:19 +02:00
## 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
2020-07-08 22:25:48 +02:00
## May 11, 2020
2020-05-12 01:12:22 +02:00
[C# Language Design Notes for May 11, 2020 ](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-05-11.md )
Records
2020-05-06 22:04:26 +02:00
## 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
2020-05-06 19:06:30 +02:00
## 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
2020-04-28 01:00:50 +02:00
## 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
2020-04-21 00:33:40 +02:00
## 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
2020-04-28 22:09:24 +02:00
## April 15, 2020
2020-04-28 22:10:01 +02:00
[C# Language Design Notes for April 15, 2020 ](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-04-15.md )
2020-04-28 22:09:24 +02:00
1. Non-void and non-private partial methods
2. Top-level programs
2020-04-13 23:01:13 +02:00
## April 13. 2020
2020-04-13 23:00:25 +02:00
[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
2020-04-08 23:46:08 +02:00
## 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
2020-04-08 23:54:50 +02:00
## 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
2020-04-03 00:29:33 +02:00
## 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
2020-03-30 23:27:29 +02:00
## March 30, 2020
1. Record Monday
[C# Language Design Notes for March 30, 2020 ](LDM-2020-03-30.md )
2020-03-25 20:04:00 +01:00
## March 25, 2020
2020-03-24 08:00:29 +01:00
[C# Language Design Notes for March 25, 2020 ](LDM-2020-03-25.md )
2020-03-25 20:04:00 +01:00
1. Open issues with native int
2. Open issues with target-typed new
2020-03-24 08:00:29 +01:00
## March 23, 2020
[C# Language Design Notes for March 23, 2020 ](LDM-2020-03-23.md )
1. Triage
2. Builder-based records
2020-03-09 20:44:23 +01:00
## March 9, 2020
[C# Language Design Notes for March 9, 2020 ](LDM-2020-03-09.md )
1. Simple programs
2. Records
2020-03-03 19:04:08 +01:00
## Feb 26, 2020
[C# Language Design Notes for Feb. 26, 2020 ](LDM-2020-02-26.md )
Design Review
2020-02-26 19:04:54 +01:00
## Feb 24
[C# Language Design Notes for Feb. 24, 2020 ](LDM-2020-02-24.md )
Taking another look at "nominal" records
2020-03-18 23:58:44 +01:00
## Feb 19
2020-03-19 00:07:01 +01:00
[C# Language Design Notes for Feb. 19, 2020 ](LDM-2020-02-19.md )
2020-03-18 23:58:44 +01:00
State-based value equality
2020-02-20 05:35:39 +01:00
## 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
2020-01-29 22:03:52 +01:00
## Feb 5
2020-02-08 03:47:09 +01:00
[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)
2020-02-04 05:00:36 +01:00
## Feb 3
[C# Language Design Notes for Feb. 3, 2020 ](LDM-2020-02-03.md )
Value Equality
2020-01-29 22:03:52 +01:00
## Jan 29, 2020
[C# Language Design Notes for Jan. 29, 2020 ](LDM-2020-01-29.md )
Records: "With-ers"
2020-01-29 19:10:25 +01:00
## 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
2020-01-22 19:01:46 +01:00
## Jan 15, 2020
2020-01-29 19:10:25 +01:00
[C# Language Design Notes for Jan 15, 2020 ](LDM-2020-01-15.md )
2020-01-22 19:01:46 +01:00
Records
1. "programming with data"
1. Decomposing subfeatures of records
2020-01-09 05:40:58 +01:00
## Jan 8, 2020
[C# Language Design Notes for Jan 8, 2020 ](LDM-2020-01-08.md )
1. Unconstrained type parameter annotation
2. Covariant returns
2020-01-06 20:12:29 +01:00
## 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