These two CS8629 diagnostics should not be generated:
#nullable enable
using System;
class C
{
void M(DateTime? a, DateTime? b)
{
if (a < b) // If this is true, neither variable can be null
{
// ⚠ CS8629 Nullable value type may be null.
// ↓
_ = a.Value;
// ↓
_ = b.Value;
}
}
}
Version Used: 17.0.0-p4.0
These two CS8629 diagnostics should not be generated:
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/expressions#lifted-operators: