Closed
Description
openedon Nov 21, 2019
Note: #14150 tracks introducing nullability to non-public parts as well (i.e. annotate the entire codebase), and isn't currently planned for 5.0.
This issue now tracks annotating the entire codebase for C# 8 NRTs.
Work status
- Analyzers
- Abstractions
- Change tracking (@smitpatel)
- Design (@bricelam)
- Diagnostics
- Extensions
- Infrastructure
- Internal
- Metadata
- Microsoft.Data.Sqlite
- Migrations (@bricelam)
- Proxies
- Query (leftovers in Cosmos, @smitpatel)
- Storage (leftovers in Cosmos, @roji)
- Tools & cmdline (@bricelam)
- Update (@roji)
- ValueGeneration (@roji)
Some specific leftovers we need to do:
- See if we want to somehow pass
nullablePublicOnly
to the compiler - but we use pubternal extensively. Making EF Core more trimming friendly may be an alternative. See Add nullablePublicOnly Roslyn Feature aspnetcore#29908. - Take care of MemberIdentity.Name (Annotate metadata for nullability, leaving only builders and conventions #23381, @roji). PR: Obsolete MemberIdentity.IsNone() #24437.
- INavigationBase.GetCollectionAccessor (https://github.com/dotnet/efcore/pull/24261/files#r582596243). There's at least one usage which relies on the null-returning behavior, and it's a public API... so not changing anything, at least for now.
- Search remaining instances of
#nullable disable
and see if we can get rid of them - Search remaining instances of TODO-NULLABLE and see if we can get rid of them
- Value converters (temporarily banged in Annotate Storage for nullability #23423, proper annotation should be part of Allow HasConversion/ValueConverters to convert nulls #13850, @ajcvickers)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment