public static bool IsException(ITypeSymbol typeSymbol, SemanticModel semanticModel) { if (typeSymbol == null) { throw new ArgumentNullException(nameof(typeSymbol)); } if (semanticModel == null) { throw new ArgumentNullException(nameof(semanticModel)); } return(typeSymbol.IsClass() && typeSymbol.EqualsOrDerivedFrom(semanticModel.GetTypeByMetadataName(MetadataNames.System_Exception))); }
public static bool IsTaskOrDerivedFromTask(this ITypeSymbol typeSymbol, SemanticModel semanticModel) { if (typeSymbol == null) { throw new ArgumentNullException(nameof(typeSymbol)); } if (semanticModel == null) { throw new ArgumentNullException(nameof(semanticModel)); } INamedTypeSymbol taskSymbol = semanticModel.GetTypeByMetadataName(MetadataNames.System_Threading_Tasks_Task); return(typeSymbol.EqualsOrDerivedFrom(taskSymbol)); }