# C# Language Design Notes for Oct 9, 2017

***Warning: These are raw notes, and still need to be cleaned up. Read at your own peril!***


# 882 Negated if or negative patterns

Three approaches

1. bang outside if condition (then should I do that on while etc, too) `if !(o is int i)`
2. negative patterns (but not very useful recursively) `not int i`
3. `is not` as an expression operator

# 867 

Avoid some statement cliffs...

Put it in X.X with a note to consider again when we have match expressions

# 414

There's a "there" there.

We think this should be addressed, and will keep the championing issue to represent it.

However, it should be different:

1. It should not be strongly tied to the `Dictionary<K, V>` type, but be target typed
2. We should look at initializing immutable objects (also for object and collection initializers)
3. We already have index initializers. Are they good enough?

# 973 Declaration expressions

Last time, we had two issues:

1. Weren't ready to commit to scoping rules
2. Weren't sure that we could get decent error recovery on syntax

1 is dealt with. 
2 was more that it was hard to show intellisense because more things were legal

Scenario is introduce a local variable in expressions without having to use trivial pattern matching. Also ref.

We feel like we need to spend more time with it to judge its value. 8.0 for now to trigger that discussion.

# 881 and 33

Fits with nullable in 8.0

# 185

Settle this in the 7.3 timeframe

# 187 Blittable

# 435

# 287

# 32

# 125

Missing, but not much ask for it

# 111

We would want to deal with single parameters. A problem is that discards do not shadow today, whereas identifiers do. We may want to change that.

# 191 

Need more motivation

# 190

Some open design discussions

# 


