C# Language Design Notes for 2018
Overview of meetings and agendas for 2018
Jan 3, 2018
C# Language Design Notes for Jan 3, 2018
- Scoping of expression variables in constructor initializer
- Scoping of expression variables in field initializer
- Scoping of expression variables in query clauses
- Caller argument expression attribute
- Other caller attributes
- New constraints
Jan 10, 2018
C# Language Design Notes for Jan 10, 2018
- Ranges and endpoint types
Jan 18, 2018
C# Language Design Notes for Jan 18, 2018
We discussed the range operator in C# and the underlying types for it.
- Scope of the feature
- Range types
- Type name
- Open-ended ranges
- Empty ranges
- Enumerability
- Language questions
Jan 22, 2018
C# Language Design Notes for Jan 22, 2018
We continued to discuss the range operator in C# and the underlying types for it.
- Inclusive or exclusive?
- Natural type of range expressions
- Start/length notation
Jan 24, 2018
C# Language Design Notes for Jan 24, 2018
- Ref reassignment
- New constraints
- Target typed stackalloc initializers
- Deconstruct as ref extension method
July 9, 2018
C# Language Design Notes for July 9, 2018
using var
feature- Overview
- Tuple deconstruction grammar form
using expr;
grammar form- Flow control safety
- Pattern-based Dispose in the
using
statement - Relax Multiline interpolated string syntax (
$@
)
July 11, 2018
C# Language Design Notes for July 11, 2018
- Controlling nullable reference types with feature flags
- Interaction with NonNullTypesAttribute
- Feature flag and 'warning waves'
- How 'oblivious' null types interact with generics
- Nullable and interface generic constraints
July 16, 2018
C# Language Design Notes for July 16, 2018
- Null-coalescing assignment
- User-defined operators
- Unconstrained type parameters
- Throw expression the right-hand side
- Nullable await
- Nullable pointer access
- Non-nullable reference types feature flag follow-up
August 20, 2018
C# Language Design Notes for August 20, 2018
- Remaining questions on suppression operator (and possibly cast)
- Does a dereference update the null-state?
- Null contract attributes
- Expanding the feature
- Is T? where T : class? allowed or meaningful?
- Confirm that oblivious should be ephemeral
- Unconstrained T in List then
FirstOrDefault()
. What attribute to annotateFirstOrDefault
?
August 22, 2018
C# Language Design Notes for August 22, 2018
- Target-typed new
- Clarification on constraints with nullable reference types enabled
September 5, 2018
C# Language Design Notes for September 5, 2018
- Index operator: is it a unary operator?
- Compiler intrinsics
September 10, 2018
C# Language Design Notes for September 10, 2018
- Nullability of constraints in inheritance and interface implementation
- Static local functions
Upcoming meetings
Sep 19, 2018
- Triage championed features
- Triage milestones
Sep 24, 2018
- C#/F# interactions (Don Syme, Phillip Carter)
Sep 26, 2018
- Warning waves (Jason, Tom)
Oct 1, 2018
- Nullable type inference with respect to null-oblivious types (Chuck, Fred)
- Pattern matching open questions (Neal)
Oct 3, 2018
Oct 10, 2018
Schedule ASAP
- Async streams (Steve, Immo)
- target typed new with default constructors on structs (Julien, Neal)
Schedule when convenient
- Readonly methods in structs (Jared)
- Intrinsics update with function pointers (Jared)
- Discussion of refreshing language spec (Neal)
- Open issues with default interface methods (Aleksey, David)
- Discussion of records (Andy)
Recurring topics
- Triage championed features
- Triage milestones
- Design review