4 KiB
C# Language Design Notes for 2017
Overview of meetings and agendas for 2017
Jan 10, 2017
C# Language Design Notes for Jan 10, 2017
- Discriminated unions via "closed" types
Jan 11, 2017
C# Language Design Notes for Jan 11, 2017
- Language aspects of compiler intrinsics
Jan 17, 2017
C# Language Design Notes for Jan 17, 2017
- Constant pattern semantics: which equality exactly?
- Extension methods on tuples: should tuple conversions apply?
Jan 18, 2017
C# Language Design Notes for Jan 18, 2017
- Async streams (visit from Oren Novotny)
Feb 21, 2017
C# Language Design Notes for Feb 21, 2017
We triaged some of the championed features, to give them a tentative milestone and ensure they had a champion.
As part of this we revisited potential 7.1 features and pushed several out.
- Implicit interface implementation in Visual Basic (VB 16)
- Delegate and enum constraints (C# X.X)
- Generic attributes (C# X.0 if even practical)
- Replace/original (C# X.0 if and when relevant)
- Bestest betterness (C# 7.X)
- Null-coalescing assignments and awaits (C# 7.X)
- Deconstruction in from and let clauses (C# 7.X)
- Target-typed
new
expressions (C# 7.X) - Mixing fresh and existing variables in deconstruction (C# 7.1)
- Implementing
==
and!=
on tuple types (C# 7.X) - Declarations in embedded statements (No)
- Field targeted attributes on auto-properties (C# 7.1)
Feb 22, 2017
C# Language Design Notes for Feb 22, 2017
We went over the proposal for ref readonly
: Champion "Readonly ref".
Feb 28, 2017
C# Language Design Notes for Feb 28, 2017
- Conditional operator over refs (Yes, but no decision on syntax)
- Async Main (Allow Task-returning Main methods)
Mar 1, 2017
C# Language Design Notes for Mar 1, 2017
- Shapes and extensions (exploration)
- Conditional refs (original design adopted)
Mar 7, 2017
C# Language Design Notes for Mar 7, 2017
We continued to flesh out the designs for features currently considered for C# 7.1.
- Default expressions (design adopted)
- Field target on auto-properties (yes)
- private protected (yes, if things work as expected)
Mar 8, 2017
C# Language Design Notes for Mar 8, 2017
We looked at default interface member implementations.
- Xamarin interop scenario
- Proposal
- Inheritance from interface to class
- Overriding and base calls
- The diamond problem
- Binary compatibility
- Other semantic challenges
Mar 15, 2017
C# Language Design Notes for Mar 8, 2017
Triage of championed features
- JSON literals
- Fixing of captured locals
- Allow shadowing of parameters
- Weak delegates
- Protocols/duck typing/concepts/type classes
- Zero and one element tuples
- Deconstruction in lambda parameters
- Private protected
Mar 21, 2017
C# Language Design Notes for Mar 21, 2017
Discussion of default interface member implementations, based on this guided tour.
- Concerns raised on GitHub and elsewhere
- Inheritance?
- Breaking name lookup on
this
- Events
- Modifiers
- Methods
- Properties
- Overrides
- Reabstraction
- Most specific override
- Static non-virtual members
- Accessibility levels
- Existing programs
Mar 28, 2017
C# Language Design Notes for Mar 28, 2017
Design some remaining 7.1 features
- Fix pattern matching restriction with generics
- Better best common type
Mar 29, 2017
C# Language Design Notes for Mar 29, 2017
- Nullable scenarios
Span<T>
safety