csharplang/meetings/2017/LDM-2017-10-25.md

112 lines
2.1 KiB
Markdown
Raw Normal View History

2017-12-06 02:06:17 +01:00
# C# Language Design Notes for Oct 25, 2017
***Warning: These are raw notes, and still need to be cleaned up. Read at your own peril!***
## #98
## 34 and 35
34 should bot be concurrent safe, just like the other compound assignment.
Bundle with 8.0, but could push out. Seems to align with nullable reference types
# 32
Reconcile 32 with 1020
Criteria:
- Loose ends
- External expectation
# ref as iteration variable
Not currently allowed, should probably have a proposal (Andy)
# 185 keep in 3 to prioritize
# 45
Push out to 8.0 for realism, but still prioritize design time
# 933, 1046, and uninitialized ref local
These should happen together in 7.3
# 111 Punt to 8.X
# 1020 946 945 keep
# 882 pattern-related, goto 8.0
# 435
Keep in 7.3, see if we can settle design
# 190
Relatively obvious design, with some gnarly bits (dynamic, conversion)
Usability gap with tuples let's keep it.
# 189
Let is more important than from. It lets you use out variables
``` c#
from s in strings
let t = (b: int.TryParse(out var n), n)
where t.b
select t.n
```
Could be
``` c#
from s in strings
let (b, i) = (int.TryParse(out var n), n)
where b
select i
```
There's a bit of design work, especially if we also want the from clause.
We could allow out vars but not the deconstruction, and it would still be useful.
Could save dec for later. It's actually orthogonal.
Action:
Carve out deconstruction, push to 8.X
# 187
On the brink, but keeping for now; need to be convinced of value
# 185
Keep pushing on it, got to get the train going on `Range`
`x..y` does new Range(x, y) or Range.Create(x, y)
Consider whether it should be a new kind of operator instead.
# 104
Micro-feature: Just allow `System.Enum` as a constraint
Mini-feature: allow `enum` as a constraint, translate to `System.Enum, struct`
Keep this in, but it is very cuttable.
# 98
It's a zero-conceptual-overhead feature.
Original designers left in space between meanings for a purpose. But that's not so compelling to us anymore.
2018-01-25 22:11:49 +01:00
Because it touches overload resolution, it might be better aligned with a .0 release. But we're not compelled by that.
2017-12-06 02:06:17 +01:00
Let's keep it, but again, it's cuttable.