What should IEquatable.Equals(T obj) do when this == null and obj == null?
IEquatable.Equals(T obj)
this == null
obj == null
1) This code is generated
If this==null you will get a runtime exception calling Equals() on that object.