The following should, but does not, produce a warning.
class Node
{
public Node? Next;
static void Mout(out Node node) => node = null!;
static void M(Node node)
{
try
{
Mout(out node.Next);
}
finally
{
Mout(out node); // might set node to one in which node.Next == null
}
node.Next.ToString(); // should be warning
}
}
The following should, but does not, produce a warning.