dotnet / dotnet/csharplang

Champion "Nullable reference types" (16.3, Core 3)

Open
#36 259 comments 267 reactions 1 assignee Assigned to @mattwar View on GitHub
Implemented Needs ECMA Spec Proposal champion
Dominant language
C#
Stars
12.7k
Forks
1.1k
Avg merge
11h 1m
Merged PRs (30d)
3

Description

- [X] Proposal added: [proposals/nullable-reference-types.md](https://github.com/dotnet/csharplang/blob/master/proposals/nullable-reference-types.md)
- [x] Discussed in LDM
- [ ] Decision in LDM
- [ ] Finalized (done, rejected, inactive)
- [ ] Spec'ed

Note this includes the `object` constraint: `where T : object`.

LDM:
- https://github.com/dotnet/csharplang/issues/790
- https://github.com/dotnet/csharplang/blob/master/meetings/2017/LDM-2017-10-04.md
- https://github.com/dotnet/csharplang/blob/master/meetings/2017/LDM-2017-10-11.md
- https://github.com/dotnet/csharplang/blob/master/meetings/2017/LDM-2017-11-08.md
- https://github.com/dotnet/csharplang/blob/master/meetings/2018/LDM-2018-02-21.md (cast)
- https://github.com/dotnet/csharplang/blob/master/meetings/2018/LDM-2018-02-28.md
- https://github.com/dotnet/csharplang/blob/master/meetings/2018/LDM-2018-03-14.md#nullable
- https://github.com/dotnet/csharplang/blob/master/meetings/2018/LDM-2018-03-21.md (`!`)
- https://github.com/dotnet/csharplang/blob/master/meetings/2018/LDM-2018-04-25.md (generics)
- https://github.com/dotnet/csharplang/blob/master/meetings/2018/LDM-2018-05-02.md#nullable-special-members (attributes)
- https://github.com/dotnet/csharplang/blob/master/meetings/2018/LDM-2018-05-14.md
- https://github.com/dotnet/csharplang/blob/master/meetings/2018/LDM-2018-05-30.md (URTANN and flag to turn feature on)
- https://github.com/dotnet/csharplang/blob/master/meetings/2018/LDM-2018-06-04.md (lambdas, local functions, Conditional methods)
- https://github.com/dotnet/csharplang/blob/master/meetings/2018/LDM-2018-07-11.md (feature flag, ephemeral oblivious)
- https://github.com/dotnet/csharplang/blob/master/meetings/2018/LDM-2018-07-16.md (NonNullTypes to opt-in and control warnings)
- https://github.com/dotnet/csharplang/blob/master/meetings/2018/LDM-2018-08-20.md (`!`, cast, impact of dereference on null-state, extension to nullable value types, `class?`, `MaybeNull`)
- https://github.com/dotnet/csharplang/blob/master/meetings/2018/LDM-2018-08-22.md#generic-constraints-with-nullable-reference-types
- https://github.com/dotnet/csharplang/blob/master/meetings/2018/LDM-2018-09-10.md#nullability-of-constraints-in-overriding
- https://github.com/dotnet/csharplang/blob/master/meetings/2018/LDM-2018-10-01.md (type inference)
- https://github.com/dotnet/csharplang/blob/master/meetings/2018/LDM-2018-10-03.md (expressing context)
- https://github.com/dotnet/csharplang/blob/master/meetings/2018/LDM-2018-10-10.md#nullable-reference-types-vs-switch-analysis (switch)
- https://github.com/dotnet/csharplang/blob/master/meetings/2018/LDM-2018-10-24.md (value types)
- https://github.com/dotnet/csharplang/blob/master/meetings/2018/LDM-2018-10-29.md
- https://github.com/dotnet/csharplang/blob/master/meetings/2018/LDM-2018-10-31.md#nullable
- https://github.com/dotnet/csharplang/blob/master/meetings/2018/LDM-2018-11-05.md#where-can-you-put-nullable
- https://github.com/dotnet/csharplang/blob/master/meetings/2018/LDM-2018-11-28.md#nullable-array-specifiers (nested arrays)
- https://github.com/dotnet/csharplang/blob/master/meetings/2018/LDM-2018-12-05.md (lattice)
- https://github.com/dotnet/csharplang/blob/master/meetings/2019/LDM-2019-01-07.md (OHI, parsing arrays)
- https://github.com/dotnet/csharplang/blob/master/meetings/2019/LDM-2019-01-09.md#warnings-for-non-nullable-fields-that-are-not-explicitly-initialized (field initializers, syntactic ambiguities)
- https://github.com/dotnet/csharplang/blob/master/meetings/2019/LDM-2019-02-13.md (ref assignments, nullability of `?.`, `!` on l-values, pure null tests)
- https://github.com/dotnet/csharplang/blob/master/meetings/2019/LDM-2019-02-20.md (pure null tests)
- https://github.com/dotnet/csharplang/blob/master/meetings/2019/LDM-2019-03-04.md#discussion (`default` loophole)
- https://github.com/dotnet/csharplang/blob/master/meetings/2019/LDM-2019-03-06.md (pure tests, reachability, anonymous type members, tuple conversions)
- https://github.com/dotnet/csharplang/blob/master/meetings/2019/LDM-2019-03-25.md#nullable-reference-types-shipping-annotations (external annotations)
- https://github.com/dotnet/csharplang/blob/master/meetings/2019/LDM-2019-03-27.md#nullable-reference-types
- https://github.com/dotnet/csharplang/blob/master/meetings/2019/LDM-2019-04-03.md (ambiguous overrides, dynamic)
- https://github.com/dotnet/csharplang/blob/master/meetings/2019/LDM-2019-04-15.md (implied nullable constraints)
- https://github.com/dotnet/csharplang/blob/master/meetings/2019/LDM-2019-04-22.md (finally blocks, partials)
- https://github.com/dotnet/csharplang/blob/master/meetings/2019/LDM-2019-04-24.md (`MaybeNull`)
- https://github.com/dotnet/csharplang/blob/master/meetings/2019/LDM-2019-05-13.md (controlling warnings)
- https://github.com/dotnet/csharplang/blob/master/meetings/2019/LDM-2019-05-15.md (attributes)
- https://github.com/dotnet/csharplang/blob/master/meetings/2019/LDM-2019-07-10.md (`[DoesNotReturn]`)
- https://github.com/dotnet/csharplang/blob/master/meetings/2019/LDM-2019-07-17.md (events)
- https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-01-06.md (attributes and method bodies, `Task` variance, cast)
- https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-01-08.md (`T??`)
- https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-02-05.md (attributes for dependent calls, pure null tests on unconstrained generic types)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.