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-28 00:59:24 +02:00
- 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-28 19:15:58 +02:00
- Allow mixed declaration and assignment in deconstruction (Julien, community [PR ](https://github.com/dotnet/roslyn/pull/44476 ))
2020-07-28 00:59:24 +02:00
2020-07-20 21:01:29 +02:00
## Schedule when convenient
2020-07-27 19:36:29 +02:00
- How can we improve the capture of unfinished business, both in terms of making sure the LDM comes back to remaining open issues, and in terms of keeping the feature specs in sync with LDM decisions?
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-09-09 01:33:27 +02:00
## Sep 30, 2020
## Sep 28, 2020
## Sep 23, 2020
## Sep 21, 2020
2020-08-24 16:31:54 +02:00
## Sep 16, 2020
## Sep 14, 2020
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-09-10 01:59:30 +02:00
## Sep 9, 2020
[C# Language Design Notes for September 9th, 2020 ](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-09-09.md )
- Triage issues still in C# 9.0 candidate
- Triage issues in C# 10.0 candidate
2020-08-25 00:48:15 +02:00
## Aug 24, 2020
[C# Language Design Notes for August 24th, 2020 ](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-08-24.md )
- Warnings on types named `record`
- `base` calls on parameterless `record` s
- Omitting unnecessary synthesized `record` members
- [`record` `ToString` behavior review ](https://github.com/dotnet/csharplang/blob/master/proposals/csharp-9.0/records.md#printing-members-printmembers-and-tostring-methods )
- Behavior of trailing commas
- Handling stack overflows
- Should we omit the implementation of `ToString` on `abstract` records
- Should we call `ToString` prior to `StringBuilder.Append` on value types
- Should we try and avoid the double-space in an empty record
- Should we try and make the typename header print more economic
- Reference equality short circuiting
2020-07-28 20:10:44 +02:00
## Jul 27, 2020
[C# Language Design Notes for July 27th, 2020 ](https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-07-27.md )
- [Improved nullable analysis in constructors ](https://github.com/RikkiGibson/csharplang/blob/nullable-ctor/proposals/nullable-constructor-analysis.md ) (Rikki)
- [Equality operators (`==` and `!=`) in records ](https://github.com/dotnet/csharplang/issues/3707#issuecomment-661800278 ) (Fred)
- `.ToString()` or `GetDebuggerDisplay()` on records? (Julien)
- Restore W-warning to `T t = default;` for generic `T` , now you can write `T?` ? (Julien)
2020-07-21 00:52:41 +02:00
## 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