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?
- Typing judgments containing oblivious types
- Unconstrained T in List<T> 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
Sep 19, 2018
C# Language Design Notes for September 19, 2018
Triage:
- XML doc comment features
- New
foreach
pattern usingLength
and indexer - Object initializers for
readonly
members readonly
struct methodsparams Span<T>
- Nullable reference type features on
Nullable<T>
Sep 24, 2018
C# Language Design Notes for September 24, 2018
Combined C#/F# LDM
- What new C# features are going to require work to get F# support?
- How can the design of C# features play well with the broader .NET environment?
Sep 26, 2018
C# Language Design Notes for September 26, 2018
- Warning waves
Oct 1, 2018
C# Language Design Notes for Oct 1, 2018
- Nullable type inference
- Type parameters and nullability context
Oct 3, 2018
C# Language Design Notes for Oct 3, 2018
- How is the nullable context expressed?
- Async streams - which interface shape?
Oct 10, 2018
C# Language Design Notes for Oct 10, 2018
- Pattern matching open questions
Oct 15, 2018
C# Language Design Notes for Oct 15, 2018
- Readonly methods in structs
- Intrinsics update with function pointers
- Finalize syntax for async-streams. Per last notes, the current tentative syntax is
foreach await (var x in ...) ...
.
Oct 17, 2018
C# Language Design Notes for Oct 17, 2018
- Open issues with default interface methods
- target typed new with default constructors on structs
Oct 22, 2018
C# Language Design Notes for Oct 22, 2018
Discussion of records proposals:
Oct 24, 2018
- Adding Nullable Reference Type features to Nullable Value Types
- Open issues with pattern matching
Oct 29, 2018
C# Language Design Notes for Oct 29, 2018
Oct 31, 2018
C# Language Design Notes for Oct 31, 2018
- Design review
Nov 5, 2018
C# Language Design Notes for Nov 5, 2018
- Where can #nullable go?
- Open issues with pattern matching
Nov 14, 2018
C# Language Design Notes for Nov 14, 2018
- Base call syntax for default interface implementations
- Switch exhaustiveness and null
Nov 28, 2018
C# Language Design Notes for Nov 28, 2018
- Are nullable annotations part of array specifiers?
- Cancellation of async-streams
Dec 3, 2018
C# Language Design Notes for Dec 3, 2018
using
declaration open issues- Return type of
Range
indexer on array and FX types
Dec 5, 2018
C# Language Design Notes for Dec 5, 2018
- Tracked nullable states, their correspondence to source and the rules they follow in flow analysis
Dec 12, 2018
C# Language Design Notes for Dec 12, 2018
- Async-streams misc. questions
- Compat issue with Dispose pattern in
foreach
Upcoming meetings
Dec 17, 2018
- Review the Nullable Reference Types Specification
Recurring topics
- Triage championed features
- Triage milestones
- Design review