csharplang/meetings/2018/README.md
2018-09-18 16:58:41 -07:00

3.9 KiB

C# Language Design Notes for 2018

Overview of meetings and agendas for 2018

Jan 3, 2018

C# Language Design Notes for Jan 3, 2018

  1. Scoping of expression variables in constructor initializer
  2. Scoping of expression variables in field initializer
  3. Scoping of expression variables in query clauses
  4. Caller argument expression attribute
  5. Other caller attributes
  6. New constraints

Jan 10, 2018

C# Language Design Notes for Jan 10, 2018

  1. 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.

  1. Scope of the feature
  2. Range types
  3. Type name
  4. Open-ended ranges
  5. Empty ranges
  6. Enumerability
  7. 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.

  1. Inclusive or exclusive?
  2. Natural type of range expressions
  3. Start/length notation

Jan 24, 2018

C# Language Design Notes for Jan 24, 2018

  1. Ref reassignment
  2. New constraints
  3. Target typed stackalloc initializers
  4. Deconstruct as ref extension method

July 9, 2018

C# Language Design Notes for July 9, 2018

  1. using var feature
    1. Overview
    2. Tuple deconstruction grammar form
    3. using expr; grammar form
    4. Flow control safety
  2. Pattern-based Dispose in the using statement
  3. Relax Multiline interpolated string syntax ($@)

July 11, 2018

C# Language Design Notes for July 11, 2018

  1. Controlling nullable reference types with feature flags
  2. Interaction with NonNullTypesAttribute
  3. Feature flag and 'warning waves'
  4. How 'oblivious' null types interact with generics
  5. Nullable and interface generic constraints

July 16, 2018

C# Language Design Notes for July 16, 2018

  1. Null-coalescing assignment
    1. User-defined operators
    2. Unconstrained type parameters
    3. Throw expression the right-hand side
  2. Nullable await
  3. Nullable pointer access
  4. Non-nullable reference types feature flag follow-up

August 20, 2018

C# Language Design Notes for August 20, 2018

  1. Remaining questions on suppression operator (and possibly cast)
  2. Does a dereference update the null-state?
  3. Null contract attributes
  4. Expanding the feature
  5. Is T? where T : class? allowed or meaningful?
  6. Confirm that oblivious should be ephemeral
  7. Unconstrained T in List then FirstOrDefault(). What attribute to annotate FirstOrDefault?

August 22, 2018

C# Language Design Notes for August 22, 2018

  1. Target-typed new
  2. Clarification on constraints with nullable reference types enabled

September 5, 2018

C# Language Design Notes for September 5, 2018

  1. Index operator: is it a unary operator?
  2. Compiler intrinsics

Upcoming meetings

Sep 19, 2018

  • Triage championed features
  • Triage milestones

Sep 24, 2018

  • C#/F# interactions (Don Syme, Phillip Carter)

Sep 26, 2018

  • Pattern matching open questions (Neal)

Oct 1, 2018

  • Nullable type inference with respect to null-oblivious types (Chuck, Fred)

Oct 3, 2018

Oct 10, 2018

Schedule ASAP

Schedule when convenient

  • Readonly methods in structs (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