60 lines
1.8 KiB
Markdown
60 lines
1.8 KiB
Markdown
# C# Language Design Review Apr 2, 2018
|
|
|
|
***Warning: These are raw notes, and still need to be cleaned up. Read at your own peril!***
|
|
|
|
|
|
# C# 8.0
|
|
|
|
Tag with needs runtime support or ecosystem support
|
|
Process: make it more clear where we are. Help people understand when beating on a feature would be wasting their time.
|
|
|
|
# Nullable
|
|
|
|
Make sure we work backwards to understand how long it takes to build the whole experience.
|
|
|
|
## Dotted names
|
|
|
|
We probably have a good level of invalidation.
|
|
|
|
## Type strengthening
|
|
|
|
Based on null state and `!`. Should definitely keep that.
|
|
|
|
## !
|
|
|
|
Because `!` only applies "right here", it is ok to also silence warnings recursively. But we should not consider automatically flowing `!` on the given execution path then, because you may not always want to silence all warnings on the variable subsequently.
|
|
|
|
## Unannotated assemblies
|
|
|
|
Maybe there should be a warning that you are referencing unannotated assemblies.
|
|
|
|
## Tracking non-null variables and "W" warnings
|
|
|
|
Understand the motivation. This is ok.
|
|
|
|
## Type parameters
|
|
|
|
Unconstrained may be either nullable or nonnullable, so we have to be defensive. That's quite restrictive, but probably right.
|
|
|
|
## Structural relationships
|
|
|
|
In TypeScript there are more type relationships because of structural types. We don't even get to first base here.
|
|
|
|
# Ranges
|
|
|
|
## Open
|
|
|
|
Sure about syntax? Should there be `*` instead?
|
|
|
|
## From end
|
|
|
|
Indexing from end is probably more common in Python than any ranges at all! Cutting that off with `-x` syntax is a shame.
|
|
|
|
If we weren't doing `^`, just do ranges with positive numbers. Solve the "from end" problem in general or not at all.
|
|
|
|
## Conclusion
|
|
|
|
If indexing and multiple dimensions are in the core syntax, might as well do the whole enchilada. Optimize in compiler when using `^` on arrays and strings.
|
|
|
|
|