csharplang/meetings/2015/LDM-2015-05-25.md
2017-01-31 10:38:26 -08:00

2.3 KiB

C# Design Meeting Notes for May 25, 2015

Discussion for these notes can be found in https://github.com/dotnet/roslyn/issues/3912.

Agenda

Today we went through a bunch of the proposals on GitHub and triaged them for our list of features in issue #2136. Due to the vastness of the list, we needed to use some criterion to sort by, and though far from ideal we ordered them by number of comments, most to least.

Here's where we landed, skipping things that were already "Strong interest". Some are further elaborated in sections below.

  1. Method contracts <Stay at "Some interest">(#119)
  2. Destructible types <Stay at "Probably never"> (#161)
  3. Params IEnumerable <Stay at "Small but Useful>(#36)
  4. Multiple returns <Addressed by tuples. Close.> (#102)
  5. More type inference <Not a coherent proposal. Close> (#17)
  6. Readonly parameters and locals <Stay at "Some interest">(#115)
  7. Implicitly typed lambdas <Add at "Probably never">(#14)
  8. Immutable types <Stay at "Some interest>(#159)
  9. Object initializers for immutable objects <Add at "Some interest">(#229)
  10. First item is special <Add at "Never">(#131)
  11. Array slices <Keep at "Interesting but needs CLR support">(#120)
  12. Vararg calling convention <Merge with params IEnumerable>(#37)
  13. XML Literals <Add to "Never">(#1746)
  14. Local Functions <Move to "Some interest>(#259)
  15. Covariant returns <Stay at "Some interest>(#357)

Params IEnumerable

This needs more thinking - let's not just implement the straightforward design. There are perf issues, for instance, around implementing through the IEnumerable<T> interface instead of arrays directly.

More type inference

Not a coherent proposal. But even if there was one, we probably wouldn't want it in C#.

Implicitly typed lambdas

These are mostly subsumed by local functions, which we'd rather do. It has some individual usefulness but not much synergy.

Object initializers for immutable objects

We want to think this together with withers, not sure what form it would take.

first item in loops is special

We recognize the scenario but it's not worthy of a feature.

vararg calling convention

Roll it in with params IEnumerable discussion for investigation.

XML literals

Never! We won't bake in a specific format.