# 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` 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 #