private static IEnumerable<ITypeSymbol> GetInheritedTypeNames(ITypeSymbol symbol) { if (symbol.BaseType == null) { yield break; } yield return symbol.BaseType; foreach (var name in GetInheritedTypeNames(symbol.BaseType)) { yield return name; } }