Many TypeSymbol comparisons use ReferenceEquals or ignore certain aspects (custom modifiers, dynamic, tuple element names).
Consider requiring all callers to choose one of those two by marking the alternatives, TypeSymbol.operator== and TypeSymbol.Equals(object), as [Obsolete].
Callers would be required to use (object)x == y or TypeSymbol.Equals(TypeSymbol, TypeCompareKind).
Many
TypeSymbolcomparisons useReferenceEqualsor ignore certain aspects (custom modifiers,dynamic, tuple element names).Consider requiring all callers to choose one of those two by marking the alternatives,
TypeSymbol.operator==andTypeSymbol.Equals(object), as[Obsolete].Callers would be required to use
(object)x == yorTypeSymbol.Equals(TypeSymbol, TypeCompareKind).