The local returned from SemanticModel.GetDeclaredSymbol() for y1 has Type.NullableAnnotation == NullableAnnotation.NotAnnotated, but should be NullableAnnotation.Annotated instead.
Compare with the GetDeclaredSymbol() result for y2 which has Type.NullableAnnotation == NullableAnnotation.Annotated.
#nullable enable
class Program
{
static T F1<T>(T x1)
{
var y1 = x1;
y1 = default(T);
return y1;
}
static T F2<T>(T x2) where T : class
{
var y2 = x2;
y2 = default(T);
return y2;
}
}