public static ValueTask <ImmutableArray <ISymbol> > FindBasesAsync( ISymbol symbol, Solution solution, CancellationToken cancellationToken ) { if ( symbol is INamedTypeSymbol namedTypeSymbol && ( namedTypeSymbol.TypeKind == TypeKind.Class || namedTypeSymbol.TypeKind == TypeKind.Interface || namedTypeSymbol.TypeKind == TypeKind.Struct ) ) { return(ValueTaskFactory.FromResult( BaseTypeFinder.FindBaseTypesAndInterfaces(namedTypeSymbol) )); } if ( symbol.Kind == SymbolKind.Property || symbol.Kind == SymbolKind.Method || symbol.Kind == SymbolKind.Event ) { return(BaseTypeFinder.FindOverriddenAndImplementedMembersAsync( symbol, solution, cancellationToken )); } return(ValueTaskFactory.FromResult(ImmutableArray <ISymbol> .Empty)); }
private static async Task <ImmutableArray <SymbolAndProjectId> > FindBasesWorkerAsync( ISymbol symbol, Project project, CancellationToken cancellationToken) { if (symbol is INamedTypeSymbol namedTypeSymbol && (namedTypeSymbol.TypeKind == TypeKind.Class || namedTypeSymbol.TypeKind == TypeKind.Interface || namedTypeSymbol.TypeKind == TypeKind.Struct)) { return(await BaseTypeFinder.FindBaseTypesAndInterfacesAsync(namedTypeSymbol, project, cancellationToken).ConfigureAwait(false)); }
public static ImmutableArray <ISymbol> FindBases( ISymbol symbol, Solution solution, CancellationToken cancellationToken) { if (symbol is INamedTypeSymbol namedTypeSymbol && (namedTypeSymbol.TypeKind == TypeKind.Class || namedTypeSymbol.TypeKind == TypeKind.Interface || namedTypeSymbol.TypeKind == TypeKind.Struct)) { return(BaseTypeFinder.FindBaseTypesAndInterfaces(namedTypeSymbol)); }