/// <summary> /// Gets <paramref name="typeParameterSymbol"/> and its all constraint types. /// </summary> /// <param name="typeParameterSymbol">The typeParameterSymbol to act on.</param> /// <param name="includeInterfaces">(Optional) True to include, false to exclude the interfaces.</param> /// <returns/> public static IEnumerable <ITypeSymbol> GetTypeWithAllConstraintTypes(this ITypeParameterSymbol typeParameterSymbol, bool includeInterfaces = true) { var constraintTypes = typeParameterSymbol.GetAllConstraintTypes(includeInterfaces); return(typeParameterSymbol.ToEnumerable() .Concat(constraintTypes)); }