8 implementations of IMethodSymbol
GenerateDocumentationAndConfigFiles (1)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractMethodSymbol.cs (1)
13internal abstract class CodeGenerationAbstractMethodSymbol : CodeGenerationSymbol, IMethodSymbol
Microsoft.CodeAnalysis.Analyzers (1)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractMethodSymbol.cs (1)
13internal abstract class CodeGenerationAbstractMethodSymbol : CodeGenerationSymbol, IMethodSymbol
Microsoft.CodeAnalysis.CodeStyle.Fixes (1)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractMethodSymbol.cs (1)
13internal abstract class CodeGenerationAbstractMethodSymbol : CodeGenerationSymbol, IMethodSymbol
Microsoft.CodeAnalysis.CSharp (1)
Symbols\PublicModel\MethodSymbol.cs (1)
17internal sealed class MethodSymbol : Symbol, IMethodSymbol
Microsoft.CodeAnalysis.Features (1)
MetadataAsSource\AbstractMetadataAsSourceService.WrappedMethodSymbol.cs (1)
15private sealed class WrappedMethodSymbol(IMethodSymbol methodSymbol, bool canImplementImplicitly, IDocumentationCommentFormattingService docCommentFormattingService) : AbstractWrappedSymbol(methodSymbol, canImplementImplicitly, docCommentFormattingService), IMethodSymbol
Microsoft.CodeAnalysis.VisualBasic (1)
Symbols\MethodSymbol.vb (1)
16Implements IMethodSymbol, IMethodSymbolInternal
Microsoft.CodeAnalysis.Workspaces (1)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractMethodSymbol.cs (1)
13internal abstract class CodeGenerationAbstractMethodSymbol : CodeGenerationSymbol, IMethodSymbol
Roslyn.Diagnostics.Analyzers (1)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractMethodSymbol.cs (1)
13internal abstract class CodeGenerationAbstractMethodSymbol : CodeGenerationSymbol, IMethodSymbol
8055 references to IMethodSymbol
Aspire.Hosting.Analyzers (2)
AppHostAnalyzer.cs (2)
58var targetMethod = invocation.TargetMethod; 77IMethodSymbol targetMethod,
Aspire.Hosting.Integration.Analyzers (14)
AspireExportAnalyzer.cs (14)
75var exportsByKey = new ConcurrentDictionary<(string ExportId, string TargetType), ConcurrentBag<(IMethodSymbol Method, Location Location)>>(); 89if (c.OwningSymbol is not IMethodSymbol method || 123ConcurrentDictionary<(string ExportId, string TargetType), ConcurrentBag<(IMethodSymbol Method, Location Location)>> exportsByKey) 125var method = (IMethodSymbol)context.Symbol; 217var bag = exportsByKey.GetOrAdd(key, _ => new ConcurrentBag<(IMethodSymbol, Location)>()); 230IMethodSymbol method, 265IMethodSymbol method, 333IMethodSymbol method, 447var invokeMethod = namedType.DelegateInvokeMethod; 559IMethodSymbol method, 654var invokeMethod = namedDelegate.DelegateInvokeMethod; 762ConcurrentDictionary<(string ExportId, string TargetType), ConcurrentBag<(IMethodSymbol Method, Location Location)>> exportsByKey) 792private static bool TryGetEffectiveAspireExportAttribute(IMethodSymbol method, INamedTypeSymbol aspireExportAttribute, out AttributeData? exportAttribute, out AttributeData? containingTypeExportAttribute)
ConfigurationSchemaGenerator (18)
RuntimeSource\Configuration.Binder\ConfigurationBindingGenerator.Parser.cs (10)
84IMethodSymbol targetMethod = invocation.Operation.TargetMethod; 579private bool ConstructorParametersContainUnsupportedType(IMethodSymbol ctor) 600IMethodSymbol? ctor = null; 604IMethodSymbol? parameterlessCtor = null; 605IMethodSymbol? parameterizedCtor = null; 608foreach (IMethodSymbol candidate in typeSymbol.InstanceConstructors) 860member is IMethodSymbol { Parameters.Length: 1 } method && 876member is IMethodSymbol { Parameters.Length: 2 } method && 942_emitGenericParseEnum = _typeSymbols.Enum.GetMembers("Parse").Any(m => m is IMethodSymbol methodSymbol && methodSymbol.IsGenericMethod); 956if (throwIfNullMethod is IMethodSymbol throwIfNullMethodSymbol && throwIfNullMethodSymbol.IsStatic && throwIfNullMethodSymbol.Parameters.Length == 2)
RuntimeSource\Configuration.Binder\Parser\BinderInvocation.cs (1)
54if (operation.TargetMethod is not IMethodSymbol
RuntimeSource\Configuration.Binder\Parser\ConfigurationBinder.cs (2)
136IMethodSymbol targetMethod = operation.TargetMethod; 191IMethodSymbol targetMethod = operation.TargetMethod;
RuntimeSource\Configuration.Binder\Parser\OptionsBuilderConfigurationExtensions.cs (3)
17IMethodSymbol targetMethod = invocation.Operation.TargetMethod; 45IMethodSymbol targetMethod = operation.TargetMethod; 72IMethodSymbol targetMethod = invocation.Operation.TargetMethod;
RuntimeSource\Configuration.Binder\Parser\OptionsConfigurationServiceCollectionExtensions.cs (1)
18IMethodSymbol targetMethod = operation.TargetMethod;
RuntimeSource\Configuration.Binder\Specs\Members\PropertySpec.cs (1)
13IMethodSymbol? setMethod = property.SetMethod;
GenerateDocumentationAndConfigFiles (455)
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.cs (2)
30IMethodSymbol lambdaOrLocalFunction, 52IMethodSymbol localFunctionOrLambda,
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (12)
36private readonly Func<IMethodSymbol, ControlFlowGraph, AnalysisData, CancellationToken, BasicBlockAnalysisData> _analyzeLocalFunctionOrLambdaInvocation; 55private readonly PooledDictionary<IMethodSymbol, ControlFlowGraph> _localFunctionTargetsToAccessingCfgMap; 79PooledHashSet<IMethodSymbol> lambdaOrLocalFunctionsBeingAnalyzed, 80Func<IMethodSymbol, ControlFlowGraph, AnalysisData, CancellationToken, BasicBlockAnalysisData> analyzeLocalFunctionOrLambdaInvocation, 82PooledDictionary<IMethodSymbol, ControlFlowGraph> localFunctionTargetsToAccessingCfgMap, 112protected override PooledHashSet<IMethodSymbol> LambdaOrLocalFunctionsBeingAnalyzed { get; } 119Func<IMethodSymbol, ControlFlowGraph, AnalysisData, CancellationToken, BasicBlockAnalysisData> analyzeLocalFunctionOrLambdaInvocation) 133lambdaOrLocalFunctionsBeingAnalyzed: PooledHashSet<IMethodSymbol>.GetInstance(), 136localFunctionTargetsToAccessingCfgMap: PooledDictionary<IMethodSymbol, ControlFlowGraph>.GetInstance(), 157IMethodSymbol lambdaOrLocalFunction, 336ControlFlowGraph TryGetLocalFunctionControlFlowGraphInScope(IMethodSymbol localFunction) 501protected override BasicBlockAnalysisData AnalyzeLocalFunctionInvocationCore(IMethodSymbol localFunction, CancellationToken cancellationToken)
src\b310f676f7308b7f\SymbolUsageAnalysis.OperationTreeAnalysisData.cs (7)
18private readonly Func<IMethodSymbol, BasicBlockAnalysisData> _analyzeLocalFunction; 23PooledHashSet<IMethodSymbol> lambdaOrLocalFunctionsBeingAnalyzed, 24Func<IMethodSymbol, BasicBlockAnalysisData> analyzeLocalFunction) 36protected override PooledHashSet<IMethodSymbol> LambdaOrLocalFunctionsBeingAnalyzed { get; } 40Func<IMethodSymbol, BasicBlockAnalysisData> analyzeLocalFunction) 45lambdaOrLocalFunctionsBeingAnalyzed: PooledHashSet<IMethodSymbol>.GetInstance(), 49protected override BasicBlockAnalysisData AnalyzeLocalFunctionInvocationCore(IMethodSymbol localFunction, CancellationToken cancellationToken)
src\ce8c1e82c1124a2b\AbstractInitializerParameterService.cs (1)
24protected abstract SyntaxNode? GetAccessorBody(IMethodSymbol accessor, CancellationToken cancellationToken);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\DoNotCatchGeneralUnlessRethrown.cs (4)
34protected abstract Diagnostic CreateDiagnostic(IMethodSymbol containingMethod, SyntaxToken catchKeyword); 35protected virtual bool IsConfiguredDisallowedExceptionType(INamedTypeSymbol namedTypeSymbol, IMethodSymbol containingMethod, Compilation compilation, AnalyzerOptions analyzerOptions, CancellationToken cancellationToken) 62var method = (IMethodSymbol)operationBlockAnalysisContext.OwningSymbol;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (48)
26public static bool IsObjectEqualsOverride(this IMethodSymbol method) 40public static bool IsObjectEquals(this IMethodSymbol method) 54public static bool IsStaticObjectEqualsOrReferenceEquals(this IMethodSymbol method) 69private static bool IsObjectMethodOverride(IMethodSymbol method) 71IMethodSymbol overriddenMethod = method.OverriddenMethod; 89public static bool IsImplementationOfInterfaceMethod(this IMethodSymbol method, ITypeSymbol? typeArgument, [NotNullWhen(returnValue: true)] INamedTypeSymbol? interfaceType, string interfaceMethodName) 93return constructedInterface?.GetMembers(interfaceMethodName).FirstOrDefault() is IMethodSymbol interfaceMethod && 100public static bool IsDisposeImplementation(this IMethodSymbol method, Compilation compilation) 109public static bool IsAsyncDisposeImplementation(this IMethodSymbol method, Compilation compilation) 119public static bool IsDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iDisposable) 141public static bool IsAsyncDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iAsyncDisposable, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTaskType) 163private static bool HasDisposeMethodSignature(this IMethodSymbol method) 171public static bool HasDisposeSignatureByConvention(this IMethodSymbol method) 181public static bool HasDisposeBoolMethodSignature(this IMethodSymbol method) 192private static bool HasDisposeCloseMethodSignature(this IMethodSymbol method) 200private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 207private static bool HasDisposeAsyncMethodSignature(this IMethodSymbol method, 223private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 236private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 248public static DisposeMethodKind GetDisposeMethodKind(this IMethodSymbol method, Compilation compilation) 263this IMethodSymbol method, 311public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 317public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 324public static bool HasOptionalParameters(this IMethodSymbol methodSymbol) 329public static IEnumerable<IMethodSymbol> GetOverloads(this IMethodSymbol? method) 331var methods = method?.ContainingType?.GetMembers(method.Name).OfType<IMethodSymbol>(); 334foreach (var member in methods) 364public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 385public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 394public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 406public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 420private static readonly BoundedCache<Compilation, ConcurrentDictionary<IMethodSymbol, IBlockOperation?>> s_methodToTopmostOperationBlockCache 426public static IBlockOperation? GetTopmostOperationBlock(this IMethodSymbol method, Compilation compilation, CancellationToken cancellationToken = default) 432IBlockOperation? ComputeTopmostOperationBlock(IMethodSymbol unused) 465public static bool IsLambdaOrLocalFunctionOrDelegate(this IMethodSymbol method) 474public static bool IsLambdaOrLocalFunction(this IMethodSymbol method) 483public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 493public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 505public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 519public static bool HasParameterWithDelegateType(this IMethodSymbol methodSymbol) 527public static bool IsArgumentNullCheckMethod(this IMethodSymbol method) 536public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 547public static ImmutableArray<IMethodSymbol> GetOriginalDefinitions(this IMethodSymbol methodSymbol) 549ImmutableArray<IMethodSymbol>.Builder originalDefinitionsBuilder = ImmutableArray.CreateBuilder<IMethodSymbol>(); 566.OfType<IMethodSymbol>()
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (1)
69return symbol.GetMembers(WellKnownMemberNames.ObjectEquals).OfType<IMethodSymbol>().Any(m => m.IsObjectEqualsOverride());
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (2)
331this IOperation operation, IMethodSymbol lambdaOrLocalFunction, out PooledHashSet<ISymbol> builder) 339using var _ = PooledHashSet<IMethodSymbol>.GetInstance(out var nestedLambdasAndLocalFunctions);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ISymbolExtensions.cs (10)
72public static bool ParametersAreSame(this IMethodSymbol method1, IMethodSymbol method2) 93public static bool ParameterTypesAreSame(this IMethodSymbol method1, IMethodSymbol method2, IEnumerable<int> parameterIndices, CancellationToken cancellationToken) 128public static bool ReturnTypeAndParametersAreSame(this IMethodSymbol method, IMethodSymbol otherMethod) 198if (symbol is IMethodSymbol methodSymbol && !methodSymbol.ExplicitInterfaceImplementations.IsEmpty) 331public static bool HasDerivedMethodAttribute(this IMethodSymbol symbol, [NotNullWhen(returnValue: true)] INamedTypeSymbol? attribute) 357=> (symbol as IMethodSymbol)?.IsLambdaOrLocalFunction() == true; 376IMethodSymbol method => method.IsReadOnly,
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (1)
132return type.GetMembers("Dispose").OfType<IMethodSymbol>()
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Options\SymbolModifiers.cs (1)
81if (symbol is IMethodSymbol method &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\CollectionExpressionUtilities.cs (9)
98var capacityConstructor = GetAccessibleInstanceConstructor(constructors, c => c.Parameters is [{ Name: "capacity", Type.SpecialType: SpecialType.System_Int32 }]); 102var noArgConstructor = 122IMethodSymbol? GetAccessibleInstanceConstructor(ImmutableArray<IMethodSymbol> constructors, Func<IMethodSymbol, bool> predicate) 124var constructor = constructors.FirstOrDefault(c => !c.IsStatic && predicate(c)); 136/// <item>their <see cref="IMethodSymbol.Arity"/> must match that of <paramref 145public static ImmutableArray<IMethodSymbol>? TryGetCollectionBuilderFactoryMethods( 164.OfType<IMethodSymbol>()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (3)
235var containingMethod = TryGetContainingAnonymousFunctionOrLocalFunction(operation) ?? (containingSymbol as IMethodSymbol); 239public static IMethodSymbol? TryGetContainingAnonymousFunctionOrLocalFunction(this IOperation? operation)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.AnalysisData.cs (3)
72protected abstract PooledHashSet<IMethodSymbol> LambdaOrLocalFunctionsBeingAnalyzed { get; } 91public BasicBlockAnalysisData AnalyzeLocalFunctionInvocation(IMethodSymbol localFunction, CancellationToken cancellationToken) 126protected abstract BasicBlockAnalysisData AnalyzeLocalFunctionInvocationCore(IMethodSymbol localFunction, CancellationToken cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.cs (1)
44BasicBlockAnalysisData AnalyzeLocalFunction(IMethodSymbol localFunction)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (1)
344private void AnalyzeLocalFunctionInvocation(IMethodSymbol localFunction)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (1)
44if (symbol is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (3)
167switch (((IMethodSymbol)currentSymbol).MethodKind) 363SymbolCategory.Method => symbol is IMethodSymbol method && method.MethodKind == (MethodKind)_kind, 507if (Modifiers.HasFlag(Modifiers.Async) && kind == SymbolKind.Method && ((IMethodSymbol)symbol).IsAsync)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ForEachSymbols.cs (6)
8IMethodSymbol? getEnumeratorMethod, 9IMethodSymbol? moveNextMethod, 11IMethodSymbol? disposeMethod, 14public readonly IMethodSymbol? GetEnumeratorMethod = getEnumeratorMethod; 15public readonly IMethodSymbol? MoveNextMethod = moveNextMethod; 17public readonly IMethodSymbol? DisposeMethod = disposeMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (5)
83IMethodSymbol? GetGetAwaiterMethod(SemanticModel semanticModel, SyntaxNode node); 85ImmutableArray<IMethodSymbol> GetDeconstructionAssignmentMethods(SemanticModel semanticModel, SyntaxNode node); 87ImmutableArray<IMethodSymbol> GetDeconstructionForEachMethods(SemanticModel semanticModel, SyntaxNode node); 106ImmutableArray<IMethodSymbol> GetLocalFunctionSymbols(Compilation compilation, ISymbol symbol, CancellationToken cancellationToken); 123bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFactsExtensions.cs (1)
112=> symbol is IMethodSymbol methodSymbol &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
63if (isAnonymousDelegateType && symbol is IMethodSymbol methodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.BuiltinOperatorSymbolKey.cs (6)
11private sealed class BuiltinOperatorSymbolKey : AbstractSymbolKey<IMethodSymbol> 15public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 23SymbolKeyReader reader, IMethodSymbol? contextualSymbol, out string? failureReason) 28using var parameterTypes = reader.ReadSymbolKeyArray<IMethodSymbol, ITypeSymbol>( 54var unaryOperator = reader.Compilation.CreateBuiltinOperator(name, returnTypeSymbol, parameterTypes[0]); 58var binaryOperator = reader.Compilation.CreateBuiltinOperator(name, returnTypeSymbol, parameterTypes[0], parameterTypes[1]);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (5)
33/// <item>Two <see cref="IMethodSymbol"/>s are the "same" if they have 36/// equal <see cref="IMethodSymbol.Arity"/>, 37/// the "same" <see cref="IMethodSymbol.TypeArguments"/>, and have 76/// cref="IRangeVariableSymbol"/> and <see cref="MethodKind.LocalFunction"/> <see cref="IMethodSymbol"/>s can also 323IMethodSymbol { MethodKind: MethodKind.LocalFunction } => true,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.MethodSymbolKey.cs (22)
11private sealed class ReducedExtensionMethodSymbolKey : AbstractSymbolKey<IMethodSymbol> 15public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 24SymbolKeyReader reader, IMethodSymbol? contextualMethod, out string? failureReason) 41using var result = PooledArrayBuilder<IMethodSymbol>.GetInstance(); 42foreach (var reducedFrom in reducedFromResolution.OfType<IMethodSymbol>()) 55private sealed class ConstructedMethodSymbolKey : AbstractSymbolKey<IMethodSymbol> 59public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 66SymbolKeyReader reader, IMethodSymbol? contextualMethod, out string? failureReason) 70using var typeArguments = reader.ReadSymbolKeyArray<IMethodSymbol, ITypeSymbol>( 101using var result = PooledArrayBuilder<IMethodSymbol>.GetInstance(); 102foreach (var method in constructedFrom.OfType<IMethodSymbol>()) 123private sealed class MethodSymbolKey : AbstractSymbolKey<IMethodSymbol> 127public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 160SymbolKeyReader reader, IMethodSymbol? contextualSymbol, out string? failureReason) 179using var methods = GetMembersOfNamedType<IMethodSymbol>(containingType, metadataName: null); 180IMethodSymbol? method = null; 181foreach (var candidate in methods) 223_ = reader.ReadSymbolKeyArray<IMethodSymbol, ITypeSymbol>( 243private static IMethodSymbol? Resolve( 244SymbolKeyReader reader, bool isPartialImplementationPart, IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (2)
45case IMethodSymbol method: 64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyReader.cs (5)
331private readonly List<IMethodSymbol?> _methodSymbolStack = []; 409public MethodPopper PushMethod(IMethodSymbol? method) 415private void PopMethod(IMethodSymbol? method) 422public IMethodSymbol? ResolveMethod(int index) 441public readonly ref struct MethodPopper(SymbolKeyReader reader, IMethodSymbol? method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyWriter.cs (5)
69private readonly List<IMethodSymbol> _methodSymbolStack = []; 362public override void VisitMethod(IMethodSymbol methodSymbol) 499var method = _methodSymbolStack[i]; 512public void PushMethod(IMethodSymbol method) 515public void PopMethod(IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.TypeParameterOrdinalSymbolKey.cs (1)
22var method = reader.ResolveMethod(methodIndex);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (14)
112SemanticModel model, TForEachStatementSyntax forEach, out IMethodSymbol getEnumeratorMethod, out ITypeSymbol elementType, out ImmutableArray<ILocalSymbol> localVariables); 379symbol = ((IMethodSymbol)symbol).GetConstructedReducedFrom()!; 384newSymbol = ((IMethodSymbol)newSymbol).GetConstructedReducedFrom()!; 404if (symbol is IMethodSymbol methodSymbol && newSymbol is IMethodSymbol newMethodSymbol) 478if (symbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction } methodSymbol && 479newSymbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction } newMethodSymbol) 757return symbol is IMethodSymbol { ContainingType.SpecialType: SpecialType.System_Object } 778GetForEachSymbols(this.OriginalSemanticModel, forEachStatement, out var originalGetEnumerator, out var originalElementType, out var originalLocalVariables); 779GetForEachSymbols(this.SpeculativeSemanticModel, newForEachStatement, out var newGetEnumerator, out var newElementType, out var newLocalVariables); 806private bool ReplacementBreaksForEachGetEnumerator(IMethodSymbol getEnumerator, IMethodSymbol newGetEnumerator, TExpressionSyntax newForEachStatementExpression) 875=> symbol is IMethodSymbol { MethodKind: MethodKind.DelegateInvoke }; 1048return receiverSymbol is IMethodSymbol or IPropertySymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\LightweightOverloadResolution.cs (12)
31public IMethodSymbol? RefineOverload(SymbolInfo symbolInfo, ImmutableArray<IMethodSymbol> candidates) 34public (IMethodSymbol? method, int parameterIndex) RefineOverloadAndPickParameter(SymbolInfo symbolInfo, ImmutableArray<IMethodSymbol> candidates) 38return symbolInfo.Symbol is IMethodSymbol method 43public int FindParameterIndexIfCompatibleMethod(IMethodSymbol method) 52private (IMethodSymbol? symbol, int parameterIndex) GuessCurrentSymbolAndParameter(ImmutableArray<IMethodSymbol> methodGroup) 56foreach (var method in methodGroup) 73private (IMethodSymbol? method, int parameterIndex) TryFindParameterIndexIfCompatibleMethod(IMethodSymbol method) 185private bool TryPrepareArgumentToParameterMap(IMethodSymbol method, ref TemporaryArray<int> argumentToParameterMap)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (2)
371public static IMethodSymbol? GetTopLevelStatementsMethod(this Compilation compilation) 377if (candidateMember is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (11)
19internal static IMethodSymbol? TryGetCorrespondingExtensionBlockMethod(this IMethodSymbol methodSymbol) 33if (member is IMethodSymbol method && 49public static ImmutableArray<IMethodSymbol> GetAllMethodSymbolsOfPartialParts(this IMethodSymbol method) 72public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 77public static bool TryGetPredefinedComparisonOperator(this IMethodSymbol symbol, out PredefinedOperator op) 101public static PredefinedOperator GetPredefinedOperator(this IMethodSymbol symbol) 131public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 142public static bool IsAsyncReturningVoidTask(this IMethodSymbol method, Compilation compilation) 160public static bool IsPrimaryConstructor(this IMethodSymbol constructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (9)
136static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 184IMethodSymbol method => method.ExplicitInterfaceImplementations.Length > 0, 235static bool IsNonPublicImplementableAccessor(IMethodSymbol? accessor) 242if (member is IMethodSymbol { IsStatic: true, IsAbstract: true, MethodKind: MethodKind.UserDefinedOperator } method) 335private static bool IsInaccessibleImplementableAccessor(IMethodSymbol? accessor, ISymbol within) 439case IMethodSymbol method: 651IMethodSymbol { MethodKind: MethodKind.Ordinary, CanBeReferencedByName: true } => true, 652IMethodSymbol { MethodKind: MethodKind.UserDefinedOperator } => true, 671return member is IMethodSymbol
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IParameterSymbolExtensions.cs (2)
31ContainingSymbol: IMethodSymbol 63ContainingSymbol: IMethodSymbol
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions_Accessibility.cs (2)
107var funcPtrSignature = ((IFunctionPointerTypeSymbol)symbol).Signature; 156if (symbol is IMethodSymbol { MethodKind: MethodKind.BuiltinOperator })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (43)
87IMethodSymbol method => method.OverriddenMethod, 110IMethodSymbol? bestMethod = null; 128else if (member is IMethodSymbol method) 145IMethodSymbol method => ImmutableArray<ISymbol>.CastUp(method.ExplicitInterfaceImplementations), 199if (symbol is IMethodSymbol 241=> symbol is IMethodSymbol { MethodKind: MethodKind.AnonymousFunction }; 268=> symbol is IMethodSymbol { MethodKind: MethodKind.ReducedExtension }; 273/// <inheritdoc cref="IMethodSymbol.IsExtensionMethod"/> 275=> symbol is IMethodSymbol { IsExtensionMethod: true }; 278=> symbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction }; 287=> symbol is IMethodSymbol { MethodKind: MethodKind.Constructor }; 290=> symbol is IMethodSymbol { MethodKind: MethodKind.StaticConstructor }; 293=> symbol is IMethodSymbol { MethodKind: MethodKind.Destructor }; 296=> symbol is IMethodSymbol { MethodKind: MethodKind.UserDefinedOperator }; 299=> symbol is IMethodSymbol { MethodKind: MethodKind.Conversion }; 302=> symbol is IMethodSymbol { MethodKind: MethodKind.Ordinary }; 305=> symbol is IMethodSymbol { MethodKind: MethodKind.Ordinary or MethodKind.LocalFunction }; 344IMethodSymbol methodSymbol => methodSymbol.ReturnType, 355SymbolKind.Method => ((IMethodSymbol)symbol).Arity, 370symbol = ((IMethodSymbol)symbol).GetConstructedReducedFrom(); 375if (symbol.ContainingSymbol is IMethodSymbol method) 393var method = parameter.ContainingSymbol as IMethodSymbol; 426IMethodSymbol m => m.Parameters, 434IMethodSymbol m => m.TypeParameters, 455IMethodSymbol m => m.TypeArguments, 500if (symbol is IMethodSymbol method && method.Parameters.All(p => p.RefKind == RefKind.None)) 656=> (symbol as IMethodSymbol)?.MethodKind.IsPropertyAccessor() == true; 659=> symbol is IMethodSymbol { MethodKind: MethodKind.EventAdd or MethodKind.EventRaise or MethodKind.EventRemove }; 685var methodSymbol = symbol as IMethodSymbol; 709var getAwaiters = potentialGetAwaiters.OfType<IMethodSymbol>().Where(x => !x.Parameters.Any()); 713public static bool IsValidGetAwaiter(this IMethodSymbol symbol) 717private static bool VerifyGetAwaiter(IMethodSymbol getAwaiter) 731var methods = returnType.GetMembers().OfType<IMethodSymbol>(); 747public static bool IsValidGetEnumerator(this IMethodSymbol symbol) 751private static bool VerifyGetEnumerator(IMethodSymbol getEnumerator) 771if (!members.OfType<IMethodSymbol>().Any(x => 787public static bool IsValidGetAsyncEnumerator(this IMethodSymbol symbol) 791private static bool VerifyGetAsyncEnumerator(IMethodSymbol getAsyncEnumerator) 814if (!members.OfType<IMethodSymbol>().Any(x => x.Name == WellKnownMemberNames.MoveNextAsyncMethodName)) 896[NotNullWhen(true)] out IMethodSymbol? classicExtensionMethod) 898if (symbol is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
108public override bool VisitMethod(IMethodSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.cs (2)
412.SelectAccessibleMembers<IMethodSymbol>(WellKnownMemberNames.CollectionInitializerAddMethodName, within ?? typeSymbol) 413.OfType<IMethodSymbol>()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SignatureComparer.cs (12)
43SymbolKind.Method => HaveSameSignature((IMethodSymbol)symbol1, (IMethodSymbol)symbol2, caseSensitive), 67public static bool BadPropertyAccessor(IMethodSymbol? method1, IMethodSymbol? method2) 73public bool HaveSameSignature(IMethodSymbol method1, 74IMethodSymbol method2, 162var method1 = (IMethodSymbol)symbol1; 163var method2 = (IMethodSymbol)symbol2; 208private bool HaveSameSignatureAndConstraintsAndReturnType(IMethodSymbol method1, IMethodSymbol method2)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (6)
149public bool ReturnTypeEquals(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 194private static bool IsConstructedFromSelf(IMethodSymbol symbol) 200private static bool CheckContainingType(IMethodSymbol x) 231private static bool IsPartialMethodDefinitionPart(IMethodSymbol symbol) 234private static bool IsPartialMethodImplementationPart(IMethodSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (8)
124SymbolKind.Method => MethodsAreEquivalent((IMethodSymbol)x, (IMethodSymbol)y, equivalentTypesWithDifferingAssemblies), 170private bool MethodsAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, bool considerReturnRefKinds = false) 186var rx = x.ReducedFrom; 187var ry = y.ReducedFrom; 486internal bool ReturnTypesAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (2)
68SymbolKind.Method => CombineHashCodes((IMethodSymbol)x, currentHash), 112private int CombineHashCodes(IMethodSymbol x, int currentHash)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractCodeGenerationService.cs (7)
53public TDeclarationNode AddMethod<TDeclarationNode>(TDeclarationNode destination, IMethodSymbol method, CodeGenerationContextInfo info, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode 82public SyntaxNode? CreateMethodDeclaration(IMethodSymbol method, CodeGenerationDestination destination, CodeGenerationContextInfo info, CancellationToken cancellationToken) 125protected abstract TDeclarationNode AddMethod<TDeclarationNode>(TDeclarationNode destination, IMethodSymbol method, TCodeGenerationContextInfo info, IList<bool>? availableIndices, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode; 147public abstract SyntaxNode? CreateMethodDeclaration(IMethodSymbol method, CodeGenerationDestination destination, TCodeGenerationContextInfo info, CancellationToken cancellationToken); 348IMethodSymbol method => CreateMethodDeclaration(method, codeGenerationDestination, info, cancellationToken), 366IMethodSymbol method => AddMethod(currentDestination, method, info, availableIndices, cancellationToken), 446public Task<Document> AddMethodAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractFlagsEnumGenerator.cs (1)
44var ctor = attribute.AttributeConstructor;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationSymbolFactory.cs (28)
33IMethodSymbol? addMethod = null, 34IMethodSymbol? removeMethod = null, 35IMethodSymbol? raiseMethod = null) 52IMethodSymbol? getMethod, 53IMethodSymbol? setMethod, 80ImmutableArray<IParameterSymbol> parameters, IMethodSymbol? getMethod, IMethodSymbol? setMethod, 119public static IMethodSymbol CreateConstructorSymbol( 138public static IMethodSymbol CreateDestructorSymbol( 147internal static IMethodSymbol CreateMethodSymbol( 154ImmutableArray<IMethodSymbol> explicitInterfaceImplementations, 172public static IMethodSymbol CreateMethodSymbol( 176ImmutableArray<IMethodSymbol> explicitInterfaceImplementations, 191public static IMethodSymbol CreateOperatorSymbol( 219public static IMethodSymbol CreateConversionSymbol( 244public static IMethodSymbol CreateConversionSymbol( 356internal static IMethodSymbol CreateAccessorSymbol( 357IMethodSymbol accessor, 360ImmutableArray<IMethodSymbol> explicitInterfaceImplementations = default, 382public static IMethodSymbol CreateAccessorSymbol( 470var invokeMethod = CreateMethodSymbol( 510internal static IMethodSymbol CreateMethodSymbol( 511IMethodSymbol method, 515ImmutableArray<IMethodSymbol> explicitInterfaceImplementations = default, 549IMethodSymbol? getMethod = null, 550IMethodSymbol? setMethod = null, 575IMethodSymbol? addMethod = null, 576IMethodSymbol? removeMethod = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerator.cs (1)
44public static Task<Document> AddMethodDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\ICodeGenerationService.cs (3)
33SyntaxNode? CreateMethodDeclaration(IMethodSymbol method, CodeGenerationDestination destination, CodeGenerationContextInfo info, CancellationToken cancellationToken); 63TDeclarationNode AddMethod<TDeclarationNode>(TDeclarationNode destination, IMethodSymbol method, CodeGenerationContextInfo info, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode; 143Task<Document> AddMethodAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractMethodSymbol.cs (12)
15public new IMethodSymbol OriginalDefinition { get; protected set; } 45public abstract IMethodSymbol ConstructedFrom { get; } 48public abstract IMethodSymbol OverriddenMethod { get; } 49public abstract IMethodSymbol ReducedFrom { get; } 51public abstract IMethodSymbol ReduceExtensionMethod(ITypeSymbol receiverType); 52public abstract ImmutableArray<IMethodSymbol> ExplicitInterfaceImplementations { get; } 53public abstract IMethodSymbol PartialDefinitionPart { get; } 54public abstract IMethodSymbol PartialImplementationPart { get; } 105public IMethodSymbol AssociatedExtensionImplementation => null; 112public IMethodSymbol Construct(params ITypeSymbol[] typeArguments) 115public IMethodSymbol Construct(ImmutableArray<ITypeSymbol> typeArguments, ImmutableArray<CodeAnalysis.NullableAnnotation> typeArgumentNullableAnnotations) 121public IMethodSymbol ReduceExtensionMember(ITypeSymbol receiverType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractNamedTypeSymbol.cs (4)
76public abstract IMethodSymbol DelegateInvokeMethod { get; } 81public abstract ImmutableArray<IMethodSymbol> InstanceConstructors { get; } 82public abstract ImmutableArray<IMethodSymbol> StaticConstructors { get; } 83public abstract ImmutableArray<IMethodSymbol> Constructors { get; }
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAttributeData.cs (1)
21protected override IMethodSymbol CommonAttributeConstructor => null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructedMethodSymbol.cs (7)
69public override IMethodSymbol ConstructedFrom => _constructedFrom; 76public override IMethodSymbol OverriddenMethod 80public override IMethodSymbol ReducedFrom 87public override IMethodSymbol ReduceExtensionMethod(ITypeSymbol receiverType) 93public override ImmutableArray<IMethodSymbol> ExplicitInterfaceImplementations 97public override IMethodSymbol PartialDefinitionPart 101public override IMethodSymbol PartialImplementationPart
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructedNamedTypeSymbol.cs (4)
47public override IMethodSymbol DelegateInvokeMethod 60public override ImmutableArray<IMethodSymbol> InstanceConstructors 69public override ImmutableArray<IMethodSymbol> StaticConstructors 78public override ImmutableArray<IMethodSymbol> Constructors
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructorInfo.cs (10)
12private static readonly ConditionalWeakTable<IMethodSymbol, CodeGenerationConstructorInfo> s_constructorToInfoMap = new(); 38IMethodSymbol constructor, 50private static CodeGenerationConstructorInfo? GetInfo(IMethodSymbol method) 56public static ImmutableArray<SyntaxNode> GetThisConstructorArgumentsOpt(IMethodSymbol constructor) 59public static ImmutableArray<SyntaxNode> GetBaseConstructorArgumentsOpt(IMethodSymbol constructor) 62public static ImmutableArray<SyntaxNode> GetStatements(IMethodSymbol constructor) 65public static string GetTypeName(IMethodSymbol constructor) 68public static bool GetIsUnsafe(IMethodSymbol constructor) 71public static bool GetIsPrimaryConstructor(IMethodSymbol constructor) 83private static string GetTypeName(CodeGenerationConstructorInfo? info, IMethodSymbol constructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationDestructorInfo.cs (6)
14private static readonly ConditionalWeakTable<IMethodSymbol, CodeGenerationDestructorInfo> s_destructorToInfoMap = new(); 28IMethodSymbol destructor, 36private static CodeGenerationDestructorInfo GetInfo(IMethodSymbol method) 42public static ImmutableArray<SyntaxNode> GetStatements(IMethodSymbol destructor) 45public static string GetTypeName(IMethodSymbol destructor) 51private static string GetTypeName(CodeGenerationDestructorInfo info, IMethodSymbol constructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationEventSymbol.cs (6)
19IMethodSymbol? addMethod, 20IMethodSymbol? removeMethod, 21IMethodSymbol? raiseMethod) : CodeGenerationSymbol(containingType?.ContainingAssembly, containingType, attributes, declaredAccessibility, modifiers, name), IEventSymbol 28public IMethodSymbol? AddMethod { get; } = addMethod; 29public IMethodSymbol? RemoveMethod { get; } = removeMethod; 30public IMethodSymbol? RaiseMethod { get; } = raiseMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationMethodInfo.cs (9)
14private static readonly ConditionalWeakTable<IMethodSymbol, CodeGenerationMethodInfo> s_methodToInfoMap = new(); 40IMethodSymbol method, 52private static CodeGenerationMethodInfo GetInfo(IMethodSymbol method) 58public static ImmutableArray<SyntaxNode> GetStatements(IMethodSymbol method) 61public static ImmutableArray<SyntaxNode> GetHandlesExpressions(IMethodSymbol method) 64public static bool GetIsNew(IMethodSymbol method) 67public static bool GetIsUnsafe(IMethodSymbol method) 70public static bool GetIsPartial(IMethodSymbol method) 73public static bool GetIsAsyncMethod(IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationMethodSymbol.cs (8)
19public override ImmutableArray<IMethodSymbol> ExplicitInterfaceImplementations { get; } 29ImmutableArray<IMethodSymbol> explicitInterfaceImplementations, 98public override IMethodSymbol ConstructedFrom => this; 105public override IMethodSymbol OverriddenMethod => null; 107public override IMethodSymbol ReducedFrom => null; 112public override IMethodSymbol ReduceExtensionMethod(ITypeSymbol receiverType) 115public override IMethodSymbol PartialImplementationPart => null; 117public override IMethodSymbol PartialDefinitionPart => null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamedTypeSymbol.cs (7)
91public override IMethodSymbol DelegateInvokeMethod 96? this.GetMembers(WellKnownMemberNames.DelegateInvokeName).OfType<IMethodSymbol>().FirstOrDefault() 163public override ImmutableArray<IMethodSymbol> InstanceConstructors 168return [.. this.GetMembers().OfType<IMethodSymbol>().Where(m => m.MethodKind == MethodKind.Constructor && !m.IsStatic)]; 172public override ImmutableArray<IMethodSymbol> StaticConstructors 177return [.. this.GetMembers().OfType<IMethodSymbol>().Where(m => m.MethodKind == MethodKind.StaticConstructor && m.IsStatic)]; 181public override ImmutableArray<IMethodSymbol> Constructors
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationPropertySymbol.cs (4)
23IMethodSymbol getMethod, 24IMethodSymbol setMethod) : CodeGenerationSymbol(containingType?.ContainingAssembly, containingType, attributes, declaredAccessibility, modifiers, name), IPropertySymbol 33public IMethodSymbol GetMethod { get; } = getMethod; 34public IMethodSymbol SetMethod { get; } = setMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationSymbol.cs (2)
81public static IMethodSymbol ContainingMethod => null; 165public ImmutableArray<AttributeData> GetAttributes(IMethodSymbol attributeConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (2)
72public IMethodSymbol DeclaringMethod 76return this.ContainingSymbol as IMethodSymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\IMethodSymbolExtensions.cs (9)
18public static IMethodSymbol EnsureNonConflictingNames( 19this IMethodSymbol method, INamedTypeSymbol containingType, ISyntaxFactsService syntaxFacts) 39var updatedMethod = method.RenameTypeParameters(newTypeParameterNames); 43public static IMethodSymbol RenameTypeParameters(this IMethodSymbol method, ImmutableArray<string> newNames) 75public static IMethodSymbol RenameParameters( 76this IMethodSymbol method, ImmutableArray<string> parameterNames) 141public static IMethodSymbol RemoveInaccessibleAttributesAndAttributesOfTypes( 142this IMethodSymbol method, ISymbol accessibleWithin,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\ISymbolExtensions.cs (2)
15IMethodSymbol method => method.PartialDefinitionPart != null || method.PartialImplementationPart != null, 53IMethodSymbol method => method.ReduceExtensionMember(receiverType),
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateEqualsMethod.cs (8)
24public static IMethodSymbol CreateEqualsMethod( 48public static IMethodSymbol CreateEqualsMethod(this Compilation compilation, ImmutableArray<SyntaxNode> statements) 51private static IMethodSymbol CreateEqualsMethod( 75public static IMethodSymbol CreateIEquatableEqualsMethod( 88var methodSymbol = constructedEquatableType 90.OfType<IMethodSymbol>() 463from method in baseType.GetMembers(EqualsName).OfType<IMethodSymbol>() 500var constructor = CodeGenerationSymbolFactory.CreateConstructorSymbol(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateGetHashCodeMethod.cs (3)
98var baseHashCode = GetBaseGetHashCodeMethod(containingType); 192public static IMethodSymbol? GetBaseGetHashCodeMethod(INamedTypeSymbol containingType) 205from method in baseType.GetMembers(GetHashCodeName).OfType<IMethodSymbol>()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions.cs (1)
95this SyntaxGenerator generator, IMethodSymbol method, ISymbol throughMember)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\InitializeParameter\InitializeParameterHelpersCore.cs (1)
20if (parameter.ContainingSymbol is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SemanticsFactsService\AbstractSemanticFactsService.cs (13)
106protected static IMethodSymbol? FindDisposeMethod(Compilation compilation, ITypeSymbol? type, bool isAsync) 118if (impl is IMethodSymbol implMethod) 136.FirstOrDefault(m => m is IMethodSymbol { DeclaredAccessibility: Accessibility.Public, ReturnType: var returnType, Parameters.Length: 0 } && 137SymbolEqualityComparer.Default.Equals(returnType, valueTaskType)) is IMethodSymbol disposeMethodFromPattern) 152.FirstOrDefault(m => m is IMethodSymbol { DeclaredAccessibility: Accessibility.Public, ReturnsVoid: true, Parameters.Length: 0 }) is IMethodSymbol disposeMethodFromPattern) 165(INamedTypeSymbol?, IMethodSymbol?) GetIDisposableInterfaceAndDisposeMethod(string typeName, string methodName) 168return (disposableType, disposableType?.GetMembers().OfType<IMethodSymbol>().FirstOrDefault(m => m.Parameters.Length == 0 && m.Name == methodName)); 216public IMethodSymbol? GetGetAwaiterMethod(SemanticModel semanticModel, SyntaxNode node) 219public ImmutableArray<IMethodSymbol> GetDeconstructionAssignmentMethods(SemanticModel semanticModel, SyntaxNode node) 222public ImmutableArray<IMethodSymbol> GetDeconstructionForEachMethods(SemanticModel semanticModel, SyntaxNode node) 249public ImmutableArray<IMethodSymbol> GetLocalFunctionSymbols(Compilation compilation, ISymbol symbol, CancellationToken cancellationToken) 261public bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SemanticsFactsService\ISemanticFactsService.cs (1)
47IMethodSymbol? TryGetDisposeMethod(SemanticModel semanticModel, SyntaxNode node, CancellationToken cancellationToken);
ILLink.RoslynAnalyzer (146)
COMAnalyzer.cs (1)
43var targetMethod = invocationOperation.TargetMethod;
DataFlow\DynamicallyAccessedMembersBinder.cs (13)
36foreach (var c in typeDefinition.ApplyIncludeInherited(t => t.GetConstructorsOnType(filter: null, bindingFlags: BindingFlags.NonPublic), withInherited)) 43foreach (var c in typeDefinition.ApplyIncludeInherited(t => t.GetConstructorsOnType(filter: null, bindingFlags: BindingFlags.Public), withInherited)) 49foreach (var c in typeDefinition.GetConstructorsOnType(filter: m => (m.DeclaredAccessibility == Accessibility.Public) && m.Parameters.Length == 0)) 56foreach (var m in typeDefinition.ApplyIncludeInherited(t => t.GetMethodsOnTypeHierarchy(filter: null, bindingFlags: BindingFlags.NonPublic | declaredOnlyFlags), withInherited)) 62foreach (var m in typeDefinition.GetMethodsOnTypeHierarchy(filter: null, bindingFlags: BindingFlags.Public | declaredOnlyFlags)) 137public static IEnumerable<IMethodSymbol> GetConstructorsOnType(this ITypeSymbol type, Func<IMethodSymbol, bool>? filter, BindingFlags? bindingFlags = null) 139foreach (var method in type.GetMembers().OfType<IMethodSymbol>()) 164public static IEnumerable<IMethodSymbol> GetMethodsOnTypeHierarchy(this ITypeSymbol thisType, Func<IMethodSymbol, bool>? filter, BindingFlags? bindingFlags = null) 170foreach (var method in type.GetMembers().OfType<IMethodSymbol>())
DataFlow\LocalDataFlowAnalysis.cs (1)
89Debug.Assert(Context.OwningSymbol is not IMethodSymbol methodSymbol ||
DataFlow\LocalDataFlowVisitor.cs (23)
104Debug.Assert(OwningSymbol is IMethodSymbol or IFieldSymbol or IPropertySymbol, 112Debug.Assert(OwningSymbol is IMethodSymbol, 166IMethodSymbol calledMethod, 183var method = assemblyType.GetMembers(methodName).OfType<IMethodSymbol>().SingleOrDefault(); 206Debug.Assert(local.ContainingSymbol is IMethodSymbol or IFieldSymbol, // backing field for property initializers 289IMethodSymbol? setMethod = propertyRef.Property.GetSetMethod(); 353IMethodSymbol? setMethod = property.GetSetMethod(); 528IMethodSymbol? addMethod = eventReference.Event.AddMethod; 536IMethodSymbol? removeMethod = eventReference.Event.RemoveMethod; 666IMethodSymbol? targetMethodSymbol = null; 678IMethodSymbol methodDefinition = methodReference.Method.OriginalDefinition; 679if (methodDefinition.ContainingSymbol is IMethodSymbol) 682var localFunction = methodDefinition; 704public abstract TValue HandleDelegateCreation(IMethodSymbol methodReference, IOperation operation, in TContext context); 721IMethodSymbol getMethod = operation.Property.GetGetMethod()!; 769IMethodSymbol getMethod = indexerProperty.GetGetMethod()!; 834Debug.Assert(operation.Symbol.ContainingSymbol is IMethodSymbol or IFieldSymbol); 835var lambda = operation.Symbol; 843IMethodSymbol calledMethod, 924IMethodSymbol method, 972if (method.OriginalDefinition.ContainingSymbol is IMethodSymbol) 974var localFunction = method.OriginalDefinition;
DataFlow\MethodBodyValue.cs (1)
23Debug.Assert(owningSymbol is (IMethodSymbol or IFieldSymbol or IPropertySymbol));
DynamicallyAccessedMembersAnalyzer.cs (18)
160VerifyDamOnPropertyAndAccessorMatch(context, (IMethodSymbol)context.Symbol); 161VerifyDamOnDerivedAndBaseMethodsMatch(context, (IMethodSymbol)context.Symbol); 183else if (member is IMethodSymbol method) 204private static void VerifyDamOnDerivedAndBaseMethodsMatch(SymbolAnalysisContext context, IMethodSymbol methodSymbol) 206if (methodSymbol.TryGetOverriddenMember(out var overriddenSymbol) && overriddenSymbol is IMethodSymbol overriddenMethod 207&& context.Symbol is IMethodSymbol method) 213private static void VerifyDamOnMethodsMatch(SymbolAnalysisContext context, IMethodSymbol overrideMethod, IMethodSymbol baseMethod, ISymbol? origin = null) 220(IMethodSymbol attributableMethod, DynamicallyAccessedMemberTypes missingAttribute) = GetTargetAndRequirements(overrideMethod, 244(IMethodSymbol attributableMethod, DynamicallyAccessedMemberTypes missingAttribute) = GetTargetAndRequirements(overrideMethod, 270(IMethodSymbol attributableMethod, DynamicallyAccessedMemberTypes missingAttribute) = GetTargetAndRequirements(overrideMethod, baseMethod, methodTypeParameterAnnotation, overriddenMethodTypeParameterAnnotation); 309if (implementationMember is IMethodSymbol implementationMethod && interfaceMember is IMethodSymbol interfaceMethod) 324private static void VerifyDamOnPropertyAndAccessorMatch(SymbolAnalysisContext context, IMethodSymbol methodSymbol) 354private static (IMethodSymbol Method, DynamicallyAccessedMemberTypes Requirements) GetTargetAndRequirements(IMethodSymbol method, IMethodSymbol overriddenMethod, DynamicallyAccessedMemberTypes methodAnnotation, DynamicallyAccessedMemberTypes overriddenMethodAnnotation) 357IMethodSymbol paramNeedsAttributes;
IMethodSymbolExtensions.cs (8)
12public static bool HasImplicitThis(this IMethodSymbol method) 20public static ParameterProxyEnumerable GetParameters(this IMethodSymbol method) 28public static ParameterProxyEnumerable GetMetadataParameters(this IMethodSymbol method) 38public static ParameterProxy GetParameter(this IMethodSymbol method, ParameterIndex index) 49public static ParameterProxy? TryGetParameter(this IMethodSymbol method, ParameterIndex index) 59public static int GetMetadataParametersCount(this IMethodSymbol method) 67public static int GetParametersCount(this IMethodSymbol method) 75public static bool HasExtensionParameterOnType(this IMethodSymbol method)
IOperationExtensions.cs (3)
209var containingMethod = TryGetContainingAnonymousFunctionOrLocalFunction(operation) ?? (containingSymbol as IMethodSymbol); 213public static IMethodSymbol? TryGetContainingAnonymousFunctionOrLocalFunction(this IOperation? operation)
IPropertySymbolExtensions.cs (5)
11public static IMethodSymbol? GetGetMethod(this IPropertySymbol property) 14IMethodSymbol? getMethod; 23public static IMethodSymbol? GetSetMethod(this IPropertySymbol property) 26IMethodSymbol? setMethod; 43private static bool IsAutoAccessor(this IMethodSymbol method)
ISymbolExtensions.cs (10)
67internal static DynamicallyAccessedMemberTypes GetDynamicallyAccessedMemberTypesOnReturnType(this IMethodSymbol methodSymbol) 95internal static bool TryGetReturnAttribute(this IMethodSymbol member, string attributeName, [NotNullWhen(returnValue: true)] out AttributeData? attribute) 110internal static DynamicallyAccessedMemberTypes GetDynamicallyAccessedMemberTypesOnAssociatedSymbol(this IMethodSymbol methodSymbol) => 117IMethodSymbol method => method.OverriddenMethod, 158case IMethodSymbol methodSymbol when methodSymbol.IsStaticConstructor(): 163case IMethodSymbol methodSymbol: 213=> (symbol as IMethodSymbol)?.MethodKind is MethodKind.Constructor or MethodKind.StaticConstructor; 216=> (symbol as IMethodSymbol)?.MethodKind == MethodKind.StaticConstructor; 218public static bool IsEntryPoint(this IMethodSymbol methodSymbol, Compilation compilation) 226public static bool IsUnmanagedCallersOnlyEntryPoint(this IMethodSymbol methodSymbol)
RequiresAnalyzerBase.cs (10)
52var publicParameterlessConstructor = namedTypeSymbol?.InstanceConstructors.FirstOrDefault(c => c.Parameters.IsEmpty && c.DeclaredAccessibility == Accessibility.Public); 86var methodSymbol = (IMethodSymbol)symbolAnalysisContext.Symbol; 131IMethodSymbol method => method.ContainingType, 169while (member is IMethodSymbol method && method.OverriddenMethod != null && SymbolEqualityComparer.Default.Equals(method.ReturnType, method.OverriddenMethod.ReturnType)) 196var implicitCtor = typeSymbol.InstanceConstructors[0]; 198var baseCtor = typeSymbol.BaseType.InstanceConstructors.FirstOrDefault(ctor => ctor.Parameters.IsEmpty); 278private void ReportRequiresOnStaticCtorDiagnostic(SymbolAnalysisContext symbolAnalysisContext, IMethodSymbol ctor) 286private void ReportRequiresOnEntryPointDiagnostic(SymbolAnalysisContext symbolAnalysisContext, IMethodSymbol entryPoint) 405IMethodSymbol calledMethod,
RequiresAssemblyFilesAnalyzer.cs (3)
94dangerousPatternsBuilder.AddRange(assemblyType.GetMembers("GetFile").OfType<IMethodSymbol>()); 95dangerousPatternsBuilder.AddRange(assemblyType.GetMembers("GetFiles").OfType<IMethodSymbol>()); 113if (member is IMethodSymbol method)
RequiresDynamicCodeAnalyzer.cs (1)
50internal override bool IsIntrinsicallyHandled(IMethodSymbol calledMethod, MultiValue instance, ImmutableArray<MultiValue> arguments)
RequiresISymbolExtensions.cs (4)
21if (member is IMethodSymbol { AssociatedSymbol: { } associated } && associated.TryGetAttribute(requiresAttribute, out requiresAttributeData)) 73if (member.ContainingSymbol is not IMethodSymbol method) 87if (member is IMethodSymbol { AssociatedSymbol: { } associated } && associated.TryGetAttribute(attributeName, out requiresAttribute)) 93foreach (var constructor in field.ContainingType.InstanceConstructors)
RequiresUnreferencedCodeAnalyzer.cs (1)
79if (member is IMethodSymbol method && Intrinsics.GetIntrinsicIdForMethod(new MethodProxy(method)) != IntrinsicId.None)
TrimAnalysis\DiagnosticContext.cs (1)
75&& symbol is IMethodSymbol method
TrimAnalysis\FlowAnnotations.cs (6)
25public static bool RequiresDataFlowAnalysis(IMethodSymbol method) 42IMethodSymbol method => ShouldWarnWhenAccessedForReflection(method), 47private static bool ShouldWarnWhenAccessedForReflection(IMethodSymbol method) 99static bool HasParameterAnnotation(IMethodSymbol method) 175IMethodSymbol parameterMethod = param.Method.Method; 195public static DynamicallyAccessedMemberTypes GetMethodReturnValueAnnotation(IMethodSymbol method)
TrimAnalysis\GenericArgumentDataFlow.cs (2)
50public void ProcessGenericArgumentDataFlow(IMethodSymbol method) 111public static bool RequiresGenericArgumentDataFlow(IMethodSymbol method)
TrimAnalysis\HandleCallAction.cs (2)
64IMethodSymbol signature = symbol.Signature; 245foreach (var method in type.Type.GetMethodsOnTypeHierarchy(m => m.Name == name, bindingFlags))
TrimAnalysis\MethodParameterValue.cs (1)
24public IMethodSymbol MethodSymbol => Parameter.Method.Method;
TrimAnalysis\MethodProxy.cs (2)
12public MethodProxy(IMethodSymbol method) => Method = method; 14public readonly IMethodSymbol Method;
TrimAnalysis\MethodReturnValue.cs (3)
16public MethodReturnValue(IMethodSymbol methodSymbol, bool isNewObj) 21public MethodReturnValue(IMethodSymbol methodSymbol, bool isNewObj, DynamicallyAccessedMemberTypes dynamicallyAccessedMemberTypes) 30public readonly IMethodSymbol MethodSymbol;
TrimAnalysis\ParameterProxy.cs (3)
12public ParameterProxy(IParameterSymbol parameter, IMethodSymbol method) 17(method.HasExtensionParameterOnType() && parameter.ContainingSymbol is IMethodSymbol ? 1 : 0); 51var method = Method.Method;
TrimAnalysis\ReflectionAccessAnalyzer.cs (6)
41case IMethodSymbol method: 85foreach (var c in typeSymbol.GetConstructorsOnType(filter: parameterCount.HasValue ? c => c.Parameters.Length == parameterCount.Value : null, bindingFlags: bindingFlags)) 91foreach (var c in typeSymbol.GetConstructorsOnType(filter: m => (m.DeclaredAccessibility == Accessibility.Public) && m.Parameters.Length == 0)) 103internal void GetReflectionAccessDiagnosticsForMethod(Location location, IMethodSymbol methodSymbol) 123Debug.Assert(member is IMethodSymbol or IFieldSymbol); 167internal void GetDiagnosticsForReflectionAccessToDAMOnMethod(Location location, IMethodSymbol methodSymbol)
TrimAnalysis\TrimAnalysisGenericInstantiationPattern.cs (1)
63case IMethodSymbol method:
TrimAnalysis\TrimAnalysisMethodCallPattern.cs (2)
18public IMethodSymbol CalledMethod { get; init; } 26IMethodSymbol calledMethod,
TrimAnalysis\TrimAnalysisReflectionAccessPattern.cs (2)
14public IMethodSymbol ReferencedMethod { get; init; } 20IMethodSymbol referencedMethod,
TrimAnalysis\TrimAnalysisVisitor.cs (13)
131if (operation.OperatorMethod is IMethodSymbol method) 156if (OwningSymbol is IMethodSymbol method && !method.IsStatic) 266var parameterMethod = parameter.ContainingSymbol as IMethodSymbol ?? OwningSymbol as IMethodSymbol; 341IMethodSymbol calledMethod, 390IMethodSymbol calledMethod, 413Debug.Assert(OwningSymbol is IMethodSymbol); 414if (OwningSymbol is not IMethodSymbol method) 429Debug.Assert(OwningSymbol is IMethodSymbol); 430if (OwningSymbol is not IMethodSymbol method) 449public override MultiValue HandleDelegateCreation(IMethodSymbol method, IOperation operation, in FeatureContext featureContext) 463private void ProcessGenericArgumentDataFlow(IMethodSymbol method, IOperation operation, in FeatureContext featureContext)
Microsoft.Analyzers.Extra (56)
AsyncMethodWithoutCancellation.cs (6)
73var methodSymbol = (IMethodSymbol)analysisContext.ContainingSymbol!; 114bool IsReturnTypeTask(IMethodSymbol method) 138private static bool IsImplementationOfInterface(IMethodSymbol method) 143if (@interface.GetMembers().OfType<IMethodSymbol>() 154private static bool MethodParametersContainKnownTypes(IMethodSymbol method, HashSet<ITypeSymbol> typeSymbols)
CallAnalysis\Arrays.cs (4)
86foreach (var method in freezer.GetMembers("ToFrozenDictionary").OfType<IMethodSymbol>().Where(m => m.TypeParameters.Length == 2)) 95foreach (var method in freezer.GetMembers("ToFrozenSet").OfType<IMethodSymbol>().Where(m => m.TypeParameters.Length == 1))
CallAnalysis\CallAnalyzer.Handlers.cs (1)
24var target = op.TargetMethod;
CallAnalysis\CallAnalyzer.Registrar.cs (8)
33public void RegisterMethod(IMethodSymbol method, Action<OperationAnalysisContext, IInvocationOperation> action) 75foreach (var method in type.GetMembers(m).OfType<IMethodSymbol>()) 87public void RegisterConstructor(IMethodSymbol ctor, Action<OperationAnalysisContext, IObjectCreationOperation> action) 116foreach (var ctor in type.Constructors) 165public void RegisterInterfaceMethod(IMethodSymbol method, Action<OperationAnalysisContext, IInvocationOperation> action) 209foreach (var method in type.GetMembers(m).OfType<IMethodSymbol>())
CallAnalysis\CallAnalyzer.State.cs (4)
16public readonly Dictionary<IMethodSymbol, List<Action<OperationAnalysisContext, IInvocationOperation>>> Methods = new(SymbolEqualityComparer.Default); 17public readonly Dictionary<IMethodSymbol, List<Action<OperationAnalysisContext, IObjectCreationOperation>>> Ctors = new(SymbolEqualityComparer.Default); 26public MethodHandlers(IMethodSymbol method) 31public IMethodSymbol Method { get; }
CallAnalysis\Fixers\LegacyLoggingFixer.cs (5)
45internal Func<SemanticModel, BaseMethodDeclarationSyntax, CancellationToken, IMethodSymbol?> GetDeclaredSymbol = (sm, m, t) => sm.GetDeclaredSymbol(m, t); 103var method = invocationOp.TargetMethod; 171var methodSymbol = GetDeclaredSymbol(sm, method, cancellationToken); 635foreach (var methodSymbol in targetClassSymbol.GetMembers().Where(m => m.Kind == SymbolKind.Method).OfType<IMethodSymbol>())
CallAnalysis\Fixers\LegacyLoggingFixer.FixDetails.cs (2)
35IMethodSymbol method, 190private static (int message, int exception, int eventId, int logLevel, int args) IdentifyParameters(IMethodSymbol method)
CallAnalysis\LegacyLogging.cs (9)
21var legacyMethods = new List<IMethodSymbol>(); 22legacyMethods.AddRange(loggerExtensions.GetMembers("LogTrace").OfType<IMethodSymbol>()); 23legacyMethods.AddRange(loggerExtensions.GetMembers("LogDebug").OfType<IMethodSymbol>()); 24legacyMethods.AddRange(loggerExtensions.GetMembers("LogInformation").OfType<IMethodSymbol>()); 25legacyMethods.AddRange(loggerExtensions.GetMembers("LogWarning").OfType<IMethodSymbol>()); 26legacyMethods.AddRange(loggerExtensions.GetMembers("LogError").OfType<IMethodSymbol>()); 27legacyMethods.AddRange(loggerExtensions.GetMembers("LogCritical").OfType<IMethodSymbol>()); 28legacyMethods.AddRange(loggerExtensions.GetMembers("Log").OfType<IMethodSymbol>()); 30foreach (var method in legacyMethods)
CallAnalysis\StartsEndsWith.cs (4)
22var startsWith = stringType.GetMembers("StartsWith").OfType<IMethodSymbol>() 28var endsWith = stringType.GetMembers("EndsWith").OfType<IMethodSymbol>() 34foreach (var m in startsWith) 39foreach (var m in endsWith)
CallAnalysis\ValueTuple.cs (2)
32foreach (var method in type.GetMembers("Create").OfType<IMethodSymbol>())
CoalesceAnalyzer.cs (4)
42var method = pr.Parameter.ContainingSymbol as IMethodSymbol; 69var method = pr.Parameter.ContainingSymbol as IMethodSymbol;
ConditionalAccessAnalyzer.cs (2)
101var method = pr.Parameter.ContainingSymbol as IMethodSymbol;
Utilities\SymbolExtensions.cs (3)
61public static bool ImplementsPublicInterface(this IMethodSymbol method) 67foreach (var member in iface.GetMembers().OfType<IMethodSymbol>())
Utilities\SyntaxNodeExtensions.cs (2)
49var memberSymbol = semanticModel.GetSymbolInfo(invocationExpression.Expression).Symbol as IMethodSymbol;
Microsoft.Analyzers.Local (18)
ApiLifecycle\AssemblyAnalysis.cs (3)
207var method = (IMethodSymbol)member; 217if (member is IMethodSymbol methodSymbol)
CallAnalysis\CallAnalyzer.Handlers.cs (1)
24var target = op.TargetMethod;
CallAnalysis\CallAnalyzer.Registrar.cs (8)
33public void RegisterMethod(IMethodSymbol method, Action<OperationAnalysisContext, IInvocationOperation> action) 75foreach (var method in type.GetMembers(m).OfType<IMethodSymbol>()) 87public void RegisterConstructor(IMethodSymbol ctor, Action<OperationAnalysisContext, IObjectCreationOperation> action) 116foreach (var ctor in type.Constructors) 165public void RegisterInterfaceMethod(IMethodSymbol method, Action<OperationAnalysisContext, IInvocationOperation> action) 209foreach (var method in type.GetMembers(m).OfType<IMethodSymbol>())
CallAnalysis\CallAnalyzer.State.cs (4)
16public readonly Dictionary<IMethodSymbol, List<Action<OperationAnalysisContext, IInvocationOperation>>> Methods = new(SymbolEqualityComparer.Default); 17public readonly Dictionary<IMethodSymbol, List<Action<OperationAnalysisContext, IObjectCreationOperation>>> Ctors = new(SymbolEqualityComparer.Default); 26public MethodHandlers(IMethodSymbol method) 31public IMethodSymbol Method { get; }
CallAnalysis\ToInvariantString.cs (2)
30foreach (var method in reg.Compilation.GetSpecialType(type).GetMembers("ToString").OfType<IMethodSymbol>())
Microsoft.AspNetCore.Analyzers (30)
CompilationFeatureDetector.cs (1)
33var configureMethod = configureMethods[i];
ConfigureMethodVisitor.cs (4)
11public static List<IMethodSymbol> FindConfigureMethods(StartupSymbols symbols, IAssemblySymbol assembly) 19private readonly List<IMethodSymbol> _methods; 24_methods = new List<IMethodSymbol>(); 53public override void VisitMethod(IMethodSymbol symbol)
MiddlewareAnalysis.cs (2)
11public MiddlewareAnalysis(IMethodSymbol configureMethod, ImmutableArray<MiddlewareItem> middleware) 19public IMethodSymbol ConfigureMethod { get; }
MiddlewareAnalyzer.cs (2)
22var configureMethod = (IMethodSymbol)context.OwningSymbol;
MiddlewareItem.cs (1)
18public IMethodSymbol UseMethod => Operation.TargetMethod;
OptionsAnalysis.cs (2)
11public OptionsAnalysis(IMethodSymbol configureServicesMethod, ImmutableArray<OptionsItem> options) 19public IMethodSymbol ConfigureServicesMethod { get; }
OptionsAnalyzer.cs (2)
23var configureServicesMethod = (IMethodSymbol)context.OwningSymbol;
ServicesAnalysis.cs (2)
11public ServicesAnalysis(IMethodSymbol configureServicesMethod, ImmutableArray<ServicesItem> services) 19public IMethodSymbol ConfigureServicesMethod { get; }
ServicesAnalyzer.cs (2)
22var configureServicesMethod = (IMethodSymbol)context.OwningSymbol;
ServicesItem.cs (1)
18public IMethodSymbol UseMethod => Operation.TargetMethod;
StartupAnalyzer.cs (3)
39var entryPoint = context.Compilation.GetEntryPoint(context.CancellationToken); 65var method = (IMethodSymbol)context.OwningSymbol;
StartupAnalyzer.Events.cs (4)
13internal event EventHandler<IMethodSymbol>? ConfigureServicesMethodFound; 15internal void OnConfigureServicesMethodFound(IMethodSymbol method) 34internal event EventHandler<IMethodSymbol>? ConfigureMethodFound; 36internal void OnConfigureMethodFound(IMethodSymbol method)
StartupFacts.cs (4)
33if (members[i] is IMethodSymbol method && (IsConfigureServices(symbols, method) || IsConfigure(symbols, method))) 53public static bool IsConfigureServices(StartupSymbols symbols, IMethodSymbol symbol) 91public static bool IsConfigure(StartupSymbols symbols, IMethodSymbol symbol) 129public static bool IsSignalRConfigureMethodGesture(IMethodSymbol symbol)
Microsoft.AspNetCore.App.Analyzers (77)
Authorization\AddAuthorizationBuilderAnalyzer.cs (2)
44var addAuthorizationMethod = policyServiceCollectionExtensions.GetMembers() 45.OfType<IMethodSymbol>()
Authorization\AuthorizationOptionsTypes.cs (2)
31GetPolicy = authorizationOptionsMembers.OfType<IMethodSymbol>() 40public IMethodSymbol? GetPolicy { get; }
Http\HeaderDictionaryAddAnalyzer.cs (1)
44private static bool IsAddMethod(IMethodSymbol method)
Mvc\DetectAmbiguousActionRoutes.cs (6)
101public IMethodSymbol ActionSymbol { get; } 108public ActionRouteGroupKey(IMethodSymbol actionSymbol, RoutePatternTree routePattern, ImmutableArray<string> httpMethods, bool controllerHasActionToken, WellKnownTypes wellKnownTypes) 120private static string GetActionName(IMethodSymbol actionSymbol, WellKnownTypes wellKnownTypes) 148private static bool CanMatchActions(WellKnownTypes wellKnownTypes, IMethodSymbol actionSymbol1, IMethodSymbol actionSymbol2) 214private static bool HasUnknownAttribute(IMethodSymbol actionSymbol, WellKnownTypes wellKnownTypes)
Mvc\DetectOverriddenAuthorizeAttribute.cs (3)
57IMethodSymbol actionSymbol, List<AttributeInfo> authorizeAttributes, string? allowAnonClass) 62var currentMethod = actionSymbol; 197var isTargetingMethod = symbol is IMethodSymbol;
Mvc\MvcAnalyzer.cs (4)
62if (member is IMethodSymbol methodSymbol && MvcDetector.IsAction(methodSymbol, wellKnownTypes)) 91private static void PopulateActionRoutes(SymbolAnalysisContext context, WellKnownTypes wellKnownTypes, RouteUsageCache routeUsageCache, List<ActionRoute> actionRoutes, IMethodSymbol methodSymbol) 119private static ImmutableArray<string> GetUnroutedMethodHttpMethods(WellKnownTypes wellKnownTypes, IMethodSymbol methodSymbol) 190private record struct ActionRoute(IMethodSymbol ActionSymbol, RouteUsageModel RouteUsageModel, ImmutableArray<string> HttpMethods);
RenderTreeBuilder\RenderTreeBuilderAnalyzer.cs (1)
59private static bool IsRenderTreeBuilderMethodWithSequenceParameter(WellKnownTypes wellKnownTypes, IMethodSymbol targetMethod)
RouteEmbeddedLanguage\FrameworkParametersCompletionProvider.cs (2)
196var methodSymbol = semanticModel.GetDeclaredSymbol(methodSyntax, context.CancellationToken); 399else if (parameterTypeSymbol is IMethodSymbol)
RouteEmbeddedLanguage\Infrastructure\MvcDetector.cs (3)
28public static bool IsAction(IMethodSymbol methodSymbol, WellKnownTypes wellKnownTypes) 32var idisposableDispose = (IMethodSymbol)members[0];
RouteEmbeddedLanguage\Infrastructure\RoutePatternParametersDetector.cs (1)
70IMethodSymbol methodSymbol => methodSymbol.Parameters.As<ISymbol>(),
RouteEmbeddedLanguage\Infrastructure\RouteUsageDetector.cs (13)
35IMethodSymbol? MethodSymbol, 51IMethodSymbol Method, 92var mapMethodSymbol = GetMethodInfo(semanticModel, mapMethodParts.Value.DelegateExpression, cancellationToken); 115var methodSymbol = semanticModel.GetDeclaredSymbol(methodDeclarationSyntax, cancellationToken); 117var actionMethodSymbol = FindMvcMethod(wellKnownTypes, methodSymbol); 154private static ImmutableArray<string> CalculateHttpMethods(WellKnownTypes wellKnownTypes, IMethodSymbol mapMethodSymbol) 212private static IMethodSymbol? FindMvcMethod(WellKnownTypes wellKnownTypes, IMethodSymbol? methodSymbol) 247if (symbol is IMethodSymbol methodSymbol) 260private static MapMethodParts? FindValidMapMethodParts(SemanticModel semanticModel, WellKnownTypes wellKnownTypes, BaseArgumentListSyntax argumentList, IMethodSymbol method) 308private static ArgumentSyntax? GetArgumentSyntax(BaseArgumentListSyntax argumentList, IMethodSymbol methodSymbol, IParameterSymbol parameterSymbol) 333private static IMethodSymbol? GetMethodInfo(SemanticModel semanticModel, SyntaxNode syntaxNode, CancellationToken cancellationToken) 342return delegateSymbol as IMethodSymbol;
RouteEmbeddedLanguage\RoutePatternHighlighter.cs (1)
72private static void HighlightSymbol(SemanticModel semanticModel, IMethodSymbol methodSymbol, IList<AspNetCoreHighlightSpan> highlightSpans, ISymbol matchingParameter, CancellationToken cancellationToken)
RouteHandlers\AtMostOneFromBodyAttribute.cs (1)
20IMethodSymbol methodSymbol)
RouteHandlers\DetectAmbiguousRoutes.cs (2)
95var method = invocationOperation.TargetMethod; 235private static bool AreArgumentsEqual(IMethodSymbol method, ImmutableArray<IArgumentOperation> arguments1, ImmutableArray<IArgumentOperation> arguments2)
RouteHandlers\DetectMismatchedParameterOptionality.cs (2)
16IMethodSymbol methodSymbol) 19foreach (var method in allDeclarations)
RouteHandlers\DetectMisplacedLambdaAttribute.cs (2)
35if (GetReturnedInvocation(blockOperation) is not IMethodSymbol methodSymbol) 71static IMethodSymbol? GetReturnedInvocation(IBlockOperation blockOperation)
RouteHandlers\DisallowMvcBindArgumentsOnParameters.cs (1)
20IMethodSymbol methodSymbol)
RouteHandlers\DisallowNonParsableComplexTypesOnParameters.cs (1)
22IMethodSymbol methodSymbol)
RouteHandlers\DisallowReturningActionResultFromMapMethods.cs (1)
30IMethodSymbol methodSymbol,
RouteHandlers\RouteHandlerAnalyzer.cs (3)
71var targetMethod = invocation.TargetMethod; 198IMethodSymbol targetMethod) 206static bool IsCompatibleDelegateType(WellKnownTypes wellKnownTypes, IMethodSymbol targetMethod)
src\aspnetcore\src\Shared\Roslyn\CodeAnalysisExtensions.cs (5)
18public static bool HasAttribute(this IMethodSymbol methodSymbol, ITypeSymbol attribute, bool inherit) 32public static IEnumerable<AttributeData> GetAttributes(this IMethodSymbol methodSymbol, ITypeSymbol attribute, bool inherit) 37IMethodSymbol? current = methodSymbol; 155public static IEnumerable<IMethodSymbol> GetAllMethodSymbolsOfPartialParts(this IMethodSymbol method)
src\aspnetcore\src\Shared\Roslyn\MvcFacts.cs (5)
57public static bool IsControllerAction(IMethodSymbol method, INamedTypeSymbol nonActionAttribute, IMethodSymbol disposableDispose) 102private static INamedTypeSymbol? GetDeclaringType(IMethodSymbol method) 117private static bool IsIDisposableDispose(IMethodSymbol method, IMethodSymbol disposableDispose)
src\aspnetcore\src\Shared\RoslynUtils\ParsabilityHelper.cs (10)
20private static readonly BoundedCacheWithFactory<ITypeSymbol, (BindabilityMethod?, IMethodSymbol?)> BindabilityCache = new(); 76.OfType<IMethodSymbol>(); 94private static bool IsTryParse(IMethodSymbol methodSymbol) 104private static bool IsTryParseWithFormat(IMethodSymbol methodSymbol, WellKnownTypes wellKnownTypes) 134private static bool IsBindAsync(IMethodSymbol methodSymbol, ITypeSymbol typeSymbol, WellKnownTypes wellKnownTypes) 145private static bool IsBindAsyncWithParameter(IMethodSymbol methodSymbol, ITypeSymbol typeSymbol, WellKnownTypes wellKnownTypes) 162internal static Bindability GetBindability(ITypeSymbol typeSymbol, WellKnownTypes wellKnownTypes, out BindabilityMethod? bindabilityMethod, out IMethodSymbol? bindMethodSymbol) 166IMethodSymbol? bindAsyncMethod = null; 171IMethodSymbol? bindMethodSymbol = null; 185if (methodSymbolCandidate is IMethodSymbol methodSymbol)
src\aspnetcore\src\Shared\RoslynUtils\SymbolExtensions.cs (2)
217IMethodSymbol methodSymbol => methodSymbol.Parameters, 297if (parameterSymbol is { ContainingSymbol: IMethodSymbol constructor })
WebApplicationBuilder\WebApplicationBuilderAnalyzer.cs (3)
75var targetMethod = invocation.TargetMethod; 314IMethodSymbol methodSymbol, 339IMethodSymbol methodSymbol,
Microsoft.AspNetCore.App.CodeFixes (2)
Dependencies\AddPackageFixer.cs (1)
69IMethodSymbol methodSymbol => methodSymbol.ReturnType,
Dependencies\ExtensionMethodsCompletionProvider.cs (1)
66IMethodSymbol methodSymbol => methodSymbol.ReturnType,
Microsoft.AspNetCore.Components.Analyzers (18)
ForLoopIteratorInClosureAnalyzer.cs (3)
57if (blockContext.OwningSymbol is IMethodSymbol owningMethod 71private static bool IsImplementationOfBuildRenderTree(IMethodSymbol methodSymbol, Dictionary<string, INamedTypeSymbol?> availableTypes) 166var targetMethod = invocation.TargetMethod;
InternalUsageAnalyzer.cs (1)
96case IMethodSymbol method:
InvokeAsyncOfObjectAnalyzer.cs (1)
54var targetMethod = invocation.TargetMethod;
JSInvokableAnalyzer.cs (2)
36var method = (IMethodSymbol)context.Symbol;
StateHasChangedAnalyzer.cs (10)
52var eventHandlerMethods = new ConcurrentDictionary<IMethodSymbol, byte>(SymbolEqualityComparer.Default); 53var redundantCallLocationsByMethod = new ConcurrentDictionary<IMethodSymbol, ImmutableArray<Location>>(SymbolEqualityComparer.Default); 71var method = TryGetMethodFromOperation(argument.Value); 84if (syntaxContext.SemanticModel.GetDeclaredSymbol(methodDeclaration) is not IMethodSymbol methodSymbol) 152var method = methodAndLocations.Key; 173private static bool IsTargetMethod(IMethodSymbol method, ConcurrentDictionary<IMethodSymbol, byte> eventHandlerMethods) 188private static bool IsTargetLifecycleMethod(IMethodSymbol method) 197return semanticModel.GetSymbolInfo(invocation).Symbol is IMethodSymbol method && 218private static IMethodSymbol? TryGetMethodFromOperation(IOperation operation)
VirtualizeItemComparerAnalyzer.cs (1)
55var targetMethod = invocation.TargetMethod;
Microsoft.AspNetCore.Components.SdkAnalyzers (1)
InternalUsageAnalyzer.cs (1)
96case IMethodSymbol method:
Microsoft.AspNetCore.Components.Testing.Generators (6)
ServiceOverrideAnalyzer.cs (3)
41if (symbolInfo.Symbol is not IMethodSymbol method) 109.OfType<IMethodSymbol>() 129var targetMethod = candidates.FirstOrDefault(m => m.IsStatic);
StartupHookGenerator.cs (3)
75if (symbolInfo.Symbol is not IMethodSymbol method) 139var targetMethod = overrideType.GetMembers(methodName) 140.OfType<IMethodSymbol>()
Microsoft.AspNetCore.Http.RequestDelegateGenerator (21)
src\aspnetcore\src\Shared\RoslynUtils\ParsabilityHelper.cs (10)
20private static readonly BoundedCacheWithFactory<ITypeSymbol, (BindabilityMethod?, IMethodSymbol?)> BindabilityCache = new(); 76.OfType<IMethodSymbol>(); 94private static bool IsTryParse(IMethodSymbol methodSymbol) 104private static bool IsTryParseWithFormat(IMethodSymbol methodSymbol, WellKnownTypes wellKnownTypes) 134private static bool IsBindAsync(IMethodSymbol methodSymbol, ITypeSymbol typeSymbol, WellKnownTypes wellKnownTypes) 145private static bool IsBindAsyncWithParameter(IMethodSymbol methodSymbol, ITypeSymbol typeSymbol, WellKnownTypes wellKnownTypes) 162internal static Bindability GetBindability(ITypeSymbol typeSymbol, WellKnownTypes wellKnownTypes, out BindabilityMethod? bindabilityMethod, out IMethodSymbol? bindMethodSymbol) 166IMethodSymbol? bindAsyncMethod = null; 171IMethodSymbol? bindMethodSymbol = null; 185if (methodSymbolCandidate is IMethodSymbol methodSymbol)
src\aspnetcore\src\Shared\RoslynUtils\SymbolExtensions.cs (2)
217IMethodSymbol methodSymbol => methodSymbol.Parameters, 297if (parameterSymbol is { ContainingSymbol: IMethodSymbol constructor })
StaticRouteHandlerModel\Endpoint.cs (1)
29if (!operation.TryGetRouteHandlerMethod(semanticModel, out var method))
StaticRouteHandlerModel\EndpointParameter.cs (4)
218else if (HasBindAsync(Type, wellKnownTypes, out var bindMethod, out var bindMethodSymbol)) 302public IMethodSymbol? BindableMethodSymbol { get; set; } 304private static bool HasBindAsync(ITypeSymbol typeSymbol, WellKnownTypes wellKnownTypes, [NotNullWhen(true)] out BindabilityMethod? bindMethod, [NotNullWhen(true)] out IMethodSymbol? bindMethodSymbol) 485var targetConstructor = constructors.Single();
StaticRouteHandlerModel\EndpointResponse.cs (2)
27internal EndpointResponse(IMethodSymbol method, WellKnownTypes wellKnownTypes) 44private ITypeSymbol? UnwrapResponseType(IMethodSymbol method, out bool isAwaitable, out bool awaitableIsVoid)
StaticRouteHandlerModel\InvocationOperationExtensions.cs (2)
42public static bool TryGetRouteHandlerMethod(this IInvocationOperation invocation, SemanticModel semanticModel, [NotNullWhen(true)] out IMethodSymbol? method) 90private static IMethodSymbol? ResolveMethodFromOperation(IOperation operation, SemanticModel semanticModel) => operation switch
Microsoft.AspNetCore.Mvc.Analyzers (30)
AttributesShouldNotBeAppliedToPageModelAnalyzer.cs (5)
40var method = (IMethodSymbol)context.Symbol; 67private static bool IsPageHandlerMethod(IMethodSymbol method) 96private static void ReportRouteDiagnostic(SymbolAnalysisContext context, IMethodSymbol method, INamedTypeSymbol routeAttribute) 110private static void ReportFilterDiagnostic(SymbolAnalysisContext context, IMethodSymbol method, INamedTypeSymbol filterAttribute)
AvoidHtmlPartialAnalyzer.cs (1)
23var method = ((IInvocationOperation)context.Operation).TargetMethod;
src\aspnetcore\src\Shared\Roslyn\CodeAnalysisExtensions.cs (5)
18public static bool HasAttribute(this IMethodSymbol methodSymbol, ITypeSymbol attribute, bool inherit) 32public static IEnumerable<AttributeData> GetAttributes(this IMethodSymbol methodSymbol, ITypeSymbol attribute, bool inherit) 37IMethodSymbol? current = methodSymbol; 155public static IEnumerable<IMethodSymbol> GetAllMethodSymbolsOfPartialParts(this IMethodSymbol method)
src\aspnetcore\src\Shared\Roslyn\MvcFacts.cs (5)
57public static bool IsControllerAction(IMethodSymbol method, INamedTypeSymbol nonActionAttribute, IMethodSymbol disposableDispose) 102private static INamedTypeSymbol? GetDeclaringType(IMethodSymbol method) 117private static bool IsIDisposableDispose(IMethodSymbol method, IMethodSymbol disposableDispose)
TagHelpersInCodeBlocksAnalyzer.cs (7)
71var methodSymbol = (IMethodSymbol?)(parent switch 103private static bool IsTagHelperRunnerRunAsync(IMethodSymbol method, SymbolCache symbolCache) 136IMethodSymbol tagHelperRunnerRunAsyncMethodSymbol, 143public IMethodSymbol TagHelperRunnerRunAsyncMethodSymbol { get; } 167var tagHelperRunnerRunAsyncMethod = (IMethodSymbol)members[0];
TopLevelParameterNameAnalyzer.cs (6)
40var method = (IMethodSymbol)context.Symbol; 220IMethodSymbol disposableDispose) 279var idisposableDispose = (IMethodSymbol?)members?[0]; 313public IMethodSymbol IDisposableDispose { get; }
ViewFeaturesAnalyzerContext.cs (1)
28public bool IsHtmlHelperExtensionMethod(IMethodSymbol method)
Microsoft.AspNetCore.Mvc.Api.Analyzers (40)
AddResponseTypeAttributeCodeFixAction.cs (3)
133var method = semanticModel.GetDeclaredSymbol(methodSyntax, cancellationToken); 257IMethodSymbol method, 274public IMethodSymbol Method { get; }
ApiActionsDoNotRequireExplicitModelValidationCheckAnalyzer.cs (1)
77if (context.ContainingSymbol is not IMethodSymbol methodSymbol)
ApiControllerFacts.cs (1)
11public static bool IsApiControllerAction(ApiControllerSymbolCache symbolCache, IMethodSymbol method)
ApiControllerSymbolCache.cs (4)
99var iDisposableDispose = (IMethodSymbol?)members?[0]; 142IMethodSymbol disposableDispose, 187public IMethodSymbol IDisposableDispose { get; }
ApiConventionAnalyzer.cs (2)
41var method = (IMethodSymbol)context.ContainingSymbol;
DeclaredApiResponseMetadata.cs (4)
14public static DeclaredApiResponseMetadata ForProducesResponseType(int statusCode, AttributeData attributeData, IMethodSymbol attributeSource) 19public static DeclaredApiResponseMetadata ForProducesDefaultResponse(AttributeData attributeData, IMethodSymbol attributeSource) 27IMethodSymbol? attributeSource, 42public IMethodSymbol? AttributeSource { get; }
src\aspnetcore\src\Shared\Roslyn\CodeAnalysisExtensions.cs (5)
18public static bool HasAttribute(this IMethodSymbol methodSymbol, ITypeSymbol attribute, bool inherit) 32public static IEnumerable<AttributeData> GetAttributes(this IMethodSymbol methodSymbol, ITypeSymbol attribute, bool inherit) 37IMethodSymbol? current = methodSymbol; 155public static IEnumerable<IMethodSymbol> GetAllMethodSymbolsOfPartialParts(this IMethodSymbol method)
src\aspnetcore\src\Shared\Roslyn\MvcFacts.cs (5)
57public static bool IsControllerAction(IMethodSymbol method, INamedTypeSymbol nonActionAttribute, IMethodSymbol disposableDispose) 102private static INamedTypeSymbol? GetDeclaringType(IMethodSymbol method) 117private static bool IsIDisposableDispose(IMethodSymbol method, IMethodSymbol disposableDispose)
SymbolApiConventionMatcher.cs (2)
12internal static bool IsMatch(ApiControllerSymbolCache symbolCache, IMethodSymbol method, IMethodSymbol conventionMethod)
SymbolApiResponseMetadataProvider.cs (13)
22IMethodSymbol method) 45IMethodSymbol method) 66IMethodSymbol method, 69var conventionMethod = GetMethodFromConventionMethodAttribute(symbolCache, method); 83private static IMethodSymbol? GetMethodFromConventionMethodAttribute(in ApiControllerSymbolCache symbolCache, IMethodSymbol method) 113return (IMethodSymbol)conventionMethod; 116private static IMethodSymbol? MatchConventionMethod( 118IMethodSymbol method, 123foreach (var conventionMethod in conventionType.GetMembers().OfType<IMethodSymbol>()) 140private static IList<DeclaredApiResponseMetadata> GetResponseMetadataFromMethodAttributes(in ApiControllerSymbolCache symbolCache, IMethodSymbol methodSymbol) 161internal static IReadOnlyList<ITypeSymbol> GetConventionTypes(in ApiControllerSymbolCache symbolCache, IMethodSymbol method)
Microsoft.AspNetCore.OpenApi.SourceGenerators (16)
Helpers\AssemblyTypeSymbolsVisitor.cs (4)
20private readonly HashSet<IMethodSymbol> _exportedMethods = new(SymbolEqualityComparer.Default); 24public ImmutableArray<IMethodSymbol> GetPublicMethods() => [.. _exportedMethods]; 74var methods = type.GetMembers().OfType<IMethodSymbol>(); 75foreach (var method in methods)
Helpers\ISymbolExtensions.cs (7)
46IMethodSymbol method => ImmutableArray<ISymbol>.CastUp(method.ExplicitInterfaceImplementations), 67IMethodSymbol m => m.TypeParameters, 90IMethodSymbol m => m.TypeArguments, 104IMethodSymbol method => method.OverriddenMethod, 131IMethodSymbol? bestMethod = null; 153else if (member is IMethodSymbol method) 178IMethodSymbol m => m.Parameters,
XmlCommentGenerator.Parser.cs (2)
97foreach (var method in methods) 149if (symbol is not IMethodSymbol methodSymbol
XmlComments\XmlComment.InheritDoc.cs (3)
280if (memberSymbol is IMethodSymbol methodSymbol) 317static bool IsSameSignature(IMethodSymbol left, IMethodSymbol right)
Microsoft.AspNetCore.SignalR.Client.SourceGenerator (15)
HubClientProxyGenerator.Parser.cs (8)
50private static bool IsExtensionMethodSignatureValid(IMethodSymbol symbol, SourceProductionContext context) 149if (ModelExtensions.GetSymbolInfo(context.SemanticModel, memberAccessExpressionSyntax).Symbol is not IMethodSymbol 209var registerCallbackProviderMethodSymbol = (IMethodSymbol)registerCallbackProviderSemanticModel.GetDeclaredSymbol(methodDeclarationSyntax); 286.Select(member => (IMethodSymbol)member) 287.Union<IMethodSymbol>(providerSymbol.AllInterfaces.SelectMany(x => x 290.Select(member => (IMethodSymbol)member)), SymbolEqualityComparer.Default).ToList(); 293foreach (var member in members)
HubServerProxyGenerator.Parser.cs (7)
50private static bool IsExtensionMethodSignatureValid(IMethodSymbol symbol, SourceProductionContext context) 139if (ModelExtensions.GetSymbolInfo(context.SemanticModel, memberAccessExpressionSyntax).Symbol is not IMethodSymbol 198var getProxyMethodSymbol = (IMethodSymbol)getProxySemanticModel.GetDeclaredSymbol(methodDeclarationSyntax); 263.Select(member => (IMethodSymbol)member) 267.Select(member => (IMethodSymbol)member))); 270foreach (var member in members)
Microsoft.CodeAnalysis (203)
CodeGen\CompilationTestData.cs (2)
127IMethodSymbol iMethod = (IMethodSymbol)methodSymbol.GetISymbol();
Compilation\Compilation.cs (18)
981public IMethodSymbol? GetEntryPoint(CancellationToken cancellationToken) 986protected abstract IMethodSymbol? CommonGetEntryPoint(CancellationToken cancellationToken); 1559/// Creates an <see cref="IMethodSymbol"/> whose <see cref="IMethodSymbol.MethodKind"/> is <see 1568public IMethodSymbol CreateBuiltinOperator(string name, ITypeSymbol returnType, ITypeSymbol leftType, ITypeSymbol rightType) 1584protected abstract IMethodSymbol CommonCreateBuiltinOperator(string name, ITypeSymbol returnType, ITypeSymbol leftType, ITypeSymbol rightType); 1587/// Creates an <see cref="IMethodSymbol"/> whose <see cref="IMethodSymbol.MethodKind"/> is <see 1595public IMethodSymbol CreateBuiltinOperator(string name, ITypeSymbol returnType, ITypeSymbol operandType) 1608protected abstract IMethodSymbol CommonCreateBuiltinOperator(string name, ITypeSymbol returnType, ITypeSymbol operandType); 2493IMethodSymbol? debugEntryPoint, 2726IMethodSymbol debugEntryPoint, 2750IMethodSymbol? debugEntryPoint, 2811IMethodSymbol? debugEntryPoint = null, 2839IMethodSymbol? debugEntryPoint, 2957IMethodSymbol? debugEntryPoint, 3198IMethodSymbol? debugEntryPoint, 3248internal abstract void ValidateDebugEntryPoint(IMethodSymbol debugEntryPoint, DiagnosticBag diagnostics);
Compilation\DataFlowAnalysis.cs (1)
107public abstract ImmutableArray<IMethodSymbol> UsedLocalFunctions { get; }
Compilation\SemanticModel.cs (2)
410/// for the type, and the <see cref="IMethodSymbol"/> for the primary constructor will be returned.</item> 431/// for the type, and the <see cref="IMethodSymbol"/> for the primary constructor will be returned.</item>
DiagnosticAnalyzer\AnalyzerManager.AnalyzerExecutionContext.cs (1)
207if (member is IMethodSymbol { PartialImplementationPart: { } methodImplementation })
DiagnosticAnalyzer\DiagnosticStartAnalysisScope.cs (2)
555parameters = ((IMethodSymbol)context.Symbol).Parameters; 568var delegateInvokeMethod = namedType.DelegateInvokeMethod;
DiagnosticAnalyzer\SuppressMessageAttributeState.TargetSymbolResolver.cs (9)
190foreach (var method in GetMatchingMethods(candidateMembers, arity, parameters, returnType)) 504var methodContext = bindingContext as IMethodSymbol; 546var methodContext = bindingContext as IMethodSymbol; 738private ImmutableArray<IMethodSymbol> GetMatchingMethods(ImmutableArray<ISymbol> candidateMembers, int? arity, ParameterInfo[] parameters, TypeInfo? returnType) 740var builder = new ArrayBuilder<IMethodSymbol>(); 744var methodSymbol = symbol as IMethodSymbol;
DocumentationCommentId.cs (9)
375public override void VisitMethod(IMethodSymbol symbol) 467public override bool VisitMethod(IMethodSymbol symbol) 686Debug.Assert(symbol.ContainingSymbol is null or INamedTypeSymbol or IMethodSymbol); 1014var methodContext = typeParameterContext as IMethodSymbol; 1029var methodContext = typeParameterContext as IMethodSymbol; 1303var methodSymbol = symbol as IMethodSymbol;
Emit\CommonPEModuleBuilder.cs (2)
417Debug.Assert(((IMethodSymbol)methodSymbol.GetISymbol()).PartialDefinitionPart == null); // Must be definition. 434Debug.Assert(((IMethodSymbol)methodSymbol.GetISymbol()).PartialDefinitionPart == null); // Must be definition.
Emit\EditAndContinue\SymbolChanges.cs (3)
37/// A set of symbols (<see cref="IMethodSymbol"/>, <see cref="IPropertySymbol"/>, <see cref="IEventSymbol"/>), 382Debug.Assert(edit.OldSymbol is IMethodSymbol or IPropertySymbol or IEventSymbol); 424Debug.Assert(edit.OldSymbol == null || ((IMethodSymbol)edit.OldSymbol).PartialImplementationPart == null);
Emit\SemanticEdit.cs (10)
57/// If not empty, <see cref="OldSymbol"/> and <see cref="NewSymbol"/> must be non-null <see cref="IMethodSymbol"/>s, and 134if (oldSymbol is not IMethodSymbol) 139if (newSymbol is not IMethodSymbol) 145if (oldSymbol is IMethodSymbol { PartialImplementationPart: not null } or IPropertySymbol { PartialImplementationPart: not null }) 150if (newSymbol is IMethodSymbol { PartialImplementationPart: not null } or IPropertySymbol { PartialImplementationPart: not null }) 155if (kind == SemanticEditKind.Delete && oldSymbol is not (IMethodSymbol or IPropertySymbol or IEventSymbol)) 172if (oldSymbol is not IMethodSymbol) 177if (newSymbol is not IMethodSymbol) 206internal SemanticEdit(IMethodSymbol oldSymbol, IMethodSymbol newSymbol, ImmutableArray<InstrumentationKind> instrumentationKinds)
Generated\FlowAnalysis.Generated.cs (1)
145IMethodSymbol Symbol { get; }
Generated\Operations.Generated.cs (40)
577IMethodSymbol Symbol { get; } 713IMethodSymbol? OperatorMethod { get; } 776IMethodSymbol TargetMethod { get; } 969IMethodSymbol Method { get; } 1076IMethodSymbol? OperatorMethod { get; } 1134IMethodSymbol? OperatorMethod { get; } 1250IMethodSymbol Symbol { get; } 1279IMethodSymbol? Constructor { get; } 1528IMethodSymbol? OperatorMethod { get; } 1780IMethodSymbol AddMethod { get; } 2198IMethodSymbol? OperatorMethod { get; } 3147IMethodSymbol? Method { get; } 3621IMethodSymbol? CloneMethod { get; } 3956IMethodSymbol? ConstructMethod { get; } 4958internal LocalFunctionOperation(IMethodSymbol symbol, IBlockOperation? body, IBlockOperation? ignoredBody, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 4965public IMethodSymbol Symbol { get; } 5194internal InvocationOperation(IMethodSymbol targetMethod, ITypeSymbol? constrainedToType, IOperation? instance, bool isVirtual, ImmutableArray<IArgumentOperation> arguments, SemanticModel? semanticModel, SyntaxNode syntax, ITypeSymbol? type, bool isImplicit) 5204public IMethodSymbol TargetMethod { get; } 5440internal MethodReferenceOperation(IMethodSymbol method, ITypeSymbol? constrainedToType, bool isVirtual, IOperation? instance, SemanticModel? semanticModel, SyntaxNode syntax, ITypeSymbol? type, bool isImplicit) 5448public IMethodSymbol Method { get; } 5619internal UnaryOperation(UnaryOperatorKind operatorKind, IOperation operand, bool isLifted, bool isChecked, IMethodSymbol? operatorMethod, ITypeSymbol? constrainedToType, SemanticModel? semanticModel, SyntaxNode syntax, ITypeSymbol? type, ConstantValue? constantValue, bool isImplicit) 5635public IMethodSymbol? OperatorMethod { get; } 5682internal BinaryOperation(BinaryOperatorKind operatorKind, IOperation leftOperand, IOperation rightOperand, bool isLifted, bool isChecked, bool isCompareText, IMethodSymbol? operatorMethod, ITypeSymbol? constrainedToType, IMethodSymbol? unaryOperatorMethod, SemanticModel? semanticModel, SyntaxNode syntax, ITypeSymbol? type, ConstantValue? constantValue, bool isImplicit) 5703public IMethodSymbol? OperatorMethod { get; } 5705public IMethodSymbol? UnaryOperatorMethod { get; } 5904internal AnonymousFunctionOperation(IMethodSymbol symbol, IBlockOperation body, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 5910public IMethodSymbol Symbol { get; } 5957internal ObjectCreationOperation(IMethodSymbol? constructor, IObjectOrCollectionInitializerOperation? initializer, ImmutableArray<IArgumentOperation> arguments, SemanticModel? semanticModel, SyntaxNode syntax, ITypeSymbol? type, ConstantValue? constantValue, bool isImplicit) 5966public IMethodSymbol? Constructor { get; } 6346internal CompoundAssignmentOperation(IConvertibleConversion inConversion, IConvertibleConversion outConversion, BinaryOperatorKind operatorKind, bool isLifted, bool isChecked, IMethodSymbol? operatorMethod, ITypeSymbol? constrainedToType, IOperation target, IOperation value, SemanticModel? semanticModel, SyntaxNode syntax, ITypeSymbol? type, bool isImplicit) 6365public IMethodSymbol? OperatorMethod { get; } 7296internal IncrementOrDecrementOperation(bool isPostfix, bool isLifted, bool isChecked, IOperation target, IMethodSymbol? operatorMethod, ITypeSymbol? constrainedToType, OperationKind kind, SemanticModel? semanticModel, SyntaxNode syntax, ITypeSymbol? type, bool isImplicit) 7312public IMethodSymbol? OperatorMethod { get; } 9077internal RangeOperation(IOperation? leftOperand, IOperation? rightOperand, bool isLifted, IMethodSymbol? method, SemanticModel? semanticModel, SyntaxNode syntax, ITypeSymbol? type, bool isImplicit) 9089public IMethodSymbol? Method { get; } 10064internal WithOperation(IOperation operand, IMethodSymbol? cloneMethod, IObjectOrCollectionInitializerOperation initializer, SemanticModel? semanticModel, SyntaxNode syntax, ITypeSymbol? type, bool isImplicit) 10073public IMethodSymbol? CloneMethod { get; } 10711internal CollectionExpressionOperation(IMethodSymbol? constructMethod, ImmutableArray<IOperation> constructArguments, ImmutableArray<IOperation> elements, SemanticModel? semanticModel, SyntaxNode syntax, ITypeSymbol? type, bool isImplicit) 10719public IMethodSymbol? ConstructMethod { get; }
Operations\CommonConversion.cs (2)
32internal CommonConversion(bool exists, bool isIdentity, bool isNumeric, bool isReference, bool isImplicit, bool isNullable, IMethodSymbol? methodSymbol, ITypeSymbol? constrainedToType) 100public IMethodSymbol? MethodSymbol { get; }
Operations\ControlFlowGraph.cs (7)
27private readonly ImmutableDictionary<IMethodSymbol, (ControlFlowRegion region, ILocalFunctionOperation operation, int ordinal)> _localFunctionsMap; 36ImmutableArray<IMethodSymbol> localFunctions, 37ImmutableDictionary<IMethodSymbol, (ControlFlowRegion region, ILocalFunctionOperation operation, int ordinal)> localFunctionsMap, 55foreach (IMethodSymbol method in localFunctions) 222public ImmutableArray<IMethodSymbol> LocalFunctions { get; } 227public ControlFlowGraph GetLocalFunctionControlFlowGraph(IMethodSymbol localFunction, CancellationToken cancellationToken = default) 244internal bool TryGetLocalFunctionControlFlowGraph(IMethodSymbol localFunction, [NotNullWhen(true)] out ControlFlowGraph? controlFlowGraph)
Operations\ControlFlowGraphBuilder.cs (23)
149var localFunctions = ArrayBuilder<IMethodSymbol>.GetInstance(); 150var localFunctionsMap = ImmutableDictionary.CreateBuilder<IMethodSymbol, (ControlFlowRegion, ILocalFunctionOperation, int)>(); 2482IMethodSymbol? unaryOperatorMethod = ((BinaryOperation)binOp).UnaryOperatorMethod; 2584IMethodSymbol? unaryOperatorMethod = ((BinaryOperation)binOp).UnaryOperatorMethod; 3344var method = (IMethodSymbol?)_compilation.CommonGetSpecialTypeMember(nullableMember)?.GetISymbol(); 3352method = (IMethodSymbol)candidate; 3965private void HandleUsingOperationParts(IOperation resources, IOperation body, IMethodSymbol? disposeMethod, ImmutableArray<IArgumentOperation> disposeArguments, ImmutableArray<ILocalSymbol> locals, bool isAsynchronous, 4123private void AddDisposingFinally(IOperation resource, bool requiresRuntimeConversion, ITypeSymbol iDisposable, IMethodSymbol? disposeMethod, ImmutableArray<IArgumentOperation> disposeArguments, bool isAsynchronous) 4182var method = disposeMethod ?? (isAsynchronous 4183? (IMethodSymbol?)_compilation.CommonGetWellKnownTypeMember(WellKnownMember.System_IAsyncDisposable__DisposeAsync)?.GetISymbol() 4184: (IMethodSymbol?)_compilation.CommonGetSpecialTypeMember(SpecialMember.System_IDisposable__Dispose)?.GetISymbol()); 4338var enterMethod = (IMethodSymbol?)_compilation.CommonGetWellKnownTypeMember(WellKnownMember.System_Threading_Monitor__Enter2)?.GetISymbol(); 4344enterMethod = (IMethodSymbol?)_compilation.CommonGetWellKnownTypeMember(WellKnownMember.System_Threading_Monitor__Enter)?.GetISymbol(); 4427var exitMethod = (IMethodSymbol?)_compilation.CommonGetWellKnownTypeMember(WellKnownMember.System_Threading_Monitor__Exit)?.GetISymbol(); 4706InvocationOperation makeInvocationDroppingInstanceForStaticMethods(IMethodSymbol method, IOperation instance, ImmutableArray<IArgumentOperation> arguments) 4711InvocationOperation makeInvocation(SyntaxNode syntax, IMethodSymbol method, IOperation? instanceOpt, ImmutableArray<IArgumentOperation> arguments) 4799var method = (IMethodSymbol?)_compilation.CommonGetWellKnownTypeMember(helper)?.GetISymbol(); 7833var matchFailureCtor = 7834(IMethodSymbol?)(_compilation.CommonGetWellKnownTypeMember(WellKnownMember.System_Runtime_CompilerServices_SwitchExpressionException__ctor) ??
Operations\ControlFlowGraphBuilder.RegionBuilder.cs (11)
24public ArrayBuilder<(IMethodSymbol, ILocalFunctionOperation)>? LocalFunctions = null; 94public void Add(IMethodSymbol symbol, ILocalFunctionOperation operation) 102LocalFunctions = ArrayBuilder<(IMethodSymbol, ILocalFunctionOperation)>.GetInstance(); 108public void AddRange(ArrayBuilder<(IMethodSymbol, ILocalFunctionOperation)>? others) 117Debug.Assert(others.All(((IMethodSymbol m, ILocalFunctionOperation _) tuple) => tuple.m.MethodKind == MethodKind.LocalFunction)); 121LocalFunctions = ArrayBuilder<(IMethodSymbol, ILocalFunctionOperation)>.GetInstance(); 297ArrayBuilder<IMethodSymbol> localFunctions, 298ImmutableDictionary<IMethodSymbol, (ControlFlowRegion region, ILocalFunctionOperation operation, int ordinal)>.Builder localFunctionsMap, 311foreach ((IMethodSymbol method, IOperation _) in LocalFunctions) 339LocalFunctions?.SelectAsArray(((IMethodSymbol, ILocalFunctionOperation) tuple) => tuple.Item1) ?? default, 346foreach ((IMethodSymbol method, ILocalFunctionOperation operation) in LocalFunctions)
Operations\ControlFlowGraphExtensions.cs (1)
17public static ControlFlowGraph GetLocalFunctionControlFlowGraphInScope(this ControlFlowGraph controlFlowGraph, IMethodSymbol localFunction, CancellationToken cancellationToken = default)
Operations\ControlFlowRegion.cs (2)
56public ImmutableArray<IMethodSymbol> LocalFunctions { get; } 66ImmutableArray<IMethodSymbol> methods,
Operations\DisposeOperationInfo.cs (2)
10public readonly IMethodSymbol? DisposeMethod; 14public DisposeOperationInfo(IMethodSymbol? disposeMethod, ImmutableArray<IArgumentOperation> disposeArguments)
Operations\Loops\ForEachLoopOperationInfo.cs (6)
17public readonly IMethodSymbol GetEnumeratorMethod; 19public readonly IMethodSymbol MoveNextMethod; 26public readonly IMethodSymbol? PatternDisposeMethod; 45IMethodSymbol getEnumeratorMethod, 47IMethodSymbol moveNextMethod, 53IMethodSymbol? patternDisposeMethod,
Operations\OperationExtensions.cs (1)
20public static IMethodSymbol GetFunctionPointerSignature(this IFunctionPointerInvocationOperation functionPointer)
Operations\OperationNodes.cs (2)
81public IMethodSymbol? OperatorMethod => Conversion.MethodSymbol; 161public IMethodSymbol Symbol => Original.Symbol;
SourceGeneration\Nodes\SyntaxValueProvider_ForAttributeWithMetadataName.cs (2)
156addMatchingAttributes((symbol as IMethodSymbol)?.GetReturnTypeAttributes()); 193foreach (var constructorSymbol in namedTypeSymbol.InstanceConstructors)
SymbolDisplay\AbstractSymbolDisplayVisitor_Minimal.cs (1)
74arity = ((IMethodSymbol)candidate).Arity;
SymbolDisplay\AbstractSymbolDisplayVisitor.cs (1)
192var ctor = attribute.AttributeConstructor;
Symbols\Attributes\CommonAttributeData.cs (2)
33public IMethodSymbol? AttributeConstructor { get { return CommonAttributeConstructor; } } 34protected abstract IMethodSymbol? CommonAttributeConstructor { get; }
Symbols\IEventSymbol.cs (3)
37IMethodSymbol? AddMethod { get; } 42IMethodSymbol? RemoveMethod { get; } 47IMethodSymbol? RaiseMethod { get; }
Symbols\IFunctionPointerTypeSymbol.cs (1)
19public IMethodSymbol Signature { get; }
Symbols\ILabelSymbol.cs (2)
19/// Gets the immediately containing <see cref="IMethodSymbol"/> of this <see cref="ILocalSymbol"/>. 21IMethodSymbol ContainingMethod { get; }
Symbols\IMethodSymbol.cs (12)
139IMethodSymbol ConstructedFrom { get; } 159new IMethodSymbol OriginalDefinition { get; } 165IMethodSymbol? OverriddenMethod { get; } 181IMethodSymbol? ReducedFrom { get; } 197IMethodSymbol? ReduceExtensionMethod(ITypeSymbol receiverType); 203IMethodSymbol? ReduceExtensionMember(ITypeSymbol receiverType); 212ImmutableArray<IMethodSymbol> ExplicitInterfaceImplementations { get; } 259IMethodSymbol Construct(params ITypeSymbol[] typeArguments); 264IMethodSymbol Construct(ImmutableArray<ITypeSymbol> typeArguments, ImmutableArray<NullableAnnotation> typeArgumentNullableAnnotations); 270IMethodSymbol? PartialDefinitionPart { get; } 277IMethodSymbol? PartialImplementationPart { get; } 334IMethodSymbol? AssociatedExtensionImplementation { get; }
Symbols\INamedTypeSymbol.cs (4)
111IMethodSymbol? DelegateInvokeMethod { get; } 146ImmutableArray<IMethodSymbol> InstanceConstructors { get; } 151ImmutableArray<IMethodSymbol> StaticConstructors { get; } 156ImmutableArray<IMethodSymbol> Constructors { get; }
Symbols\IPropertySymbol.cs (2)
77IMethodSymbol? GetMethod { get; } 82IMethodSymbol? SetMethod { get; }
Symbols\ISymbol.cs (2)
171/// <c>PartialImplementationPart</c> properties on <see cref="IMethodSymbol"/>, <see cref="IPropertySymbol"/>, or 185/// <c>PartialImplementationPart</c> properties on <see cref="IMethodSymbol"/>, <see cref="IPropertySymbol"/>, or
Symbols\ISymbolExtensions.cs (10)
9using LockTypeInfo = (IMethodSymbol EnterScopeMethod, IMethodSymbol ScopeDisposeMethod); 17public static IMethodSymbol? GetConstructedReducedFrom(this IMethodSymbol method) 25var reducedFrom = method.ReducedFrom; 145IMethodSymbol? enterScopeMethod = TryFindPublicVoidParameterlessMethod(lockType, WellKnownMemberNames.EnterScopeMethodName); 158IMethodSymbol? disposeMethod = TryFindPublicVoidParameterlessMethod(scopeType, WellKnownMemberNames.DisposeMethodName); 172private static IMethodSymbol? TryFindPublicVoidParameterlessMethod(ITypeSymbol type, string name) 175IMethodSymbol? result = null; 178if (member is IMethodSymbol
Symbols\ITypeParameterSymbol.cs (1)
38IMethodSymbol? DeclaringMethod { get; }
Symbols\SymbolVisitor.cs (1)
63public virtual void VisitMethod(IMethodSymbol symbol)
Symbols\SymbolVisitor`1.cs (1)
66public virtual TResult? VisitMethod(IMethodSymbol symbol)
Symbols\SymbolVisitor`2.cs (1)
71public virtual TResult VisitMethod(IMethodSymbol symbol, TArgument argument)
Microsoft.CodeAnalysis.Analyzers (502)
FixAnalyzers\FixerWithFixAllAnalyzer.cs (10)
91IMethodSymbol? getFixAllProviderMethod = codeFixProviderSymbol.GetMembers(GetFixAllProviderMethodName).OfType<IMethodSymbol>().FirstOrDefault(); 115var createMethods = codeActionSymbol.GetMembers(CreateMethodName).OfType<IMethodSymbol>().ToImmutableHashSet(); 144IMethodSymbol GetFixAllProviderMethod, 146ImmutableHashSet<IMethodSymbol> CreateMethods); 169if (context.OwningSymbol is not IMethodSymbol method) 183if (invocation.TargetMethod is IMethodSymbol invocationSym && _analysisTypes.CreateMethods.Contains(invocationSym)) 193IMethodSymbol? constructor = objectCreation.Constructor; 244IMethodSymbol getFixAllProviderMethod = type.GetMembers(GetFixAllProviderMethodName).OfType<IMethodSymbol>().FirstOrDefault();
FixAnalyzers\FixerWithFixAllAnalyzer.Fixer.cs (2)
66var getFixAllProviderMethod = codeFixProviderSymbol?.GetMembers(FixerWithFixAllAnalyzer.GetFixAllProviderMethodName).OfType<IMethodSymbol>().FirstOrDefault();
MetaAnalyzers\CompareSymbolsCorrectlyAnalyzer.cs (2)
175var method = invocationOperation.TargetMethod; 229static bool IsBehavingOnSymbolType(IMethodSymbol? method, INamedTypeSymbol symbolType)
MetaAnalyzers\ConfigureGeneratedCodeAnalysisAnalyzer.cs (2)
60var method = (IMethodSymbol)context.OwningSymbol;
MetaAnalyzers\DiagnosticDescriptorCreationAnalyzer.cs (6)
256if (!TryGetDescriptorCreateMethodAndArguments(fieldInitializer, diagnosticDescriptorType, out var creationMethod, out var creationArguments)) 327if (compilationEndContextType.GetMembers(DiagnosticWellKnownNames.ReportDiagnosticName).FirstOrDefault() is IMethodSymbol compilationEndReportDiagnosticMethod) 329var diagnosticCreateMethods = diagnosticType.GetMembers("Create").OfType<IMethodSymbol>() 527[NotNullWhen(returnValue: true)] out IMethodSymbol? creationMethod, 541bool IsDescriptorConstructor(IMethodSymbol? method) 546bool IsCreateHelper(IMethodSymbol method)
MetaAnalyzers\DoNotUseCompilationGetSemanticModelAnalyzer.cs (1)
54if (operationBlockContext.OwningSymbol is IMethodSymbol methodSymbol &&
MetaAnalyzers\EnableConcurrentExecutionAnalyzer.cs (2)
60var method = (IMethodSymbol)context.OwningSymbol;
MetaAnalyzers\Fixers\CompareSymbolsCorrectlyFix.cs (3)
116private static async Task<Document> CallOverloadWithEqualityComparerAsync(Document document, SyntaxNode nodeToReplace, IMethodSymbol? methodSymbol, 145private static bool TryFindSymbolEqualityComparerOverload(IMethodSymbol? methodSymbol, INamedTypeSymbol iEqualityComparer, out int symbolEqualityParameterPosition) 155foreach (var overload in overloads)
MetaAnalyzers\RegisterActionAnalyzer.cs (8)
193public IMethodSymbol Method { get; set; } 241var method = codeBlockContext.OwningSymbol as IMethodSymbol; 265private bool ShouldAnalyze([NotNullWhen(returnValue: true)] IMethodSymbol? method) 302private static bool IsRegisterAction(string expectedName, IMethodSymbol method, params INamedTypeSymbol[] allowedContainingTypes) 319var method = (IMethodSymbol)symbol; 456private void NoteRegisterActionInvocation(IMethodSymbol method, TInvocationExpressionSyntax invocation, SemanticModel model, CancellationToken cancellationToken)
MetaAnalyzers\ReportDiagnosticAnalyzer.cs (1)
231if (argSymbol is IMethodSymbol method &&
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.cs (2)
30IMethodSymbol lambdaOrLocalFunction, 52IMethodSymbol localFunctionOrLambda,
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (12)
36private readonly Func<IMethodSymbol, ControlFlowGraph, AnalysisData, CancellationToken, BasicBlockAnalysisData> _analyzeLocalFunctionOrLambdaInvocation; 55private readonly PooledDictionary<IMethodSymbol, ControlFlowGraph> _localFunctionTargetsToAccessingCfgMap; 79PooledHashSet<IMethodSymbol> lambdaOrLocalFunctionsBeingAnalyzed, 80Func<IMethodSymbol, ControlFlowGraph, AnalysisData, CancellationToken, BasicBlockAnalysisData> analyzeLocalFunctionOrLambdaInvocation, 82PooledDictionary<IMethodSymbol, ControlFlowGraph> localFunctionTargetsToAccessingCfgMap, 112protected override PooledHashSet<IMethodSymbol> LambdaOrLocalFunctionsBeingAnalyzed { get; } 119Func<IMethodSymbol, ControlFlowGraph, AnalysisData, CancellationToken, BasicBlockAnalysisData> analyzeLocalFunctionOrLambdaInvocation) 133lambdaOrLocalFunctionsBeingAnalyzed: PooledHashSet<IMethodSymbol>.GetInstance(), 136localFunctionTargetsToAccessingCfgMap: PooledDictionary<IMethodSymbol, ControlFlowGraph>.GetInstance(), 157IMethodSymbol lambdaOrLocalFunction, 336ControlFlowGraph TryGetLocalFunctionControlFlowGraphInScope(IMethodSymbol localFunction) 501protected override BasicBlockAnalysisData AnalyzeLocalFunctionInvocationCore(IMethodSymbol localFunction, CancellationToken cancellationToken)
src\b310f676f7308b7f\SymbolUsageAnalysis.OperationTreeAnalysisData.cs (7)
18private readonly Func<IMethodSymbol, BasicBlockAnalysisData> _analyzeLocalFunction; 23PooledHashSet<IMethodSymbol> lambdaOrLocalFunctionsBeingAnalyzed, 24Func<IMethodSymbol, BasicBlockAnalysisData> analyzeLocalFunction) 36protected override PooledHashSet<IMethodSymbol> LambdaOrLocalFunctionsBeingAnalyzed { get; } 40Func<IMethodSymbol, BasicBlockAnalysisData> analyzeLocalFunction) 45lambdaOrLocalFunctionsBeingAnalyzed: PooledHashSet<IMethodSymbol>.GetInstance(), 49protected override BasicBlockAnalysisData AnalyzeLocalFunctionInvocationCore(IMethodSymbol localFunction, CancellationToken cancellationToken)
src\ce8c1e82c1124a2b\AbstractInitializerParameterService.cs (1)
24protected abstract SyntaxNode? GetAccessorBody(IMethodSymbol accessor, CancellationToken cancellationToken);
src\roslyn\src\RoslynAnalyzers\Microsoft.CodeAnalysis.BannedApiAnalyzers\Core\SymbolIsBannedAnalyzerBase.cs (1)
243IMethodSymbol method => method.ContainingType.IsAttribute() && method.IsConstructor(),
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.cs (2)
273SymbolKind.Method => MethodMetricData.Compute((IMethodSymbol)symbol, context), 311SymbolKind.Method => MethodMetricData.Compute((IMethodSymbol)symbol, context),
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.EventMetricData.cs (1)
55private static IEnumerable<IMethodSymbol> GetAccessors(IEventSymbol @event)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.MethodMetricData.cs (2)
15IMethodSymbol symbol, 27internal static MethodMetricData Compute(IMethodSymbol method, CodeMetricsAnalysisContext context)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.NamedTypeMetricData.cs (1)
59members = members.Where(m => m.Kind != SymbolKind.Method || ((IMethodSymbol)m).AssociatedSymbol == null);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.PropertyMetricData.cs (1)
56private static IEnumerable<IMethodSymbol> GetAccessors(IPropertySymbol property)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
221if (symbol is IMethodSymbol methodSymbol) 413SymbolKind.Method => ((IMethodSymbol)member).Parameters,
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\DoNotCatchGeneralUnlessRethrown.cs (4)
34protected abstract Diagnostic CreateDiagnostic(IMethodSymbol containingMethod, SyntaxToken catchKeyword); 35protected virtual bool IsConfiguredDisallowedExceptionType(INamedTypeSymbol namedTypeSymbol, IMethodSymbol containingMethod, Compilation compilation, AnalyzerOptions analyzerOptions, CancellationToken cancellationToken) 62var method = (IMethodSymbol)operationBlockAnalysisContext.OwningSymbol;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (48)
26public static bool IsObjectEqualsOverride(this IMethodSymbol method) 40public static bool IsObjectEquals(this IMethodSymbol method) 54public static bool IsStaticObjectEqualsOrReferenceEquals(this IMethodSymbol method) 69private static bool IsObjectMethodOverride(IMethodSymbol method) 71IMethodSymbol overriddenMethod = method.OverriddenMethod; 89public static bool IsImplementationOfInterfaceMethod(this IMethodSymbol method, ITypeSymbol? typeArgument, [NotNullWhen(returnValue: true)] INamedTypeSymbol? interfaceType, string interfaceMethodName) 93return constructedInterface?.GetMembers(interfaceMethodName).FirstOrDefault() is IMethodSymbol interfaceMethod && 100public static bool IsDisposeImplementation(this IMethodSymbol method, Compilation compilation) 109public static bool IsAsyncDisposeImplementation(this IMethodSymbol method, Compilation compilation) 119public static bool IsDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iDisposable) 141public static bool IsAsyncDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iAsyncDisposable, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTaskType) 163private static bool HasDisposeMethodSignature(this IMethodSymbol method) 171public static bool HasDisposeSignatureByConvention(this IMethodSymbol method) 181public static bool HasDisposeBoolMethodSignature(this IMethodSymbol method) 192private static bool HasDisposeCloseMethodSignature(this IMethodSymbol method) 200private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 207private static bool HasDisposeAsyncMethodSignature(this IMethodSymbol method, 223private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 236private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 248public static DisposeMethodKind GetDisposeMethodKind(this IMethodSymbol method, Compilation compilation) 263this IMethodSymbol method, 311public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 317public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 324public static bool HasOptionalParameters(this IMethodSymbol methodSymbol) 329public static IEnumerable<IMethodSymbol> GetOverloads(this IMethodSymbol? method) 331var methods = method?.ContainingType?.GetMembers(method.Name).OfType<IMethodSymbol>(); 334foreach (var member in methods) 364public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 385public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 394public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 406public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 420private static readonly BoundedCache<Compilation, ConcurrentDictionary<IMethodSymbol, IBlockOperation?>> s_methodToTopmostOperationBlockCache 426public static IBlockOperation? GetTopmostOperationBlock(this IMethodSymbol method, Compilation compilation, CancellationToken cancellationToken = default) 432IBlockOperation? ComputeTopmostOperationBlock(IMethodSymbol unused) 465public static bool IsLambdaOrLocalFunctionOrDelegate(this IMethodSymbol method) 474public static bool IsLambdaOrLocalFunction(this IMethodSymbol method) 483public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 493public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 505public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 519public static bool HasParameterWithDelegateType(this IMethodSymbol methodSymbol) 527public static bool IsArgumentNullCheckMethod(this IMethodSymbol method) 536public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 547public static ImmutableArray<IMethodSymbol> GetOriginalDefinitions(this IMethodSymbol methodSymbol) 549ImmutableArray<IMethodSymbol>.Builder originalDefinitionsBuilder = ImmutableArray.CreateBuilder<IMethodSymbol>(); 566.OfType<IMethodSymbol>()
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (1)
69return symbol.GetMembers(WellKnownMemberNames.ObjectEquals).OfType<IMethodSymbol>().Any(m => m.IsObjectEqualsOverride());
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (2)
331this IOperation operation, IMethodSymbol lambdaOrLocalFunction, out PooledHashSet<ISymbol> builder) 339using var _ = PooledHashSet<IMethodSymbol>.GetInstance(out var nestedLambdasAndLocalFunctions);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ISymbolExtensions.cs (10)
72public static bool ParametersAreSame(this IMethodSymbol method1, IMethodSymbol method2) 93public static bool ParameterTypesAreSame(this IMethodSymbol method1, IMethodSymbol method2, IEnumerable<int> parameterIndices, CancellationToken cancellationToken) 128public static bool ReturnTypeAndParametersAreSame(this IMethodSymbol method, IMethodSymbol otherMethod) 198if (symbol is IMethodSymbol methodSymbol && !methodSymbol.ExplicitInterfaceImplementations.IsEmpty) 331public static bool HasDerivedMethodAttribute(this IMethodSymbol symbol, [NotNullWhen(returnValue: true)] INamedTypeSymbol? attribute) 357=> (symbol as IMethodSymbol)?.IsLambdaOrLocalFunction() == true; 376IMethodSymbol method => method.IsReadOnly,
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (1)
132return type.GetMembers("Dispose").OfType<IMethodSymbol>()
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Options\SymbolModifiers.cs (1)
81if (symbol is IMethodSymbol method &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\CollectionExpressionUtilities.cs (9)
98var capacityConstructor = GetAccessibleInstanceConstructor(constructors, c => c.Parameters is [{ Name: "capacity", Type.SpecialType: SpecialType.System_Int32 }]); 102var noArgConstructor = 122IMethodSymbol? GetAccessibleInstanceConstructor(ImmutableArray<IMethodSymbol> constructors, Func<IMethodSymbol, bool> predicate) 124var constructor = constructors.FirstOrDefault(c => !c.IsStatic && predicate(c)); 136/// <item>their <see cref="IMethodSymbol.Arity"/> must match that of <paramref 145public static ImmutableArray<IMethodSymbol>? TryGetCollectionBuilderFactoryMethods( 164.OfType<IMethodSymbol>()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (3)
235var containingMethod = TryGetContainingAnonymousFunctionOrLocalFunction(operation) ?? (containingSymbol as IMethodSymbol); 239public static IMethodSymbol? TryGetContainingAnonymousFunctionOrLocalFunction(this IOperation? operation)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.AnalysisData.cs (3)
72protected abstract PooledHashSet<IMethodSymbol> LambdaOrLocalFunctionsBeingAnalyzed { get; } 91public BasicBlockAnalysisData AnalyzeLocalFunctionInvocation(IMethodSymbol localFunction, CancellationToken cancellationToken) 126protected abstract BasicBlockAnalysisData AnalyzeLocalFunctionInvocationCore(IMethodSymbol localFunction, CancellationToken cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.cs (1)
44BasicBlockAnalysisData AnalyzeLocalFunction(IMethodSymbol localFunction)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (1)
344private void AnalyzeLocalFunctionInvocation(IMethodSymbol localFunction)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (1)
44if (symbol is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (3)
167switch (((IMethodSymbol)currentSymbol).MethodKind) 363SymbolCategory.Method => symbol is IMethodSymbol method && method.MethodKind == (MethodKind)_kind, 507if (Modifiers.HasFlag(Modifiers.Async) && kind == SymbolKind.Method && ((IMethodSymbol)symbol).IsAsync)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ForEachSymbols.cs (6)
8IMethodSymbol? getEnumeratorMethod, 9IMethodSymbol? moveNextMethod, 11IMethodSymbol? disposeMethod, 14public readonly IMethodSymbol? GetEnumeratorMethod = getEnumeratorMethod; 15public readonly IMethodSymbol? MoveNextMethod = moveNextMethod; 17public readonly IMethodSymbol? DisposeMethod = disposeMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (5)
83IMethodSymbol? GetGetAwaiterMethod(SemanticModel semanticModel, SyntaxNode node); 85ImmutableArray<IMethodSymbol> GetDeconstructionAssignmentMethods(SemanticModel semanticModel, SyntaxNode node); 87ImmutableArray<IMethodSymbol> GetDeconstructionForEachMethods(SemanticModel semanticModel, SyntaxNode node); 106ImmutableArray<IMethodSymbol> GetLocalFunctionSymbols(Compilation compilation, ISymbol symbol, CancellationToken cancellationToken); 123bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFactsExtensions.cs (1)
112=> symbol is IMethodSymbol methodSymbol &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
63if (isAnonymousDelegateType && symbol is IMethodSymbol methodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.BuiltinOperatorSymbolKey.cs (6)
11private sealed class BuiltinOperatorSymbolKey : AbstractSymbolKey<IMethodSymbol> 15public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 23SymbolKeyReader reader, IMethodSymbol? contextualSymbol, out string? failureReason) 28using var parameterTypes = reader.ReadSymbolKeyArray<IMethodSymbol, ITypeSymbol>( 54var unaryOperator = reader.Compilation.CreateBuiltinOperator(name, returnTypeSymbol, parameterTypes[0]); 58var binaryOperator = reader.Compilation.CreateBuiltinOperator(name, returnTypeSymbol, parameterTypes[0], parameterTypes[1]);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (5)
33/// <item>Two <see cref="IMethodSymbol"/>s are the "same" if they have 36/// equal <see cref="IMethodSymbol.Arity"/>, 37/// the "same" <see cref="IMethodSymbol.TypeArguments"/>, and have 76/// cref="IRangeVariableSymbol"/> and <see cref="MethodKind.LocalFunction"/> <see cref="IMethodSymbol"/>s can also 323IMethodSymbol { MethodKind: MethodKind.LocalFunction } => true,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.MethodSymbolKey.cs (22)
11private sealed class ReducedExtensionMethodSymbolKey : AbstractSymbolKey<IMethodSymbol> 15public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 24SymbolKeyReader reader, IMethodSymbol? contextualMethod, out string? failureReason) 41using var result = PooledArrayBuilder<IMethodSymbol>.GetInstance(); 42foreach (var reducedFrom in reducedFromResolution.OfType<IMethodSymbol>()) 55private sealed class ConstructedMethodSymbolKey : AbstractSymbolKey<IMethodSymbol> 59public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 66SymbolKeyReader reader, IMethodSymbol? contextualMethod, out string? failureReason) 70using var typeArguments = reader.ReadSymbolKeyArray<IMethodSymbol, ITypeSymbol>( 101using var result = PooledArrayBuilder<IMethodSymbol>.GetInstance(); 102foreach (var method in constructedFrom.OfType<IMethodSymbol>()) 123private sealed class MethodSymbolKey : AbstractSymbolKey<IMethodSymbol> 127public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 160SymbolKeyReader reader, IMethodSymbol? contextualSymbol, out string? failureReason) 179using var methods = GetMembersOfNamedType<IMethodSymbol>(containingType, metadataName: null); 180IMethodSymbol? method = null; 181foreach (var candidate in methods) 223_ = reader.ReadSymbolKeyArray<IMethodSymbol, ITypeSymbol>( 243private static IMethodSymbol? Resolve( 244SymbolKeyReader reader, bool isPartialImplementationPart, IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (2)
45case IMethodSymbol method: 64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyReader.cs (5)
331private readonly List<IMethodSymbol?> _methodSymbolStack = []; 409public MethodPopper PushMethod(IMethodSymbol? method) 415private void PopMethod(IMethodSymbol? method) 422public IMethodSymbol? ResolveMethod(int index) 441public readonly ref struct MethodPopper(SymbolKeyReader reader, IMethodSymbol? method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyWriter.cs (5)
69private readonly List<IMethodSymbol> _methodSymbolStack = []; 362public override void VisitMethod(IMethodSymbol methodSymbol) 499var method = _methodSymbolStack[i]; 512public void PushMethod(IMethodSymbol method) 515public void PopMethod(IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.TypeParameterOrdinalSymbolKey.cs (1)
22var method = reader.ResolveMethod(methodIndex);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (14)
112SemanticModel model, TForEachStatementSyntax forEach, out IMethodSymbol getEnumeratorMethod, out ITypeSymbol elementType, out ImmutableArray<ILocalSymbol> localVariables); 379symbol = ((IMethodSymbol)symbol).GetConstructedReducedFrom()!; 384newSymbol = ((IMethodSymbol)newSymbol).GetConstructedReducedFrom()!; 404if (symbol is IMethodSymbol methodSymbol && newSymbol is IMethodSymbol newMethodSymbol) 478if (symbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction } methodSymbol && 479newSymbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction } newMethodSymbol) 757return symbol is IMethodSymbol { ContainingType.SpecialType: SpecialType.System_Object } 778GetForEachSymbols(this.OriginalSemanticModel, forEachStatement, out var originalGetEnumerator, out var originalElementType, out var originalLocalVariables); 779GetForEachSymbols(this.SpeculativeSemanticModel, newForEachStatement, out var newGetEnumerator, out var newElementType, out var newLocalVariables); 806private bool ReplacementBreaksForEachGetEnumerator(IMethodSymbol getEnumerator, IMethodSymbol newGetEnumerator, TExpressionSyntax newForEachStatementExpression) 875=> symbol is IMethodSymbol { MethodKind: MethodKind.DelegateInvoke }; 1048return receiverSymbol is IMethodSymbol or IPropertySymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\LightweightOverloadResolution.cs (12)
31public IMethodSymbol? RefineOverload(SymbolInfo symbolInfo, ImmutableArray<IMethodSymbol> candidates) 34public (IMethodSymbol? method, int parameterIndex) RefineOverloadAndPickParameter(SymbolInfo symbolInfo, ImmutableArray<IMethodSymbol> candidates) 38return symbolInfo.Symbol is IMethodSymbol method 43public int FindParameterIndexIfCompatibleMethod(IMethodSymbol method) 52private (IMethodSymbol? symbol, int parameterIndex) GuessCurrentSymbolAndParameter(ImmutableArray<IMethodSymbol> methodGroup) 56foreach (var method in methodGroup) 73private (IMethodSymbol? method, int parameterIndex) TryFindParameterIndexIfCompatibleMethod(IMethodSymbol method) 185private bool TryPrepareArgumentToParameterMap(IMethodSymbol method, ref TemporaryArray<int> argumentToParameterMap)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (2)
371public static IMethodSymbol? GetTopLevelStatementsMethod(this Compilation compilation) 377if (candidateMember is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (11)
19internal static IMethodSymbol? TryGetCorrespondingExtensionBlockMethod(this IMethodSymbol methodSymbol) 33if (member is IMethodSymbol method && 49public static ImmutableArray<IMethodSymbol> GetAllMethodSymbolsOfPartialParts(this IMethodSymbol method) 72public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 77public static bool TryGetPredefinedComparisonOperator(this IMethodSymbol symbol, out PredefinedOperator op) 101public static PredefinedOperator GetPredefinedOperator(this IMethodSymbol symbol) 131public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 142public static bool IsAsyncReturningVoidTask(this IMethodSymbol method, Compilation compilation) 160public static bool IsPrimaryConstructor(this IMethodSymbol constructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (9)
136static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 184IMethodSymbol method => method.ExplicitInterfaceImplementations.Length > 0, 235static bool IsNonPublicImplementableAccessor(IMethodSymbol? accessor) 242if (member is IMethodSymbol { IsStatic: true, IsAbstract: true, MethodKind: MethodKind.UserDefinedOperator } method) 335private static bool IsInaccessibleImplementableAccessor(IMethodSymbol? accessor, ISymbol within) 439case IMethodSymbol method: 651IMethodSymbol { MethodKind: MethodKind.Ordinary, CanBeReferencedByName: true } => true, 652IMethodSymbol { MethodKind: MethodKind.UserDefinedOperator } => true, 671return member is IMethodSymbol
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IParameterSymbolExtensions.cs (2)
31ContainingSymbol: IMethodSymbol 63ContainingSymbol: IMethodSymbol
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions_Accessibility.cs (2)
107var funcPtrSignature = ((IFunctionPointerTypeSymbol)symbol).Signature; 156if (symbol is IMethodSymbol { MethodKind: MethodKind.BuiltinOperator })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (43)
87IMethodSymbol method => method.OverriddenMethod, 110IMethodSymbol? bestMethod = null; 128else if (member is IMethodSymbol method) 145IMethodSymbol method => ImmutableArray<ISymbol>.CastUp(method.ExplicitInterfaceImplementations), 199if (symbol is IMethodSymbol 241=> symbol is IMethodSymbol { MethodKind: MethodKind.AnonymousFunction }; 268=> symbol is IMethodSymbol { MethodKind: MethodKind.ReducedExtension }; 273/// <inheritdoc cref="IMethodSymbol.IsExtensionMethod"/> 275=> symbol is IMethodSymbol { IsExtensionMethod: true }; 278=> symbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction }; 287=> symbol is IMethodSymbol { MethodKind: MethodKind.Constructor }; 290=> symbol is IMethodSymbol { MethodKind: MethodKind.StaticConstructor }; 293=> symbol is IMethodSymbol { MethodKind: MethodKind.Destructor }; 296=> symbol is IMethodSymbol { MethodKind: MethodKind.UserDefinedOperator }; 299=> symbol is IMethodSymbol { MethodKind: MethodKind.Conversion }; 302=> symbol is IMethodSymbol { MethodKind: MethodKind.Ordinary }; 305=> symbol is IMethodSymbol { MethodKind: MethodKind.Ordinary or MethodKind.LocalFunction }; 344IMethodSymbol methodSymbol => methodSymbol.ReturnType, 355SymbolKind.Method => ((IMethodSymbol)symbol).Arity, 370symbol = ((IMethodSymbol)symbol).GetConstructedReducedFrom(); 375if (symbol.ContainingSymbol is IMethodSymbol method) 393var method = parameter.ContainingSymbol as IMethodSymbol; 426IMethodSymbol m => m.Parameters, 434IMethodSymbol m => m.TypeParameters, 455IMethodSymbol m => m.TypeArguments, 500if (symbol is IMethodSymbol method && method.Parameters.All(p => p.RefKind == RefKind.None)) 656=> (symbol as IMethodSymbol)?.MethodKind.IsPropertyAccessor() == true; 659=> symbol is IMethodSymbol { MethodKind: MethodKind.EventAdd or MethodKind.EventRaise or MethodKind.EventRemove }; 685var methodSymbol = symbol as IMethodSymbol; 709var getAwaiters = potentialGetAwaiters.OfType<IMethodSymbol>().Where(x => !x.Parameters.Any()); 713public static bool IsValidGetAwaiter(this IMethodSymbol symbol) 717private static bool VerifyGetAwaiter(IMethodSymbol getAwaiter) 731var methods = returnType.GetMembers().OfType<IMethodSymbol>(); 747public static bool IsValidGetEnumerator(this IMethodSymbol symbol) 751private static bool VerifyGetEnumerator(IMethodSymbol getEnumerator) 771if (!members.OfType<IMethodSymbol>().Any(x => 787public static bool IsValidGetAsyncEnumerator(this IMethodSymbol symbol) 791private static bool VerifyGetAsyncEnumerator(IMethodSymbol getAsyncEnumerator) 814if (!members.OfType<IMethodSymbol>().Any(x => x.Name == WellKnownMemberNames.MoveNextAsyncMethodName)) 896[NotNullWhen(true)] out IMethodSymbol? classicExtensionMethod) 898if (symbol is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
108public override bool VisitMethod(IMethodSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.cs (2)
412.SelectAccessibleMembers<IMethodSymbol>(WellKnownMemberNames.CollectionInitializerAddMethodName, within ?? typeSymbol) 413.OfType<IMethodSymbol>()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SignatureComparer.cs (12)
43SymbolKind.Method => HaveSameSignature((IMethodSymbol)symbol1, (IMethodSymbol)symbol2, caseSensitive), 67public static bool BadPropertyAccessor(IMethodSymbol? method1, IMethodSymbol? method2) 73public bool HaveSameSignature(IMethodSymbol method1, 74IMethodSymbol method2, 162var method1 = (IMethodSymbol)symbol1; 163var method2 = (IMethodSymbol)symbol2; 208private bool HaveSameSignatureAndConstraintsAndReturnType(IMethodSymbol method1, IMethodSymbol method2)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (6)
149public bool ReturnTypeEquals(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 194private static bool IsConstructedFromSelf(IMethodSymbol symbol) 200private static bool CheckContainingType(IMethodSymbol x) 231private static bool IsPartialMethodDefinitionPart(IMethodSymbol symbol) 234private static bool IsPartialMethodImplementationPart(IMethodSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (8)
124SymbolKind.Method => MethodsAreEquivalent((IMethodSymbol)x, (IMethodSymbol)y, equivalentTypesWithDifferingAssemblies), 170private bool MethodsAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, bool considerReturnRefKinds = false) 186var rx = x.ReducedFrom; 187var ry = y.ReducedFrom; 486internal bool ReturnTypesAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (2)
68SymbolKind.Method => CombineHashCodes((IMethodSymbol)x, currentHash), 112private int CombineHashCodes(IMethodSymbol x, int currentHash)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractCodeGenerationService.cs (7)
53public TDeclarationNode AddMethod<TDeclarationNode>(TDeclarationNode destination, IMethodSymbol method, CodeGenerationContextInfo info, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode 82public SyntaxNode? CreateMethodDeclaration(IMethodSymbol method, CodeGenerationDestination destination, CodeGenerationContextInfo info, CancellationToken cancellationToken) 125protected abstract TDeclarationNode AddMethod<TDeclarationNode>(TDeclarationNode destination, IMethodSymbol method, TCodeGenerationContextInfo info, IList<bool>? availableIndices, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode; 147public abstract SyntaxNode? CreateMethodDeclaration(IMethodSymbol method, CodeGenerationDestination destination, TCodeGenerationContextInfo info, CancellationToken cancellationToken); 348IMethodSymbol method => CreateMethodDeclaration(method, codeGenerationDestination, info, cancellationToken), 366IMethodSymbol method => AddMethod(currentDestination, method, info, availableIndices, cancellationToken), 446public Task<Document> AddMethodAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractFlagsEnumGenerator.cs (1)
44var ctor = attribute.AttributeConstructor;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationSymbolFactory.cs (28)
33IMethodSymbol? addMethod = null, 34IMethodSymbol? removeMethod = null, 35IMethodSymbol? raiseMethod = null) 52IMethodSymbol? getMethod, 53IMethodSymbol? setMethod, 80ImmutableArray<IParameterSymbol> parameters, IMethodSymbol? getMethod, IMethodSymbol? setMethod, 119public static IMethodSymbol CreateConstructorSymbol( 138public static IMethodSymbol CreateDestructorSymbol( 147internal static IMethodSymbol CreateMethodSymbol( 154ImmutableArray<IMethodSymbol> explicitInterfaceImplementations, 172public static IMethodSymbol CreateMethodSymbol( 176ImmutableArray<IMethodSymbol> explicitInterfaceImplementations, 191public static IMethodSymbol CreateOperatorSymbol( 219public static IMethodSymbol CreateConversionSymbol( 244public static IMethodSymbol CreateConversionSymbol( 356internal static IMethodSymbol CreateAccessorSymbol( 357IMethodSymbol accessor, 360ImmutableArray<IMethodSymbol> explicitInterfaceImplementations = default, 382public static IMethodSymbol CreateAccessorSymbol( 470var invokeMethod = CreateMethodSymbol( 510internal static IMethodSymbol CreateMethodSymbol( 511IMethodSymbol method, 515ImmutableArray<IMethodSymbol> explicitInterfaceImplementations = default, 549IMethodSymbol? getMethod = null, 550IMethodSymbol? setMethod = null, 575IMethodSymbol? addMethod = null, 576IMethodSymbol? removeMethod = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerator.cs (1)
44public static Task<Document> AddMethodDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\ICodeGenerationService.cs (3)
33SyntaxNode? CreateMethodDeclaration(IMethodSymbol method, CodeGenerationDestination destination, CodeGenerationContextInfo info, CancellationToken cancellationToken); 63TDeclarationNode AddMethod<TDeclarationNode>(TDeclarationNode destination, IMethodSymbol method, CodeGenerationContextInfo info, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode; 143Task<Document> AddMethodAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractMethodSymbol.cs (12)
15public new IMethodSymbol OriginalDefinition { get; protected set; } 45public abstract IMethodSymbol ConstructedFrom { get; } 48public abstract IMethodSymbol OverriddenMethod { get; } 49public abstract IMethodSymbol ReducedFrom { get; } 51public abstract IMethodSymbol ReduceExtensionMethod(ITypeSymbol receiverType); 52public abstract ImmutableArray<IMethodSymbol> ExplicitInterfaceImplementations { get; } 53public abstract IMethodSymbol PartialDefinitionPart { get; } 54public abstract IMethodSymbol PartialImplementationPart { get; } 105public IMethodSymbol AssociatedExtensionImplementation => null; 112public IMethodSymbol Construct(params ITypeSymbol[] typeArguments) 115public IMethodSymbol Construct(ImmutableArray<ITypeSymbol> typeArguments, ImmutableArray<CodeAnalysis.NullableAnnotation> typeArgumentNullableAnnotations) 121public IMethodSymbol ReduceExtensionMember(ITypeSymbol receiverType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractNamedTypeSymbol.cs (4)
76public abstract IMethodSymbol DelegateInvokeMethod { get; } 81public abstract ImmutableArray<IMethodSymbol> InstanceConstructors { get; } 82public abstract ImmutableArray<IMethodSymbol> StaticConstructors { get; } 83public abstract ImmutableArray<IMethodSymbol> Constructors { get; }
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAttributeData.cs (1)
21protected override IMethodSymbol CommonAttributeConstructor => null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructedMethodSymbol.cs (7)
69public override IMethodSymbol ConstructedFrom => _constructedFrom; 76public override IMethodSymbol OverriddenMethod 80public override IMethodSymbol ReducedFrom 87public override IMethodSymbol ReduceExtensionMethod(ITypeSymbol receiverType) 93public override ImmutableArray<IMethodSymbol> ExplicitInterfaceImplementations 97public override IMethodSymbol PartialDefinitionPart 101public override IMethodSymbol PartialImplementationPart
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructedNamedTypeSymbol.cs (4)
47public override IMethodSymbol DelegateInvokeMethod 60public override ImmutableArray<IMethodSymbol> InstanceConstructors 69public override ImmutableArray<IMethodSymbol> StaticConstructors 78public override ImmutableArray<IMethodSymbol> Constructors
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructorInfo.cs (10)
12private static readonly ConditionalWeakTable<IMethodSymbol, CodeGenerationConstructorInfo> s_constructorToInfoMap = new(); 38IMethodSymbol constructor, 50private static CodeGenerationConstructorInfo? GetInfo(IMethodSymbol method) 56public static ImmutableArray<SyntaxNode> GetThisConstructorArgumentsOpt(IMethodSymbol constructor) 59public static ImmutableArray<SyntaxNode> GetBaseConstructorArgumentsOpt(IMethodSymbol constructor) 62public static ImmutableArray<SyntaxNode> GetStatements(IMethodSymbol constructor) 65public static string GetTypeName(IMethodSymbol constructor) 68public static bool GetIsUnsafe(IMethodSymbol constructor) 71public static bool GetIsPrimaryConstructor(IMethodSymbol constructor) 83private static string GetTypeName(CodeGenerationConstructorInfo? info, IMethodSymbol constructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationDestructorInfo.cs (6)
14private static readonly ConditionalWeakTable<IMethodSymbol, CodeGenerationDestructorInfo> s_destructorToInfoMap = new(); 28IMethodSymbol destructor, 36private static CodeGenerationDestructorInfo GetInfo(IMethodSymbol method) 42public static ImmutableArray<SyntaxNode> GetStatements(IMethodSymbol destructor) 45public static string GetTypeName(IMethodSymbol destructor) 51private static string GetTypeName(CodeGenerationDestructorInfo info, IMethodSymbol constructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationEventSymbol.cs (6)
19IMethodSymbol? addMethod, 20IMethodSymbol? removeMethod, 21IMethodSymbol? raiseMethod) : CodeGenerationSymbol(containingType?.ContainingAssembly, containingType, attributes, declaredAccessibility, modifiers, name), IEventSymbol 28public IMethodSymbol? AddMethod { get; } = addMethod; 29public IMethodSymbol? RemoveMethod { get; } = removeMethod; 30public IMethodSymbol? RaiseMethod { get; } = raiseMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationMethodInfo.cs (9)
14private static readonly ConditionalWeakTable<IMethodSymbol, CodeGenerationMethodInfo> s_methodToInfoMap = new(); 40IMethodSymbol method, 52private static CodeGenerationMethodInfo GetInfo(IMethodSymbol method) 58public static ImmutableArray<SyntaxNode> GetStatements(IMethodSymbol method) 61public static ImmutableArray<SyntaxNode> GetHandlesExpressions(IMethodSymbol method) 64public static bool GetIsNew(IMethodSymbol method) 67public static bool GetIsUnsafe(IMethodSymbol method) 70public static bool GetIsPartial(IMethodSymbol method) 73public static bool GetIsAsyncMethod(IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationMethodSymbol.cs (8)
19public override ImmutableArray<IMethodSymbol> ExplicitInterfaceImplementations { get; } 29ImmutableArray<IMethodSymbol> explicitInterfaceImplementations, 98public override IMethodSymbol ConstructedFrom => this; 105public override IMethodSymbol OverriddenMethod => null; 107public override IMethodSymbol ReducedFrom => null; 112public override IMethodSymbol ReduceExtensionMethod(ITypeSymbol receiverType) 115public override IMethodSymbol PartialImplementationPart => null; 117public override IMethodSymbol PartialDefinitionPart => null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamedTypeSymbol.cs (7)
91public override IMethodSymbol DelegateInvokeMethod 96? this.GetMembers(WellKnownMemberNames.DelegateInvokeName).OfType<IMethodSymbol>().FirstOrDefault() 163public override ImmutableArray<IMethodSymbol> InstanceConstructors 168return [.. this.GetMembers().OfType<IMethodSymbol>().Where(m => m.MethodKind == MethodKind.Constructor && !m.IsStatic)]; 172public override ImmutableArray<IMethodSymbol> StaticConstructors 177return [.. this.GetMembers().OfType<IMethodSymbol>().Where(m => m.MethodKind == MethodKind.StaticConstructor && m.IsStatic)]; 181public override ImmutableArray<IMethodSymbol> Constructors
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationPropertySymbol.cs (4)
23IMethodSymbol getMethod, 24IMethodSymbol setMethod) : CodeGenerationSymbol(containingType?.ContainingAssembly, containingType, attributes, declaredAccessibility, modifiers, name), IPropertySymbol 33public IMethodSymbol GetMethod { get; } = getMethod; 34public IMethodSymbol SetMethod { get; } = setMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationSymbol.cs (2)
81public static IMethodSymbol ContainingMethod => null; 165public ImmutableArray<AttributeData> GetAttributes(IMethodSymbol attributeConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (2)
72public IMethodSymbol DeclaringMethod 76return this.ContainingSymbol as IMethodSymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\IMethodSymbolExtensions.cs (9)
18public static IMethodSymbol EnsureNonConflictingNames( 19this IMethodSymbol method, INamedTypeSymbol containingType, ISyntaxFactsService syntaxFacts) 39var updatedMethod = method.RenameTypeParameters(newTypeParameterNames); 43public static IMethodSymbol RenameTypeParameters(this IMethodSymbol method, ImmutableArray<string> newNames) 75public static IMethodSymbol RenameParameters( 76this IMethodSymbol method, ImmutableArray<string> parameterNames) 141public static IMethodSymbol RemoveInaccessibleAttributesAndAttributesOfTypes( 142this IMethodSymbol method, ISymbol accessibleWithin,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\ISymbolExtensions.cs (2)
15IMethodSymbol method => method.PartialDefinitionPart != null || method.PartialImplementationPart != null, 53IMethodSymbol method => method.ReduceExtensionMember(receiverType),
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateEqualsMethod.cs (8)
24public static IMethodSymbol CreateEqualsMethod( 48public static IMethodSymbol CreateEqualsMethod(this Compilation compilation, ImmutableArray<SyntaxNode> statements) 51private static IMethodSymbol CreateEqualsMethod( 75public static IMethodSymbol CreateIEquatableEqualsMethod( 88var methodSymbol = constructedEquatableType 90.OfType<IMethodSymbol>() 463from method in baseType.GetMembers(EqualsName).OfType<IMethodSymbol>() 500var constructor = CodeGenerationSymbolFactory.CreateConstructorSymbol(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateGetHashCodeMethod.cs (3)
98var baseHashCode = GetBaseGetHashCodeMethod(containingType); 192public static IMethodSymbol? GetBaseGetHashCodeMethod(INamedTypeSymbol containingType) 205from method in baseType.GetMembers(GetHashCodeName).OfType<IMethodSymbol>()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions.cs (1)
95this SyntaxGenerator generator, IMethodSymbol method, ISymbol throughMember)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\InitializeParameter\InitializeParameterHelpersCore.cs (1)
20if (parameter.ContainingSymbol is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SemanticsFactsService\AbstractSemanticFactsService.cs (13)
106protected static IMethodSymbol? FindDisposeMethod(Compilation compilation, ITypeSymbol? type, bool isAsync) 118if (impl is IMethodSymbol implMethod) 136.FirstOrDefault(m => m is IMethodSymbol { DeclaredAccessibility: Accessibility.Public, ReturnType: var returnType, Parameters.Length: 0 } && 137SymbolEqualityComparer.Default.Equals(returnType, valueTaskType)) is IMethodSymbol disposeMethodFromPattern) 152.FirstOrDefault(m => m is IMethodSymbol { DeclaredAccessibility: Accessibility.Public, ReturnsVoid: true, Parameters.Length: 0 }) is IMethodSymbol disposeMethodFromPattern) 165(INamedTypeSymbol?, IMethodSymbol?) GetIDisposableInterfaceAndDisposeMethod(string typeName, string methodName) 168return (disposableType, disposableType?.GetMembers().OfType<IMethodSymbol>().FirstOrDefault(m => m.Parameters.Length == 0 && m.Name == methodName)); 216public IMethodSymbol? GetGetAwaiterMethod(SemanticModel semanticModel, SyntaxNode node) 219public ImmutableArray<IMethodSymbol> GetDeconstructionAssignmentMethods(SemanticModel semanticModel, SyntaxNode node) 222public ImmutableArray<IMethodSymbol> GetDeconstructionForEachMethods(SemanticModel semanticModel, SyntaxNode node) 249public ImmutableArray<IMethodSymbol> GetLocalFunctionSymbols(Compilation compilation, ISymbol symbol, CancellationToken cancellationToken) 261public bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SemanticsFactsService\ISemanticFactsService.cs (1)
47IMethodSymbol? TryGetDisposeMethod(SemanticModel semanticModel, SyntaxNode node, CancellationToken cancellationToken);
Microsoft.CodeAnalysis.AnalyzerUtilities (439)
src\1e7e9f16bf7f1945\ValueContentAnalysis.ValueContentDataFlowOperationVisitor.cs (1)
271IMethodSymbol method,
src\2e2796bccd1466f6\TaintedDataAnalysis.TaintedDataOperationVisitor.cs (6)
262IMethodSymbol method, 423public override TaintedDataAbstractValue VisitInvocation_LocalFunction(IMethodSymbol localFunction, ImmutableArray<IArgumentOperation> visitedArguments, IOperation originalOperation, TaintedDataAbstractValue defaultValue) 559IMethodSymbol targetMethod, 630IMethodSymbol method, 664private bool IsSanitizingInstanceMethod(IMethodSymbol method) 683private static bool IsMethodArgumentASink(IMethodSymbol method, IEnumerable<SinkInfo> infosForType, IArgumentOperation taintedArgument, [NotNullWhen(returnValue: true)] out HashSet<SinkKind>? sinkKinds)
src\66dd3055a1c91c38\PointsToAnalysis.PointsToDataFlowOperationVisitor.cs (5)
609IMethodSymbol invokedMethod, 941IMethodSymbol method, 971private static bool IsSpecialMethodReturningNonNullValue(IMethodSymbol method, WellKnownTypeProvider wellKnownTypeProvider) 980private static bool IsSpecialFactoryMethodReturningNonNullValue(IMethodSymbol method, WellKnownTypeProvider wellKnownTypeProvider) 1027IMethodSymbol localFunction,
src\683181b2796de991\ParameterValidationAnalysis.ParameterValidationDataFlowOperationVisitor.cs (4)
251IMethodSymbol method, 275IMethodSymbol localFunction, 285private void ProcessRegularInvocationOrCreation(IMethodSymbol? targetMethod, ImmutableArray<IArgumentOperation> arguments, IOperation operation) 356private void ProcessLambdaOrLocalFunctionInvocation(IMethodSymbol targetMethod, IOperation invocation)
src\683181b2796de991\ParameterValidationAnalysisContext.cs (2)
69IMethodSymbol invokedMethod, 100public bool IsNullCheckValidationMethod(IMethodSymbol method)
src\97c55a67c449f67c\GlobalFlowStateDataFlowOperationVisitor.cs (1)
146IMethodSymbol invokedMethod,
src\97c55a67c449f67c\GlobalFlowStateValueSetFlowOperationVisitor.cs (1)
109IMethodSymbol method,
src\a03b2aad21e28a8a\PropertySetAnalysis.PropertySetDataFlowOperationVisitor.cs (14)
38private readonly ImmutableDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult>.Builder _hazardousUsageBuilder; 40private readonly ImmutableHashSet<IMethodSymbol>.Builder _visitedLocalFunctions; 62this._hazardousUsageBuilder = ImmutableDictionary.CreateBuilder<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult>(); 64this._visitedLocalFunctions = ImmutableHashSet.CreateBuilder<IMethodSymbol>(); 86public ImmutableDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult> HazardousUsages => this._hazardousUsageBuilder.ToImmutable(); 88public ImmutableHashSet<IMethodSymbol> VisitedLocalFunctions => this._visitedLocalFunctions.ToImmutable(); 456public override PropertySetAbstractValue VisitInvocation_NonLambdaOrDelegateOrLocalFunction(IMethodSymbol method, IOperation? visitedInstance, ImmutableArray<IArgumentOperation> visitedArguments, bool invokedAsDelegate, IOperation originalOperation, PropertySetAbstractValue defaultValue) 513IMethodSymbol method, 596IMethodSymbol? methodSymbol, 618IMethodSymbol? methodSymbol, 623(Location, IMethodSymbol?) key = (operationSyntax.GetLocation(), methodSymbol); 635public override PropertySetAbstractValue VisitInvocation_LocalFunction(IMethodSymbol localFunction, ImmutableArray<IArgumentOperation> visitedArguments, IOperation originalOperation, PropertySetAbstractValue defaultValue) 675foreach (KeyValuePair<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult> kvp in subResult.HazardousUsages) 687foreach (IMethodSymbol localFunctionSymbol in subResult.VisitedLocalFunctions)
src\a172c07bebba4cd8\DisposeAnalysis.DisposeDataFlowOperationVisitor.cs (2)
252private static bool IsDisposableCreationSpecialCase(IMethodSymbol targetMethod) 258IMethodSymbol method,
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.cs (2)
30IMethodSymbol lambdaOrLocalFunction, 52IMethodSymbol localFunctionOrLambda,
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (12)
36private readonly Func<IMethodSymbol, ControlFlowGraph, AnalysisData, CancellationToken, BasicBlockAnalysisData> _analyzeLocalFunctionOrLambdaInvocation; 55private readonly PooledDictionary<IMethodSymbol, ControlFlowGraph> _localFunctionTargetsToAccessingCfgMap; 79PooledHashSet<IMethodSymbol> lambdaOrLocalFunctionsBeingAnalyzed, 80Func<IMethodSymbol, ControlFlowGraph, AnalysisData, CancellationToken, BasicBlockAnalysisData> analyzeLocalFunctionOrLambdaInvocation, 82PooledDictionary<IMethodSymbol, ControlFlowGraph> localFunctionTargetsToAccessingCfgMap, 112protected override PooledHashSet<IMethodSymbol> LambdaOrLocalFunctionsBeingAnalyzed { get; } 119Func<IMethodSymbol, ControlFlowGraph, AnalysisData, CancellationToken, BasicBlockAnalysisData> analyzeLocalFunctionOrLambdaInvocation) 133lambdaOrLocalFunctionsBeingAnalyzed: PooledHashSet<IMethodSymbol>.GetInstance(), 136localFunctionTargetsToAccessingCfgMap: PooledDictionary<IMethodSymbol, ControlFlowGraph>.GetInstance(), 157IMethodSymbol lambdaOrLocalFunction, 336ControlFlowGraph TryGetLocalFunctionControlFlowGraphInScope(IMethodSymbol localFunction) 501protected override BasicBlockAnalysisData AnalyzeLocalFunctionInvocationCore(IMethodSymbol localFunction, CancellationToken cancellationToken)
src\b310f676f7308b7f\SymbolUsageAnalysis.OperationTreeAnalysisData.cs (7)
18private readonly Func<IMethodSymbol, BasicBlockAnalysisData> _analyzeLocalFunction; 23PooledHashSet<IMethodSymbol> lambdaOrLocalFunctionsBeingAnalyzed, 24Func<IMethodSymbol, BasicBlockAnalysisData> analyzeLocalFunction) 36protected override PooledHashSet<IMethodSymbol> LambdaOrLocalFunctionsBeingAnalyzed { get; } 40Func<IMethodSymbol, BasicBlockAnalysisData> analyzeLocalFunction) 45lambdaOrLocalFunctionsBeingAnalyzed: PooledHashSet<IMethodSymbol>.GetInstance(), 49protected override BasicBlockAnalysisData AnalyzeLocalFunctionInvocationCore(IMethodSymbol localFunction, CancellationToken cancellationToken)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.cs (2)
273SymbolKind.Method => MethodMetricData.Compute((IMethodSymbol)symbol, context), 311SymbolKind.Method => MethodMetricData.Compute((IMethodSymbol)symbol, context),
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.EventMetricData.cs (1)
55private static IEnumerable<IMethodSymbol> GetAccessors(IEventSymbol @event)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.MethodMetricData.cs (2)
15IMethodSymbol symbol, 27internal static MethodMetricData Compute(IMethodSymbol method, CodeMetricsAnalysisContext context)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.NamedTypeMetricData.cs (1)
59members = members.Where(m => m.Kind != SymbolKind.Method || ((IMethodSymbol)m).AssociatedSymbol == null);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.PropertyMetricData.cs (1)
56private static IEnumerable<IMethodSymbol> GetAccessors(IPropertySymbol property)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
221if (symbol is IMethodSymbol methodSymbol) 413SymbolKind.Method => ((IMethodSymbol)member).Parameters,
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\DoNotCatchGeneralUnlessRethrown.cs (4)
34protected abstract Diagnostic CreateDiagnostic(IMethodSymbol containingMethod, SyntaxToken catchKeyword); 35protected virtual bool IsConfiguredDisallowedExceptionType(INamedTypeSymbol namedTypeSymbol, IMethodSymbol containingMethod, Compilation compilation, AnalyzerOptions analyzerOptions, CancellationToken cancellationToken) 62var method = (IMethodSymbol)operationBlockAnalysisContext.OwningSymbol;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (48)
26public static bool IsObjectEqualsOverride(this IMethodSymbol method) 40public static bool IsObjectEquals(this IMethodSymbol method) 54public static bool IsStaticObjectEqualsOrReferenceEquals(this IMethodSymbol method) 69private static bool IsObjectMethodOverride(IMethodSymbol method) 71IMethodSymbol overriddenMethod = method.OverriddenMethod; 89public static bool IsImplementationOfInterfaceMethod(this IMethodSymbol method, ITypeSymbol? typeArgument, [NotNullWhen(returnValue: true)] INamedTypeSymbol? interfaceType, string interfaceMethodName) 93return constructedInterface?.GetMembers(interfaceMethodName).FirstOrDefault() is IMethodSymbol interfaceMethod && 100public static bool IsDisposeImplementation(this IMethodSymbol method, Compilation compilation) 109public static bool IsAsyncDisposeImplementation(this IMethodSymbol method, Compilation compilation) 119public static bool IsDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iDisposable) 141public static bool IsAsyncDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iAsyncDisposable, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTaskType) 163private static bool HasDisposeMethodSignature(this IMethodSymbol method) 171public static bool HasDisposeSignatureByConvention(this IMethodSymbol method) 181public static bool HasDisposeBoolMethodSignature(this IMethodSymbol method) 192private static bool HasDisposeCloseMethodSignature(this IMethodSymbol method) 200private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 207private static bool HasDisposeAsyncMethodSignature(this IMethodSymbol method, 223private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 236private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 248public static DisposeMethodKind GetDisposeMethodKind(this IMethodSymbol method, Compilation compilation) 263this IMethodSymbol method, 311public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 317public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 324public static bool HasOptionalParameters(this IMethodSymbol methodSymbol) 329public static IEnumerable<IMethodSymbol> GetOverloads(this IMethodSymbol? method) 331var methods = method?.ContainingType?.GetMembers(method.Name).OfType<IMethodSymbol>(); 334foreach (var member in methods) 364public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 385public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 394public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 406public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 420private static readonly BoundedCache<Compilation, ConcurrentDictionary<IMethodSymbol, IBlockOperation?>> s_methodToTopmostOperationBlockCache 426public static IBlockOperation? GetTopmostOperationBlock(this IMethodSymbol method, Compilation compilation, CancellationToken cancellationToken = default) 432IBlockOperation? ComputeTopmostOperationBlock(IMethodSymbol unused) 465public static bool IsLambdaOrLocalFunctionOrDelegate(this IMethodSymbol method) 474public static bool IsLambdaOrLocalFunction(this IMethodSymbol method) 483public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 493public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 505public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 519public static bool HasParameterWithDelegateType(this IMethodSymbol methodSymbol) 527public static bool IsArgumentNullCheckMethod(this IMethodSymbol method) 536public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 547public static ImmutableArray<IMethodSymbol> GetOriginalDefinitions(this IMethodSymbol methodSymbol) 549ImmutableArray<IMethodSymbol>.Builder originalDefinitionsBuilder = ImmutableArray.CreateBuilder<IMethodSymbol>(); 566.OfType<IMethodSymbol>()
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (1)
69return symbol.GetMembers(WellKnownMemberNames.ObjectEquals).OfType<IMethodSymbol>().Any(m => m.IsObjectEqualsOverride());
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (2)
331this IOperation operation, IMethodSymbol lambdaOrLocalFunction, out PooledHashSet<ISymbol> builder) 339using var _ = PooledHashSet<IMethodSymbol>.GetInstance(out var nestedLambdasAndLocalFunctions);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ISymbolExtensions.cs (10)
72public static bool ParametersAreSame(this IMethodSymbol method1, IMethodSymbol method2) 93public static bool ParameterTypesAreSame(this IMethodSymbol method1, IMethodSymbol method2, IEnumerable<int> parameterIndices, CancellationToken cancellationToken) 128public static bool ReturnTypeAndParametersAreSame(this IMethodSymbol method, IMethodSymbol otherMethod) 198if (symbol is IMethodSymbol methodSymbol && !methodSymbol.ExplicitInterfaceImplementations.IsEmpty) 331public static bool HasDerivedMethodAttribute(this IMethodSymbol symbol, [NotNullWhen(returnValue: true)] INamedTypeSymbol? attribute) 357=> (symbol as IMethodSymbol)?.IsLambdaOrLocalFunction() == true; 376IMethodSymbol method => method.IsReadOnly,
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (1)
132return type.GetMembers("Dispose").OfType<IMethodSymbol>()
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Options\SymbolModifiers.cs (1)
81if (symbol is IMethodSymbol method &&
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\CopyAnalysis\CopyAnalysis.CopyDataFlowOperationVisitor.cs (1)
573IMethodSymbol invokedMethod,
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\CopyAnalysis\CopyAnalysisContext.cs (1)
61IMethodSymbol invokedMethod,
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysisContext.cs (1)
92IMethodSymbol invokedMethod,
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysisHelper.cs (5)
124IMethodSymbol containingMethod, 154private bool HasDisposableOwnershipTransferForConstructorParameter(IMethodSymbol containingMethod) => 163public bool HasAnyDisposableCreationDescendant(ImmutableArray<IOperation> operationBlocks, IMethodSymbol containingMethod) 208public bool IsDisposableCreationOrDisposeOwnershipTransfer(AbstractLocation location, IMethodSymbol containingMethod) 222public DisposeMethodKind GetDisposeMethodKind(IMethodSymbol method)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\GlobalFlowStateAnalysis\GlobalFlowStateAnalysisContext.cs (1)
75IMethodSymbol invokedMethod,
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PointsToAnalysis\PointsToAnalysisContext.cs (1)
69IMethodSymbol invokedMethod,
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\ConstructorMapper.cs (2)
29IMethodSymbol constructorMethodSymbol, 40IMethodSymbol constructorMethodSymbol,
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\HazardousUsageEvaluator.cs (1)
23public delegate HazardousUsageEvaluationResult InvocationEvaluationCallback(IMethodSymbol methodSymbol, PropertySetAbstractValue propertySetAbstractValue);
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAnalysis.cs (8)
150/// <returns>Dictionary of <see cref="Location"/> and <see cref="IMethodSymbol"/> pairs mapping to the kind of hazardous usage (Flagged or MaybeFlagged). The method in the key is null for return/initialization statements.</returns> 152public static PooledDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult>? BatchGetOrComputeHazardousUsages( 186/// <returns>Dictionary of <see cref="Location"/> and <see cref="IMethodSymbol"/> pairs mapping to the kind of hazardous usage (Flagged or MaybeFlagged). The method in the key is null for return/initialization statements.</returns> 188public static PooledDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult>? BatchGetOrComputeHazardousUsages( 199PooledDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult>? allResults = null; 219foreach (IMethodSymbol localFunctionSymbol in enclosingControlFlowGraph.LocalFunctions) 264allResults ??= PooledDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult>.GetInstance(); 266foreach (KeyValuePair<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult> kvp
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAnalysisContext.cs (1)
108IMethodSymbol invokedMethod,
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAnalysisResult.cs (4)
19ImmutableDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult> hazardousUsages, 20ImmutableHashSet<IMethodSymbol> visitedLocalFunctions, 30public ImmutableDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult> HazardousUsages { get; } 32public ImmutableHashSet<IMethodSymbol> VisitedLocalFunctions { get; }
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetCallbacks.cs (2)
151IMethodSymbol methodSymbol, 168IMethodSymbol methodSymbol,
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataAnalysisContext.cs (1)
103IMethodSymbol invokedMethod,
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataSymbolMapExtensions.cs (2)
36IMethodSymbol method, 184IMethodSymbol method,
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\WebInputSources.cs (1)
86if (parameter.ContainingSymbol is not IMethodSymbol methodSymbol
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\ValueContentAnalysis\ValueContentAnalysisContext.cs (1)
75IMethodSymbol invokedMethod,
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\AbstractDataFlowAnalysisContext.cs (2)
97IMethodSymbol invokedMethod, 104public ControlFlowGraph? GetLocalFunctionControlFlowGraph(IMethodSymbol localFunction)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\AnalysisEntityDataFlowOperationVisitor.cs (1)
465IMethodSymbol invokedMethod,
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowAnalysisResult.cs (3)
29private readonly ImmutableDictionary<IMethodSymbol, IDataFlowAnalysisResult<TAbstractAnalysisValue>> _standaloneLocalFunctionAnalysisResultsMap; 39ImmutableDictionary<IMethodSymbol, IDataFlowAnalysisResult<TAbstractAnalysisValue>> standaloneLocalFunctionAnalysisResultsMap, 157internal DataFlowAnalysisResult<TBlockAnalysisResult, TAbstractAnalysisValue>? TryGetStandaloneLocalFunctionAnalysisResult(IMethodSymbol localFunction)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowAnalysisResultBuilder.cs (1)
50ImmutableDictionary<IMethodSymbol, IDataFlowAnalysisResult<TAbstractAnalysisValue>> standaloneLocalFunctionAnalysisResultsMap,
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (48)
55private ImmutableHashSet<IMethodSymbol>? _lazyContractCheckMethods; 65private readonly ImmutableHashSet<IMethodSymbol>.Builder _escapedLocalFunctions; 70private readonly ImmutableHashSet<IMethodSymbol>.Builder _analyzedLocalFunctions; 123private readonly ImmutableDictionary<IMethodSymbol, IDataFlowAnalysisResult<TAbstractAnalysisValue>>.Builder _standaloneLocalFunctionAnalysisResultsBuilder; 128private readonly Dictionary<IMethodSymbol, ControlFlowGraph?>? _interproceduralMethodToCfgMap; 153public ImmutableDictionary<IMethodSymbol, IDataFlowAnalysisResult<TAbstractAnalysisValue>> StandaloneLocalFunctionAnalysisResultsMap => _standaloneLocalFunctionAnalysisResultsBuilder.ToImmutable(); 272.OfType<IMethodSymbol>().FirstOrDefault(HasDebugAssertSignature); 281_returnValueOperations = OwningSymbol is IMethodSymbol method && !method.ReturnsVoid ? new HashSet<IOperation>() : null; 283_standaloneLocalFunctionAnalysisResultsBuilder = ImmutableDictionary.CreateBuilder<IMethodSymbol, IDataFlowAnalysisResult<TAbstractAnalysisValue>>(); 284_escapedLocalFunctions = ImmutableHashSet.CreateBuilder<IMethodSymbol>(); 285_analyzedLocalFunctions = ImmutableHashSet.CreateBuilder<IMethodSymbol>(); 345static bool HasDebugAssertSignature(IMethodSymbol method) 365if (OwningSymbol is IMethodSymbol method && 554OwningSymbol is IMethodSymbol method && 614foreach (var localFunction in DataFlowAnalysisContext.ControlFlowGraph.LocalFunctions) 632private bool IsStandaloneAnalysisRequiredForLocalFunction(IMethodSymbol localFunction) 837if (OwningSymbol is IMethodSymbol method && 982private bool IsContractCheckMethod(IMethodSymbol method) 993var validationMethods = requiresMethods.Concat(assumeMethods).Concat(assertMethods).OfType<IMethodSymbol>().Where(m => m.IsStatic && m.ReturnsVoid && !m.Parameters.IsEmpty && (m.Parameters[0].Type.SpecialType == SpecialType.System_Boolean)); 1008private bool IsAnyDebugAssertMethod(IMethodSymbol method) => 1014protected bool IsAnyAssertMethod(IMethodSymbol method) 1766bool IsOverrideOrImplementationOfEquatableEquals(IMethodSymbol methodSymbol) 1777var equalsMember = interfaceType.GetMembers("Equals").OfType<IMethodSymbol>().FirstOrDefault(); 2127IMethodSymbol invokedMethod, 2203IMethodSymbol invokedMethod, 2241int currentMethodCallCount = currentMethodsBeingAnalyzed.Count(m => !(m.OwningSymbol is IMethodSymbol ms && ms.IsLambdaOrLocalFunctionOrDelegate())); 2552if (argumentOperation.Parameter!.ContainingSymbol is IMethodSymbol method && 2596IMethodSymbol invokedMethod, 2633private void PerformStandaloneLocalFunctionInterproceduralAnalysis(IMethodSymbol localFunction) 2734IMethodSymbol invokedMethod) 3162var method = operation.Constructor!; 3181foreach ((IMethodSymbol method, _) in resolvedMethodTargetsOpt) 3227void PostVisitInvocation(IMethodSymbol targetMethod, ImmutableArray<IArgumentOperation> arguments) 3252void ProcessInterlockedOperation(IMethodSymbol targetMethod, ImmutableArray<IArgumentOperation> arguments, INamedTypeSymbol interlockedType) 3287using var _1 = PooledHashSet<(IMethodSymbol method, IOperation? instance)>.GetInstance(out var methodTargetsOptBuilder); 3312PooledHashSet<(IMethodSymbol method, IOperation? instance)> methodTargetsOptBuilder, 3318PooledHashSet<(IMethodSymbol method, IOperation? instance)> methodTargetsOptBuilder, 3325PooledHashSet<(IMethodSymbol method, IOperation? instance)> methodTargetsOptBuilder, 3336var targetMethod = invocation.TargetMethod; 3379void AddMethodTarget(IMethodSymbol method, IOperation? instance) 3438out ImmutableHashSet<(IMethodSymbol method, IOperation? instance)>? resolvedMethodTargets) 3442using var _1 = PooledHashSet<(IMethodSymbol method, IOperation? instance)>.GetInstance(out var methodTargetsOptBuilder); 3534IMethodSymbol method, 3547private ControlFlowGraph? GetInterproceduralControlFlowGraph(IMethodSymbol method) 3577IMethodSymbol localFunction, 4196private IMethodSymbol? DebugAssertMethod { get; } 4225private protected DisposeMethodKind GetDisposeMethodKind(IMethodSymbol method)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\IDataFlowAnalysisContext.cs (1)
15ControlFlowGraph? GetLocalFunctionControlFlowGraph(IMethodSymbol localFunction);
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\InterproceduralAnalysisData.cs (2)
39Func<IMethodSymbol, ControlFlowGraph?> getInterproceduralControlFlowGraph, 66public Func<IMethodSymbol, ControlFlowGraph?> GetInterproceduralControlFlowGraph { get; }
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\InterproceduralAnalysisPredicate.cs (5)
14private readonly Func<IMethodSymbol, bool>? _skipAnalysisForInvokedMethodPredicate; 15private readonly Func<IMethodSymbol, bool>? _skipAnalysisForInvokedLambdaOrLocalFunctionPredicate; 19Func<IMethodSymbol, bool>? skipAnalysisForInvokedMethodPredicate, 20Func<IMethodSymbol, bool>? skipAnalysisForInvokedLambdaOrLocalFunctionPredicate, 35public bool SkipInterproceduralAnalysis(IMethodSymbol invokedMethod, bool isLambdaOrLocalFunction)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\LambdaAndLocalFunctionAnalysisInfo.cs (4)
18public ImmutableHashSet<IMethodSymbol> EscapedLocalFunctions { get; } 23public ImmutableHashSet<IMethodSymbol> AnalyzedLocalFunctions { get; } 36ImmutableHashSet<IMethodSymbol>.Builder escapedLocalFunctions, 37ImmutableHashSet<IMethodSymbol>.Builder analyzedLocalFunctions,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\CollectionExpressionUtilities.cs (9)
98var capacityConstructor = GetAccessibleInstanceConstructor(constructors, c => c.Parameters is [{ Name: "capacity", Type.SpecialType: SpecialType.System_Int32 }]); 102var noArgConstructor = 122IMethodSymbol? GetAccessibleInstanceConstructor(ImmutableArray<IMethodSymbol> constructors, Func<IMethodSymbol, bool> predicate) 124var constructor = constructors.FirstOrDefault(c => !c.IsStatic && predicate(c)); 136/// <item>their <see cref="IMethodSymbol.Arity"/> must match that of <paramref 145public static ImmutableArray<IMethodSymbol>? TryGetCollectionBuilderFactoryMethods( 164.OfType<IMethodSymbol>()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (3)
235var containingMethod = TryGetContainingAnonymousFunctionOrLocalFunction(operation) ?? (containingSymbol as IMethodSymbol); 239public static IMethodSymbol? TryGetContainingAnonymousFunctionOrLocalFunction(this IOperation? operation)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.AnalysisData.cs (3)
72protected abstract PooledHashSet<IMethodSymbol> LambdaOrLocalFunctionsBeingAnalyzed { get; } 91public BasicBlockAnalysisData AnalyzeLocalFunctionInvocation(IMethodSymbol localFunction, CancellationToken cancellationToken) 126protected abstract BasicBlockAnalysisData AnalyzeLocalFunctionInvocationCore(IMethodSymbol localFunction, CancellationToken cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.cs (1)
44BasicBlockAnalysisData AnalyzeLocalFunction(IMethodSymbol localFunction)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (1)
344private void AnalyzeLocalFunctionInvocation(IMethodSymbol localFunction)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (1)
44if (symbol is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (3)
167switch (((IMethodSymbol)currentSymbol).MethodKind) 363SymbolCategory.Method => symbol is IMethodSymbol method && method.MethodKind == (MethodKind)_kind, 507if (Modifiers.HasFlag(Modifiers.Async) && kind == SymbolKind.Method && ((IMethodSymbol)symbol).IsAsync)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ForEachSymbols.cs (6)
8IMethodSymbol? getEnumeratorMethod, 9IMethodSymbol? moveNextMethod, 11IMethodSymbol? disposeMethod, 14public readonly IMethodSymbol? GetEnumeratorMethod = getEnumeratorMethod; 15public readonly IMethodSymbol? MoveNextMethod = moveNextMethod; 17public readonly IMethodSymbol? DisposeMethod = disposeMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (5)
83IMethodSymbol? GetGetAwaiterMethod(SemanticModel semanticModel, SyntaxNode node); 85ImmutableArray<IMethodSymbol> GetDeconstructionAssignmentMethods(SemanticModel semanticModel, SyntaxNode node); 87ImmutableArray<IMethodSymbol> GetDeconstructionForEachMethods(SemanticModel semanticModel, SyntaxNode node); 106ImmutableArray<IMethodSymbol> GetLocalFunctionSymbols(Compilation compilation, ISymbol symbol, CancellationToken cancellationToken); 123bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFactsExtensions.cs (1)
112=> symbol is IMethodSymbol methodSymbol &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
63if (isAnonymousDelegateType && symbol is IMethodSymbol methodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.BuiltinOperatorSymbolKey.cs (6)
11private sealed class BuiltinOperatorSymbolKey : AbstractSymbolKey<IMethodSymbol> 15public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 23SymbolKeyReader reader, IMethodSymbol? contextualSymbol, out string? failureReason) 28using var parameterTypes = reader.ReadSymbolKeyArray<IMethodSymbol, ITypeSymbol>( 54var unaryOperator = reader.Compilation.CreateBuiltinOperator(name, returnTypeSymbol, parameterTypes[0]); 58var binaryOperator = reader.Compilation.CreateBuiltinOperator(name, returnTypeSymbol, parameterTypes[0], parameterTypes[1]);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (5)
33/// <item>Two <see cref="IMethodSymbol"/>s are the "same" if they have 36/// equal <see cref="IMethodSymbol.Arity"/>, 37/// the "same" <see cref="IMethodSymbol.TypeArguments"/>, and have 76/// cref="IRangeVariableSymbol"/> and <see cref="MethodKind.LocalFunction"/> <see cref="IMethodSymbol"/>s can also 323IMethodSymbol { MethodKind: MethodKind.LocalFunction } => true,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.MethodSymbolKey.cs (22)
11private sealed class ReducedExtensionMethodSymbolKey : AbstractSymbolKey<IMethodSymbol> 15public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 24SymbolKeyReader reader, IMethodSymbol? contextualMethod, out string? failureReason) 41using var result = PooledArrayBuilder<IMethodSymbol>.GetInstance(); 42foreach (var reducedFrom in reducedFromResolution.OfType<IMethodSymbol>()) 55private sealed class ConstructedMethodSymbolKey : AbstractSymbolKey<IMethodSymbol> 59public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 66SymbolKeyReader reader, IMethodSymbol? contextualMethod, out string? failureReason) 70using var typeArguments = reader.ReadSymbolKeyArray<IMethodSymbol, ITypeSymbol>( 101using var result = PooledArrayBuilder<IMethodSymbol>.GetInstance(); 102foreach (var method in constructedFrom.OfType<IMethodSymbol>()) 123private sealed class MethodSymbolKey : AbstractSymbolKey<IMethodSymbol> 127public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 160SymbolKeyReader reader, IMethodSymbol? contextualSymbol, out string? failureReason) 179using var methods = GetMembersOfNamedType<IMethodSymbol>(containingType, metadataName: null); 180IMethodSymbol? method = null; 181foreach (var candidate in methods) 223_ = reader.ReadSymbolKeyArray<IMethodSymbol, ITypeSymbol>( 243private static IMethodSymbol? Resolve( 244SymbolKeyReader reader, bool isPartialImplementationPart, IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (2)
45case IMethodSymbol method: 64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyReader.cs (5)
331private readonly List<IMethodSymbol?> _methodSymbolStack = []; 409public MethodPopper PushMethod(IMethodSymbol? method) 415private void PopMethod(IMethodSymbol? method) 422public IMethodSymbol? ResolveMethod(int index) 441public readonly ref struct MethodPopper(SymbolKeyReader reader, IMethodSymbol? method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyWriter.cs (5)
69private readonly List<IMethodSymbol> _methodSymbolStack = []; 362public override void VisitMethod(IMethodSymbol methodSymbol) 499var method = _methodSymbolStack[i]; 512public void PushMethod(IMethodSymbol method) 515public void PopMethod(IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.TypeParameterOrdinalSymbolKey.cs (1)
22var method = reader.ResolveMethod(methodIndex);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (14)
112SemanticModel model, TForEachStatementSyntax forEach, out IMethodSymbol getEnumeratorMethod, out ITypeSymbol elementType, out ImmutableArray<ILocalSymbol> localVariables); 379symbol = ((IMethodSymbol)symbol).GetConstructedReducedFrom()!; 384newSymbol = ((IMethodSymbol)newSymbol).GetConstructedReducedFrom()!; 404if (symbol is IMethodSymbol methodSymbol && newSymbol is IMethodSymbol newMethodSymbol) 478if (symbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction } methodSymbol && 479newSymbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction } newMethodSymbol) 757return symbol is IMethodSymbol { ContainingType.SpecialType: SpecialType.System_Object } 778GetForEachSymbols(this.OriginalSemanticModel, forEachStatement, out var originalGetEnumerator, out var originalElementType, out var originalLocalVariables); 779GetForEachSymbols(this.SpeculativeSemanticModel, newForEachStatement, out var newGetEnumerator, out var newElementType, out var newLocalVariables); 806private bool ReplacementBreaksForEachGetEnumerator(IMethodSymbol getEnumerator, IMethodSymbol newGetEnumerator, TExpressionSyntax newForEachStatementExpression) 875=> symbol is IMethodSymbol { MethodKind: MethodKind.DelegateInvoke }; 1048return receiverSymbol is IMethodSymbol or IPropertySymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\LightweightOverloadResolution.cs (12)
31public IMethodSymbol? RefineOverload(SymbolInfo symbolInfo, ImmutableArray<IMethodSymbol> candidates) 34public (IMethodSymbol? method, int parameterIndex) RefineOverloadAndPickParameter(SymbolInfo symbolInfo, ImmutableArray<IMethodSymbol> candidates) 38return symbolInfo.Symbol is IMethodSymbol method 43public int FindParameterIndexIfCompatibleMethod(IMethodSymbol method) 52private (IMethodSymbol? symbol, int parameterIndex) GuessCurrentSymbolAndParameter(ImmutableArray<IMethodSymbol> methodGroup) 56foreach (var method in methodGroup) 73private (IMethodSymbol? method, int parameterIndex) TryFindParameterIndexIfCompatibleMethod(IMethodSymbol method) 185private bool TryPrepareArgumentToParameterMap(IMethodSymbol method, ref TemporaryArray<int> argumentToParameterMap)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (2)
371public static IMethodSymbol? GetTopLevelStatementsMethod(this Compilation compilation) 377if (candidateMember is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (11)
19internal static IMethodSymbol? TryGetCorrespondingExtensionBlockMethod(this IMethodSymbol methodSymbol) 33if (member is IMethodSymbol method && 49public static ImmutableArray<IMethodSymbol> GetAllMethodSymbolsOfPartialParts(this IMethodSymbol method) 72public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 77public static bool TryGetPredefinedComparisonOperator(this IMethodSymbol symbol, out PredefinedOperator op) 101public static PredefinedOperator GetPredefinedOperator(this IMethodSymbol symbol) 131public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 142public static bool IsAsyncReturningVoidTask(this IMethodSymbol method, Compilation compilation) 160public static bool IsPrimaryConstructor(this IMethodSymbol constructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (9)
136static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 184IMethodSymbol method => method.ExplicitInterfaceImplementations.Length > 0, 235static bool IsNonPublicImplementableAccessor(IMethodSymbol? accessor) 242if (member is IMethodSymbol { IsStatic: true, IsAbstract: true, MethodKind: MethodKind.UserDefinedOperator } method) 335private static bool IsInaccessibleImplementableAccessor(IMethodSymbol? accessor, ISymbol within) 439case IMethodSymbol method: 651IMethodSymbol { MethodKind: MethodKind.Ordinary, CanBeReferencedByName: true } => true, 652IMethodSymbol { MethodKind: MethodKind.UserDefinedOperator } => true, 671return member is IMethodSymbol
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IParameterSymbolExtensions.cs (2)
31ContainingSymbol: IMethodSymbol 63ContainingSymbol: IMethodSymbol
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions_Accessibility.cs (2)
107var funcPtrSignature = ((IFunctionPointerTypeSymbol)symbol).Signature; 156if (symbol is IMethodSymbol { MethodKind: MethodKind.BuiltinOperator })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (43)
87IMethodSymbol method => method.OverriddenMethod, 110IMethodSymbol? bestMethod = null; 128else if (member is IMethodSymbol method) 145IMethodSymbol method => ImmutableArray<ISymbol>.CastUp(method.ExplicitInterfaceImplementations), 199if (symbol is IMethodSymbol 241=> symbol is IMethodSymbol { MethodKind: MethodKind.AnonymousFunction }; 268=> symbol is IMethodSymbol { MethodKind: MethodKind.ReducedExtension }; 273/// <inheritdoc cref="IMethodSymbol.IsExtensionMethod"/> 275=> symbol is IMethodSymbol { IsExtensionMethod: true }; 278=> symbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction }; 287=> symbol is IMethodSymbol { MethodKind: MethodKind.Constructor }; 290=> symbol is IMethodSymbol { MethodKind: MethodKind.StaticConstructor }; 293=> symbol is IMethodSymbol { MethodKind: MethodKind.Destructor }; 296=> symbol is IMethodSymbol { MethodKind: MethodKind.UserDefinedOperator }; 299=> symbol is IMethodSymbol { MethodKind: MethodKind.Conversion }; 302=> symbol is IMethodSymbol { MethodKind: MethodKind.Ordinary }; 305=> symbol is IMethodSymbol { MethodKind: MethodKind.Ordinary or MethodKind.LocalFunction }; 344IMethodSymbol methodSymbol => methodSymbol.ReturnType, 355SymbolKind.Method => ((IMethodSymbol)symbol).Arity, 370symbol = ((IMethodSymbol)symbol).GetConstructedReducedFrom(); 375if (symbol.ContainingSymbol is IMethodSymbol method) 393var method = parameter.ContainingSymbol as IMethodSymbol; 426IMethodSymbol m => m.Parameters, 434IMethodSymbol m => m.TypeParameters, 455IMethodSymbol m => m.TypeArguments, 500if (symbol is IMethodSymbol method && method.Parameters.All(p => p.RefKind == RefKind.None)) 656=> (symbol as IMethodSymbol)?.MethodKind.IsPropertyAccessor() == true; 659=> symbol is IMethodSymbol { MethodKind: MethodKind.EventAdd or MethodKind.EventRaise or MethodKind.EventRemove }; 685var methodSymbol = symbol as IMethodSymbol; 709var getAwaiters = potentialGetAwaiters.OfType<IMethodSymbol>().Where(x => !x.Parameters.Any()); 713public static bool IsValidGetAwaiter(this IMethodSymbol symbol) 717private static bool VerifyGetAwaiter(IMethodSymbol getAwaiter) 731var methods = returnType.GetMembers().OfType<IMethodSymbol>(); 747public static bool IsValidGetEnumerator(this IMethodSymbol symbol) 751private static bool VerifyGetEnumerator(IMethodSymbol getEnumerator) 771if (!members.OfType<IMethodSymbol>().Any(x => 787public static bool IsValidGetAsyncEnumerator(this IMethodSymbol symbol) 791private static bool VerifyGetAsyncEnumerator(IMethodSymbol getAsyncEnumerator) 814if (!members.OfType<IMethodSymbol>().Any(x => x.Name == WellKnownMemberNames.MoveNextAsyncMethodName)) 896[NotNullWhen(true)] out IMethodSymbol? classicExtensionMethod) 898if (symbol is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
108public override bool VisitMethod(IMethodSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.cs (2)
412.SelectAccessibleMembers<IMethodSymbol>(WellKnownMemberNames.CollectionInitializerAddMethodName, within ?? typeSymbol) 413.OfType<IMethodSymbol>()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SignatureComparer.cs (12)
43SymbolKind.Method => HaveSameSignature((IMethodSymbol)symbol1, (IMethodSymbol)symbol2, caseSensitive), 67public static bool BadPropertyAccessor(IMethodSymbol? method1, IMethodSymbol? method2) 73public bool HaveSameSignature(IMethodSymbol method1, 74IMethodSymbol method2, 162var method1 = (IMethodSymbol)symbol1; 163var method2 = (IMethodSymbol)symbol2; 208private bool HaveSameSignatureAndConstraintsAndReturnType(IMethodSymbol method1, IMethodSymbol method2)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (6)
149public bool ReturnTypeEquals(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 194private static bool IsConstructedFromSelf(IMethodSymbol symbol) 200private static bool CheckContainingType(IMethodSymbol x) 231private static bool IsPartialMethodDefinitionPart(IMethodSymbol symbol) 234private static bool IsPartialMethodImplementationPart(IMethodSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (8)
124SymbolKind.Method => MethodsAreEquivalent((IMethodSymbol)x, (IMethodSymbol)y, equivalentTypesWithDifferingAssemblies), 170private bool MethodsAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, bool considerReturnRefKinds = false) 186var rx = x.ReducedFrom; 187var ry = y.ReducedFrom; 486internal bool ReturnTypesAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (2)
68SymbolKind.Method => CombineHashCodes((IMethodSymbol)x, currentHash), 112private int CombineHashCodes(IMethodSymbol x, int currentHash)
Microsoft.CodeAnalysis.CodeStyle (317)
src\9547feb31df4cc5d\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (2)
447if (owningSymbol is IMethodSymbol method && 734if (context.OwningSymbol is not IMethodSymbol method)
src\9547feb31df4cc5d\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.cs (3)
36private readonly ConcurrentDictionary<IMethodSymbol, bool> _methodsUsedAsDelegates = []; 206parameter.ContainingSymbol is not IMethodSymbol method || 291IMethodSymbol method,
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.cs (2)
30IMethodSymbol lambdaOrLocalFunction, 52IMethodSymbol localFunctionOrLambda,
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (12)
36private readonly Func<IMethodSymbol, ControlFlowGraph, AnalysisData, CancellationToken, BasicBlockAnalysisData> _analyzeLocalFunctionOrLambdaInvocation; 55private readonly PooledDictionary<IMethodSymbol, ControlFlowGraph> _localFunctionTargetsToAccessingCfgMap; 79PooledHashSet<IMethodSymbol> lambdaOrLocalFunctionsBeingAnalyzed, 80Func<IMethodSymbol, ControlFlowGraph, AnalysisData, CancellationToken, BasicBlockAnalysisData> analyzeLocalFunctionOrLambdaInvocation, 82PooledDictionary<IMethodSymbol, ControlFlowGraph> localFunctionTargetsToAccessingCfgMap, 112protected override PooledHashSet<IMethodSymbol> LambdaOrLocalFunctionsBeingAnalyzed { get; } 119Func<IMethodSymbol, ControlFlowGraph, AnalysisData, CancellationToken, BasicBlockAnalysisData> analyzeLocalFunctionOrLambdaInvocation) 133lambdaOrLocalFunctionsBeingAnalyzed: PooledHashSet<IMethodSymbol>.GetInstance(), 136localFunctionTargetsToAccessingCfgMap: PooledDictionary<IMethodSymbol, ControlFlowGraph>.GetInstance(), 157IMethodSymbol lambdaOrLocalFunction, 336ControlFlowGraph TryGetLocalFunctionControlFlowGraphInScope(IMethodSymbol localFunction) 501protected override BasicBlockAnalysisData AnalyzeLocalFunctionInvocationCore(IMethodSymbol localFunction, CancellationToken cancellationToken)
src\b310f676f7308b7f\SymbolUsageAnalysis.OperationTreeAnalysisData.cs (7)
18private readonly Func<IMethodSymbol, BasicBlockAnalysisData> _analyzeLocalFunction; 23PooledHashSet<IMethodSymbol> lambdaOrLocalFunctionsBeingAnalyzed, 24Func<IMethodSymbol, BasicBlockAnalysisData> analyzeLocalFunction) 36protected override PooledHashSet<IMethodSymbol> LambdaOrLocalFunctionsBeingAnalyzed { get; } 40Func<IMethodSymbol, BasicBlockAnalysisData> analyzeLocalFunction) 45lambdaOrLocalFunctionsBeingAnalyzed: PooledHashSet<IMethodSymbol>.GetInstance(), 49protected override BasicBlockAnalysisData AnalyzeLocalFunctionInvocationCore(IMethodSymbol localFunction, CancellationToken cancellationToken)
src\roslyn\src\Analyzers\Core\Analyzers\Helpers\DeserializationConstructorCheck.cs (1)
15public bool IsDeserializationConstructor(IMethodSymbol methodSymbol)
src\roslyn\src\Analyzers\Core\Analyzers\Helpers\HashCodeAnalyzer\HashCodeAnalyzer.cs (8)
18IMethodSymbol objectGetHashCodeMethod, 22private readonly IMethodSymbol _objectGetHashCodeMethod = objectGetHashCodeMethod; 35if (objectType?.GetMembers(nameof(GetHashCode)).FirstOrDefault() is not IMethodSymbol objectGetHashCodeMethod) 56if (owningSymbol is not IMethodSymbol { Name: nameof(GetHashCode) } method) 82IMethodSymbol method, ImmutableArray<IOperation> statements) 105IMethodSymbol method, ImmutableArray<IOperation> statements) 191private bool OverridesSystemObject(IMethodSymbol? method) 193for (var current = method; current != null; current = current.OverriddenMethod)
src\roslyn\src\Analyzers\Core\Analyzers\Helpers\HashCodeAnalyzer\HashCodeAnalyzer.OperationDeconstructor.cs (3)
22HashCodeAnalyzer analyzer, IMethodSymbol method, ILocalSymbol? hashCodeVariable) : IDisposable 25private readonly IMethodSymbol _method = method; 62var targetMethod = invocation.TargetMethod;
src\roslyn\src\Analyzers\Core\Analyzers\NamingStyle\NamingStyleDiagnosticAnalyzerBase.cs (1)
121if (symbol is IMethodSymbol methodSymbol && methodSymbol.IsEntryPoint(compilation.TaskType(), compilation.TaskOfTType()))
src\roslyn\src\Analyzers\Core\Analyzers\QualifyMemberAccess\AbstractQualifyMemberAccessDiagnosticAnalyzer.cs (1)
146return symbol == null || symbol.IsStatic || symbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction };
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnnecessarySuppressions\AbstractRemoveUnnecessaryPragmaSuppressionsDiagnosticAnalyzer.cs (1)
772IMethodSymbol { IsPartialDefinition: true } or
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedMembers\AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (12)
365foreach (var method in methods) 547var targetMethod = ((IInvocationOperation)operationContext.Operation).TargetMethod; 560var extensionBlockMethod = targetMethod.TryGetCorrespondingExtensionBlockMethod(); 590var constructor = ((IObjectCreationOperation)operationContext.Operation).Constructor; 616var entryPoint = symbolEndContext.Compilation.GetEntryPoint(cancellationToken); 754case IMethodSymbol: 810if (symbol is IMethodSymbol methodSymbol) 812var extensionBlockMethod = methodSymbol.TryGetCorrespondingExtensionBlockMethod(); 948var methodSymbol = (IMethodSymbol)memberSymbol; 1067private bool IsMethodWithSpecialAttribute(IMethodSymbol methodSymbol) 1070private static bool IsShouldSerializeOrResetPropertyMethod(IMethodSymbol methodSymbol)
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedParametersAndValues\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.cs (1)
110protected abstract bool MethodHasHandlesClause(IMethodSymbol method);
src\roslyn\src\Analyzers\Core\Analyzers\SimplifyInterpolation\AbstractSimplifyInterpolationDiagnosticAnalyzer.cs (1)
50ImmutableDictionary<IMethodSymbol, string> knownToStringFormats,
src\roslyn\src\Analyzers\Core\Analyzers\SimplifyInterpolation\AbstractSimplifyInterpolationHelpers.cs (7)
31public ImmutableDictionary<IMethodSymbol, string> BuildKnownToStringFormatsLookupTable(Compilation compilation) 33using var _ = PooledDictionary<IMethodSymbol, string>.GetInstance(out var builder); 57var member = type?.GetMembers(name).FirstOrDefault(m => m is IMethodSymbol { IsStatic: false, Parameters.Length: 0 }); 58if (member is IMethodSymbol method) 67ImmutableDictionary<IMethodSymbol, string> knownToStringFormats, 122ImmutableDictionary<IMethodSymbol, string> knownToStringFormats, 195private static bool IsObjectToStringOverride(IMethodSymbol method)
src\roslyn\src\Analyzers\Core\Analyzers\SimplifyLinqExpression\AbstractSimplifyLinqExpressionDiagnosticAnalyzer.cs (12)
64TryGetLinqWhereExtensionMethod(enumerableType, out var whereMethodSymbol) && 65TryGetLinqSelectExtensionMethod(enumerableType, out var selectMethodSymbol) && 79static bool TryGetLinqWhereExtensionMethod(INamedTypeSymbol enumerableType, [NotNullWhen(true)] out IMethodSymbol? linqMethod) 82static bool TryGetLinqSelectExtensionMethod(INamedTypeSymbol enumerableType, [NotNullWhen(true)] out IMethodSymbol? linqMethod) 85static bool TryGetLinqExtensionMethod(INamedTypeSymbol enumerableType, string name, [NotNullWhen(true)] out IMethodSymbol? linqMethod) 87foreach (var linqMethodSymbol in enumerableType.GetMembers(name).OfType<IMethodSymbol>()) 102static bool TryGetLinqMethodsThatDoNotReturnEnumerables(INamedTypeSymbol enumerableType, out ImmutableArray<IMethodSymbol> linqMethods) 104using var _ = ArrayBuilder<IMethodSymbol>.GetInstance(out var linqMethodSymbolsBuilder); 106foreach (var method in enumerableType.GetMembers().OfType<IMethodSymbol>()) 177if (members.Any(m => m is IMethodSymbol))
src\roslyn\src\Analyzers\Core\Analyzers\UseAutoProperty\AbstractUseAutoPropertyAnalyzer.cs (5)
87protected abstract TExpression? GetGetterExpression(IMethodSymbol getMethod, CancellationToken cancellationToken); 88protected abstract TExpression? GetSetterExpression(SemanticModel semanticModel, IMethodSymbol setMethod, CancellationToken cancellationToken); 91SemanticModel semanticModel, IMethodSymbol accessor, HashSet<string> fieldNames, HashSet<IFieldSymbol> result, CancellationToken cancellationToken); 257IMethodSymbol getMethod, 275SemanticModel semanticModel, IMethodSymbol setMethod, HashSet<string> fieldNames, CancellationToken cancellationToken)
src\roslyn\src\Analyzers\Core\Analyzers\UseCollectionInitializer\AbstractUseCollectionInitializerAnalyzer.cs (3)
221protected ImmutableArray<IMethodSymbol> GetAddMethods(CancellationToken cancellationToken) 232return addMethods.SelectAsArray(s => s is IMethodSymbol { Parameters: [_, ..] }, s => (IMethodSymbol)s);
src\roslyn\src\Analyzers\Core\Analyzers\UseCollectionInitializer\UpdateExpressionState.cs (3)
197this.SemanticModel.GetSymbolInfo(invocationExpression, cancellationToken).Symbol is IMethodSymbol 256if (this.SemanticModel.GetSymbolInfo(memberAccess, cancellationToken).GetAnySymbol() is not IMethodSymbol method) 282useSpread = method.GetOriginalUnreducedDefinition() is not IMethodSymbol { IsExtensionMethod: true, Parameters: [_, { Type: ITypeParameterSymbol }] };
src\roslyn\src\Analyzers\Core\Analyzers\UseIsNullCheck\AbstractUseIsNullForReferenceEqualsDiagnosticAnalyzer.cs (3)
37var referenceEqualsMethod = objectType.GetMembers(nameof(ReferenceEquals)) 38.OfType<IMethodSymbol>() 56private void AnalyzeSyntax(SyntaxNodeAnalysisContext context, IMethodSymbol referenceEqualsMethod, bool unconstraintedGenericSupported)
src\roslyn\src\Analyzers\Core\Analyzers\UseNullPropagation\AbstractUseNullPropagationDiagnosticAnalyzer_IfStatement.cs (2)
34IMethodSymbol? referenceEqualsMethod) 59IMethodSymbol? referenceEqualsMethod,
src\roslyn\src\Analyzers\Core\Analyzers\UseNullPropagation\AbstractUseNullPropagationDiagnosticAnalyzer.cs (8)
82public (INamedTypeSymbol? expressionType, IMethodSymbol? referenceEqualsMethod) GetAnalysisSymbols(Compilation compilation) 86var referenceEqualsMethod = objectType?.GetMembers(nameof(ReferenceEquals)) 87.OfType<IMethodSymbol>() 130IMethodSymbol? referenceEqualsMethod) 156IMethodSymbol? referenceEqualsMethod, 215if (memberSymbol is IMethodSymbol) 256IMethodSymbol? referenceEqualsMethod, 312IMethodSymbol? referenceEqualsMethod,
src\roslyn\src\Analyzers\Core\Analyzers\ValidateFormatString\AbstractValidateFormatStringDiagnosticAnalyzer.cs (4)
107var method = TryGetValidFormatMethodSymbol(symbolInfo); 280protected static IMethodSymbol? TryGetValidFormatMethodSymbol(SymbolInfo symbolInfo) 292if (((IMethodSymbol)symbolInfo.Symbol).MethodKind == MethodKind.LocalFunction) 308return (IMethodSymbol)symbolInfo.Symbol;
src\roslyn\src\Compilers\Core\Portable\DiagnosticAnalyzer\SuppressMessageAttributeState.TargetSymbolResolver.cs (9)
190foreach (var method in GetMatchingMethods(candidateMembers, arity, parameters, returnType)) 504var methodContext = bindingContext as IMethodSymbol; 546var methodContext = bindingContext as IMethodSymbol; 738private ImmutableArray<IMethodSymbol> GetMatchingMethods(ImmutableArray<ISymbol> candidateMembers, int? arity, ParameterInfo[] parameters, TypeInfo? returnType) 740var builder = new ArrayBuilder<IMethodSymbol>(); 744var methodSymbol = symbol as IMethodSymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\CollectionExpressionUtilities.cs (9)
98var capacityConstructor = GetAccessibleInstanceConstructor(constructors, c => c.Parameters is [{ Name: "capacity", Type.SpecialType: SpecialType.System_Int32 }]); 102var noArgConstructor = 122IMethodSymbol? GetAccessibleInstanceConstructor(ImmutableArray<IMethodSymbol> constructors, Func<IMethodSymbol, bool> predicate) 124var constructor = constructors.FirstOrDefault(c => !c.IsStatic && predicate(c)); 136/// <item>their <see cref="IMethodSymbol.Arity"/> must match that of <paramref 145public static ImmutableArray<IMethodSymbol>? TryGetCollectionBuilderFactoryMethods( 164.OfType<IMethodSymbol>()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (3)
235var containingMethod = TryGetContainingAnonymousFunctionOrLocalFunction(operation) ?? (containingSymbol as IMethodSymbol); 239public static IMethodSymbol? TryGetContainingAnonymousFunctionOrLocalFunction(this IOperation? operation)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.AnalysisData.cs (3)
72protected abstract PooledHashSet<IMethodSymbol> LambdaOrLocalFunctionsBeingAnalyzed { get; } 91public BasicBlockAnalysisData AnalyzeLocalFunctionInvocation(IMethodSymbol localFunction, CancellationToken cancellationToken) 126protected abstract BasicBlockAnalysisData AnalyzeLocalFunctionInvocationCore(IMethodSymbol localFunction, CancellationToken cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.cs (1)
44BasicBlockAnalysisData AnalyzeLocalFunction(IMethodSymbol localFunction)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (1)
344private void AnalyzeLocalFunctionInvocation(IMethodSymbol localFunction)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (1)
44if (symbol is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (3)
167switch (((IMethodSymbol)currentSymbol).MethodKind) 363SymbolCategory.Method => symbol is IMethodSymbol method && method.MethodKind == (MethodKind)_kind, 507if (Modifiers.HasFlag(Modifiers.Async) && kind == SymbolKind.Method && ((IMethodSymbol)symbol).IsAsync)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ForEachSymbols.cs (6)
8IMethodSymbol? getEnumeratorMethod, 9IMethodSymbol? moveNextMethod, 11IMethodSymbol? disposeMethod, 14public readonly IMethodSymbol? GetEnumeratorMethod = getEnumeratorMethod; 15public readonly IMethodSymbol? MoveNextMethod = moveNextMethod; 17public readonly IMethodSymbol? DisposeMethod = disposeMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (5)
83IMethodSymbol? GetGetAwaiterMethod(SemanticModel semanticModel, SyntaxNode node); 85ImmutableArray<IMethodSymbol> GetDeconstructionAssignmentMethods(SemanticModel semanticModel, SyntaxNode node); 87ImmutableArray<IMethodSymbol> GetDeconstructionForEachMethods(SemanticModel semanticModel, SyntaxNode node); 106ImmutableArray<IMethodSymbol> GetLocalFunctionSymbols(Compilation compilation, ISymbol symbol, CancellationToken cancellationToken); 123bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFactsExtensions.cs (1)
112=> symbol is IMethodSymbol methodSymbol &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
63if (isAnonymousDelegateType && symbol is IMethodSymbol methodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.BuiltinOperatorSymbolKey.cs (6)
11private sealed class BuiltinOperatorSymbolKey : AbstractSymbolKey<IMethodSymbol> 15public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 23SymbolKeyReader reader, IMethodSymbol? contextualSymbol, out string? failureReason) 28using var parameterTypes = reader.ReadSymbolKeyArray<IMethodSymbol, ITypeSymbol>( 54var unaryOperator = reader.Compilation.CreateBuiltinOperator(name, returnTypeSymbol, parameterTypes[0]); 58var binaryOperator = reader.Compilation.CreateBuiltinOperator(name, returnTypeSymbol, parameterTypes[0], parameterTypes[1]);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (5)
33/// <item>Two <see cref="IMethodSymbol"/>s are the "same" if they have 36/// equal <see cref="IMethodSymbol.Arity"/>, 37/// the "same" <see cref="IMethodSymbol.TypeArguments"/>, and have 76/// cref="IRangeVariableSymbol"/> and <see cref="MethodKind.LocalFunction"/> <see cref="IMethodSymbol"/>s can also 323IMethodSymbol { MethodKind: MethodKind.LocalFunction } => true,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.MethodSymbolKey.cs (22)
11private sealed class ReducedExtensionMethodSymbolKey : AbstractSymbolKey<IMethodSymbol> 15public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 24SymbolKeyReader reader, IMethodSymbol? contextualMethod, out string? failureReason) 41using var result = PooledArrayBuilder<IMethodSymbol>.GetInstance(); 42foreach (var reducedFrom in reducedFromResolution.OfType<IMethodSymbol>()) 55private sealed class ConstructedMethodSymbolKey : AbstractSymbolKey<IMethodSymbol> 59public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 66SymbolKeyReader reader, IMethodSymbol? contextualMethod, out string? failureReason) 70using var typeArguments = reader.ReadSymbolKeyArray<IMethodSymbol, ITypeSymbol>( 101using var result = PooledArrayBuilder<IMethodSymbol>.GetInstance(); 102foreach (var method in constructedFrom.OfType<IMethodSymbol>()) 123private sealed class MethodSymbolKey : AbstractSymbolKey<IMethodSymbol> 127public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 160SymbolKeyReader reader, IMethodSymbol? contextualSymbol, out string? failureReason) 179using var methods = GetMembersOfNamedType<IMethodSymbol>(containingType, metadataName: null); 180IMethodSymbol? method = null; 181foreach (var candidate in methods) 223_ = reader.ReadSymbolKeyArray<IMethodSymbol, ITypeSymbol>( 243private static IMethodSymbol? Resolve( 244SymbolKeyReader reader, bool isPartialImplementationPart, IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (2)
45case IMethodSymbol method: 64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyReader.cs (5)
331private readonly List<IMethodSymbol?> _methodSymbolStack = []; 409public MethodPopper PushMethod(IMethodSymbol? method) 415private void PopMethod(IMethodSymbol? method) 422public IMethodSymbol? ResolveMethod(int index) 441public readonly ref struct MethodPopper(SymbolKeyReader reader, IMethodSymbol? method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyWriter.cs (5)
69private readonly List<IMethodSymbol> _methodSymbolStack = []; 362public override void VisitMethod(IMethodSymbol methodSymbol) 499var method = _methodSymbolStack[i]; 512public void PushMethod(IMethodSymbol method) 515public void PopMethod(IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.TypeParameterOrdinalSymbolKey.cs (1)
22var method = reader.ResolveMethod(methodIndex);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (14)
112SemanticModel model, TForEachStatementSyntax forEach, out IMethodSymbol getEnumeratorMethod, out ITypeSymbol elementType, out ImmutableArray<ILocalSymbol> localVariables); 379symbol = ((IMethodSymbol)symbol).GetConstructedReducedFrom()!; 384newSymbol = ((IMethodSymbol)newSymbol).GetConstructedReducedFrom()!; 404if (symbol is IMethodSymbol methodSymbol && newSymbol is IMethodSymbol newMethodSymbol) 478if (symbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction } methodSymbol && 479newSymbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction } newMethodSymbol) 757return symbol is IMethodSymbol { ContainingType.SpecialType: SpecialType.System_Object } 778GetForEachSymbols(this.OriginalSemanticModel, forEachStatement, out var originalGetEnumerator, out var originalElementType, out var originalLocalVariables); 779GetForEachSymbols(this.SpeculativeSemanticModel, newForEachStatement, out var newGetEnumerator, out var newElementType, out var newLocalVariables); 806private bool ReplacementBreaksForEachGetEnumerator(IMethodSymbol getEnumerator, IMethodSymbol newGetEnumerator, TExpressionSyntax newForEachStatementExpression) 875=> symbol is IMethodSymbol { MethodKind: MethodKind.DelegateInvoke }; 1048return receiverSymbol is IMethodSymbol or IPropertySymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\LightweightOverloadResolution.cs (12)
31public IMethodSymbol? RefineOverload(SymbolInfo symbolInfo, ImmutableArray<IMethodSymbol> candidates) 34public (IMethodSymbol? method, int parameterIndex) RefineOverloadAndPickParameter(SymbolInfo symbolInfo, ImmutableArray<IMethodSymbol> candidates) 38return symbolInfo.Symbol is IMethodSymbol method 43public int FindParameterIndexIfCompatibleMethod(IMethodSymbol method) 52private (IMethodSymbol? symbol, int parameterIndex) GuessCurrentSymbolAndParameter(ImmutableArray<IMethodSymbol> methodGroup) 56foreach (var method in methodGroup) 73private (IMethodSymbol? method, int parameterIndex) TryFindParameterIndexIfCompatibleMethod(IMethodSymbol method) 185private bool TryPrepareArgumentToParameterMap(IMethodSymbol method, ref TemporaryArray<int> argumentToParameterMap)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (2)
371public static IMethodSymbol? GetTopLevelStatementsMethod(this Compilation compilation) 377if (candidateMember is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (11)
19internal static IMethodSymbol? TryGetCorrespondingExtensionBlockMethod(this IMethodSymbol methodSymbol) 33if (member is IMethodSymbol method && 49public static ImmutableArray<IMethodSymbol> GetAllMethodSymbolsOfPartialParts(this IMethodSymbol method) 72public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 77public static bool TryGetPredefinedComparisonOperator(this IMethodSymbol symbol, out PredefinedOperator op) 101public static PredefinedOperator GetPredefinedOperator(this IMethodSymbol symbol) 131public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 142public static bool IsAsyncReturningVoidTask(this IMethodSymbol method, Compilation compilation) 160public static bool IsPrimaryConstructor(this IMethodSymbol constructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (9)
136static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 184IMethodSymbol method => method.ExplicitInterfaceImplementations.Length > 0, 235static bool IsNonPublicImplementableAccessor(IMethodSymbol? accessor) 242if (member is IMethodSymbol { IsStatic: true, IsAbstract: true, MethodKind: MethodKind.UserDefinedOperator } method) 335private static bool IsInaccessibleImplementableAccessor(IMethodSymbol? accessor, ISymbol within) 439case IMethodSymbol method: 651IMethodSymbol { MethodKind: MethodKind.Ordinary, CanBeReferencedByName: true } => true, 652IMethodSymbol { MethodKind: MethodKind.UserDefinedOperator } => true, 671return member is IMethodSymbol
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IParameterSymbolExtensions.cs (2)
31ContainingSymbol: IMethodSymbol 63ContainingSymbol: IMethodSymbol
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions_Accessibility.cs (2)
107var funcPtrSignature = ((IFunctionPointerTypeSymbol)symbol).Signature; 156if (symbol is IMethodSymbol { MethodKind: MethodKind.BuiltinOperator })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (43)
87IMethodSymbol method => method.OverriddenMethod, 110IMethodSymbol? bestMethod = null; 128else if (member is IMethodSymbol method) 145IMethodSymbol method => ImmutableArray<ISymbol>.CastUp(method.ExplicitInterfaceImplementations), 199if (symbol is IMethodSymbol 241=> symbol is IMethodSymbol { MethodKind: MethodKind.AnonymousFunction }; 268=> symbol is IMethodSymbol { MethodKind: MethodKind.ReducedExtension }; 273/// <inheritdoc cref="IMethodSymbol.IsExtensionMethod"/> 275=> symbol is IMethodSymbol { IsExtensionMethod: true }; 278=> symbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction }; 287=> symbol is IMethodSymbol { MethodKind: MethodKind.Constructor }; 290=> symbol is IMethodSymbol { MethodKind: MethodKind.StaticConstructor }; 293=> symbol is IMethodSymbol { MethodKind: MethodKind.Destructor }; 296=> symbol is IMethodSymbol { MethodKind: MethodKind.UserDefinedOperator }; 299=> symbol is IMethodSymbol { MethodKind: MethodKind.Conversion }; 302=> symbol is IMethodSymbol { MethodKind: MethodKind.Ordinary }; 305=> symbol is IMethodSymbol { MethodKind: MethodKind.Ordinary or MethodKind.LocalFunction }; 344IMethodSymbol methodSymbol => methodSymbol.ReturnType, 355SymbolKind.Method => ((IMethodSymbol)symbol).Arity, 370symbol = ((IMethodSymbol)symbol).GetConstructedReducedFrom(); 375if (symbol.ContainingSymbol is IMethodSymbol method) 393var method = parameter.ContainingSymbol as IMethodSymbol; 426IMethodSymbol m => m.Parameters, 434IMethodSymbol m => m.TypeParameters, 455IMethodSymbol m => m.TypeArguments, 500if (symbol is IMethodSymbol method && method.Parameters.All(p => p.RefKind == RefKind.None)) 656=> (symbol as IMethodSymbol)?.MethodKind.IsPropertyAccessor() == true; 659=> symbol is IMethodSymbol { MethodKind: MethodKind.EventAdd or MethodKind.EventRaise or MethodKind.EventRemove }; 685var methodSymbol = symbol as IMethodSymbol; 709var getAwaiters = potentialGetAwaiters.OfType<IMethodSymbol>().Where(x => !x.Parameters.Any()); 713public static bool IsValidGetAwaiter(this IMethodSymbol symbol) 717private static bool VerifyGetAwaiter(IMethodSymbol getAwaiter) 731var methods = returnType.GetMembers().OfType<IMethodSymbol>(); 747public static bool IsValidGetEnumerator(this IMethodSymbol symbol) 751private static bool VerifyGetEnumerator(IMethodSymbol getEnumerator) 771if (!members.OfType<IMethodSymbol>().Any(x => 787public static bool IsValidGetAsyncEnumerator(this IMethodSymbol symbol) 791private static bool VerifyGetAsyncEnumerator(IMethodSymbol getAsyncEnumerator) 814if (!members.OfType<IMethodSymbol>().Any(x => x.Name == WellKnownMemberNames.MoveNextAsyncMethodName)) 896[NotNullWhen(true)] out IMethodSymbol? classicExtensionMethod) 898if (symbol is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
108public override bool VisitMethod(IMethodSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.cs (2)
412.SelectAccessibleMembers<IMethodSymbol>(WellKnownMemberNames.CollectionInitializerAddMethodName, within ?? typeSymbol) 413.OfType<IMethodSymbol>()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SignatureComparer.cs (12)
43SymbolKind.Method => HaveSameSignature((IMethodSymbol)symbol1, (IMethodSymbol)symbol2, caseSensitive), 67public static bool BadPropertyAccessor(IMethodSymbol? method1, IMethodSymbol? method2) 73public bool HaveSameSignature(IMethodSymbol method1, 74IMethodSymbol method2, 162var method1 = (IMethodSymbol)symbol1; 163var method2 = (IMethodSymbol)symbol2; 208private bool HaveSameSignatureAndConstraintsAndReturnType(IMethodSymbol method1, IMethodSymbol method2)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (6)
149public bool ReturnTypeEquals(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 194private static bool IsConstructedFromSelf(IMethodSymbol symbol) 200private static bool CheckContainingType(IMethodSymbol x) 231private static bool IsPartialMethodDefinitionPart(IMethodSymbol symbol) 234private static bool IsPartialMethodImplementationPart(IMethodSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (8)
124SymbolKind.Method => MethodsAreEquivalent((IMethodSymbol)x, (IMethodSymbol)y, equivalentTypesWithDifferingAssemblies), 170private bool MethodsAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, bool considerReturnRefKinds = false) 186var rx = x.ReducedFrom; 187var ry = y.ReducedFrom; 486internal bool ReturnTypesAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (2)
68SymbolKind.Method => CombineHashCodes((IMethodSymbol)x, currentHash), 112private int CombineHashCodes(IMethodSymbol x, int currentHash)
Microsoft.CodeAnalysis.CodeStyle.Fixes (315)
src\ce8c1e82c1124a2b\AbstractInitializerParameterService.cs (1)
24protected abstract SyntaxNode? GetAccessorBody(IMethodSymbol accessor, CancellationToken cancellationToken);
src\roslyn\src\Analyzers\Core\CodeFixes\AddAccessibilityModifiers\AddAccessibilityModifiersHelpers.cs (1)
48if (symbol is IMethodSymbol or IPropertySymbol or IEventSymbol)
src\roslyn\src\Analyzers\Core\CodeFixes\AddExplicitCast\Fixer.cs (2)
61foreach (var candidateSymbol in candidateSymbols.OfType<IMethodSymbol>())
src\roslyn\src\Analyzers\Core\CodeFixes\AddParameter\AbstractAddParameterCodeFixProvider.cs (11)
88if (semanticModel.GetEnclosingSymbol(node.SpanStart, cancellationToken) is IMethodSymbol methodWithDiagnostic) 134var candidates = semanticModel.GetMemberGroup(expression, cancellationToken).OfType<IMethodSymbol>().ToImmutableArray(); 167IMethodSymbol methodSymbol => methodSymbol.ContainingType, // Implicit object creation expressions 198ImmutableArray<IMethodSymbol> methodCandidates) 203foreach (var method in methodCandidates.OrderBy(m => m.Parameters.Length)) 236private static int NonParamsParameterCount(IMethodSymbol method) 311var aMethod = codeFixData.First().Method; // We need to term the MethodGroup and need an arbitrary IMethodSymbol to do so. 342var methodToUpdate = argumentInsertPositionData.MethodToUpdate; 358private static string GetCodeFixTitle(string resourceString, IMethodSymbol methodToUpdate, bool includeParameters) 376IMethodSymbol method, 436IMethodSymbol method,
src\roslyn\src\Analyzers\Core\CodeFixes\AddParameter\AddParameterService.cs (8)
31public static bool HasCascadingDeclarations(IMethodSymbol method) 79IMethodSymbol method, 116foreach (var currentMethodToUpdate in documentLookup) 193if (parameter.ContainingSymbol is not IMethodSymbol { MethodKind: MethodKind.Constructor, DeclaringSyntaxReferences: [var reference] } constructor) 214private static async Task<ImmutableArray<IMethodSymbol>> FindMethodDeclarationReferencesAsync( 215Document invocationDocument, IMethodSymbol method, CancellationToken cancellationToken) 221.OfType<IMethodSymbol>() 226IMethodSymbol method,
src\roslyn\src\Analyzers\Core\CodeFixes\AddParameter\ArgumentInsertPositionData.cs (2)
7internal readonly struct ArgumentInsertPositionData<TArgumentSyntax>(IMethodSymbol methodToUpdate, TArgumentSyntax argumentToInsert, int argumentInsertionIndex) where TArgumentSyntax : SyntaxNode 9public IMethodSymbol MethodToUpdate { get; } = methodToUpdate;
src\roslyn\src\Analyzers\Core\CodeFixes\AddParameter\CodeFixData.cs (2)
12IMethodSymbol method, 20public IMethodSymbol Method { get; } = method ?? throw new ArgumentNullException(nameof(method));
src\roslyn\src\Analyzers\Core\CodeFixes\AddParameter\RegisterFixData.cs (2)
9internal sealed class RegisterFixData<TArgumentSyntax>(SeparatedSyntaxList<TArgumentSyntax> arguments, ImmutableArray<IMethodSymbol> methodCandidates, bool isConstructorInitializer) 17public ImmutableArray<IMethodSymbol> MethodCandidates { get; } = methodCandidates;
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateConstructor\AbstractGenerateConstructorService.cs (6)
44protected abstract IMethodSymbol? GetCurrentConstructor(SemanticModel semanticModel, SyntaxToken token, CancellationToken cancellationToken); 45protected abstract IMethodSymbol? GetDelegatedConstructor(SemanticModel semanticModel, IMethodSymbol constructor, CancellationToken cancellationToken); 47protected bool WillCauseConstructorCycle(State state, SemanticDocument document, IMethodSymbol delegatedConstructor, CancellationToken cancellationToken) 51var currentConstructor = GetCurrentConstructor(document.SemanticModel, state.Token, cancellationToken); 66var currentDelegatedConstructor = delegatedConstructor;
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateConstructor\AbstractGenerateConstructorService.State.cs (9)
46private IMethodSymbol? _delegatedConstructor; 150var delegatedConstructor = FindConstructorToDelegateTo(parameters, expressions, cancellationToken); 183private IMethodSymbol? FindConstructorToDelegateTo( 195var result = FindConstructorToDelegateTo(parameters, expressions, TypeToGenerateIn.InstanceConstructors, cancellationToken) ?? 204private IMethodSymbol? FindConstructorToDelegateTo( 207ImmutableArray<IMethodSymbol> constructors, 212foreach (var constructor in constructors) 250private bool Matches(IMethodSymbol ctor, ISyntaxFactsService service) 437var constructor = CodeGenerationSymbolFactory.CreateConstructorSymbol(
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateConstructor\GenerateConstructorHelpers.cs (4)
30IMethodSymbol constructor) 83IMethodSymbol constructor, 91var constructorInCompilation = (IMethodSymbol?)SymbolKey.Create(constructor).Resolve(semanticModel.Compilation).Symbol;
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateDefaultConstructors\AbstractGenerateDefaultConstructorsService.cs (2)
44var unimplementedDefaultConstructor = state.UnimplementedConstructors.FirstOrDefault( 47foreach (var constructor in state.UnimplementedConstructors)
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateDefaultConstructors\AbstractGenerateDefaultConstructorsService.State.cs (5)
21public ImmutableArray<IMethodSymbol> UnimplementedConstructors { get; private set; } 96var baseNoArgConstructor = baseType.Constructors.FirstOrDefault(c => c.Parameters.Length == 0); 118IMethodSymbol constructor, 119ImmutableArray<IMethodSymbol> classConstructors, 122var matchingConstructor = classConstructors.FirstOrDefault(
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateDefaultConstructors\GenerateDefaultConstructorsCodeAction.cs (5)
22ImmutableArray<IMethodSymbol> constructors) : CodeAction 24private readonly ImmutableArray<IMethodSymbol> _constructors = constructors; 44private IMethodSymbol CreateConstructorDefinition( 45IMethodSymbol baseConstructor) 73private static Accessibility DetermineAccessibility(IMethodSymbol baseConstructor, INamedTypeSymbol classType)
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateConversionService.cs (2)
24protected abstract bool TryInitializeImplicitConversionState(SemanticDocument document, SyntaxNode expression, ISet<TypeKind> classInterfaceModuleStructTypes, CancellationToken cancellationToken, out SyntaxToken identifierToken, [NotNullWhen(true)] out IMethodSymbol? methodSymbol, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn); 25protected abstract bool TryInitializeExplicitConversionState(SemanticDocument document, SyntaxNode expression, ISet<TypeKind> classInterfaceModuleStructTypes, CancellationToken cancellationToken, out SyntaxToken identifierToken, [NotNullWhen(true)] out IMethodSymbol? methodSymbol, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn);
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateConversionService.State.cs (2)
62out var identifierToken, out var methodSymbol, out var typeToGenerateIn)) 86out var identifierToken, out var methodSymbol, out var typeToGenerateIn))
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateDeconstructMethodService.State.cs (1)
71var methodSymbol = CodeGenerationSymbolFactory.CreateMethodSymbol(
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateMethodService.cs (1)
24protected abstract bool TryInitializeExplicitInterfaceState(SemanticDocument document, SyntaxNode node, CancellationToken cancellationToken, out SyntaxToken identifierToken, [NotNullWhen(true)] out IMethodSymbol? methodSymbol, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn);
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateMethodService.State.cs (3)
88out var identifierToken, out var methodSymbol, out var typeToGenerateIn)) 165var delegateInvokeMethod = typeInference.InferDelegateType(semanticModel, SimpleNameOrMemberAccessExpression, cancellationToken)?.DelegateInvokeMethod; 246private static IMethodSymbol CreateMethodSymbolWithReturnType(
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateParameterizedMemberService.CodeAction.cs (1)
85var method = await _state.SignatureInfo.GenerateMethodAsync(syntaxFactory, _isAbstract, cancellationToken).ConfigureAwait(false);
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateParameterizedMemberService.MethodSignatureInfo.cs (2)
16IMethodSymbol methodSymbol, 19private readonly IMethodSymbol _methodSymbol = methodSymbol;
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateParameterizedMemberService.SignatureInfo.cs (4)
69var getMethod = CodeGenerationSymbolFactory.CreateAccessorSymbol( 74var setMethod = includeSetter ? getMethod : null; 89public async ValueTask<IMethodSymbol> GenerateMethodAsync( 104var method = CodeGenerationSymbolFactory.CreateMethodSymbol(
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateParameterizedMemberService.State.cs (2)
86.OfType<IMethodSymbol>(); 93var generatedMethod = await SignatureInfo.GenerateMethodAsync(syntaxFactory, false, cancellationToken).ConfigureAwait(false);
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.CodeAction.cs (3)
62var getAccessor = CreateAccessor(_state.DetermineMaximalAccessibility()); 63var setAccessor = _isReadonly || _refKind != RefKind.None 99private IMethodSymbol CreateAccessor(Accessibility accessibility)
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.cs (1)
206var containingMethod = state.ContainingMethod;
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.State.cs (5)
32public IMethodSymbol ContainingMethod { get; private set; } 398private static IMethodSymbol FindContainingMethodSymbol(int position, SemanticModel semanticModel, CancellationToken cancellationToken) 403if (symbol is IMethodSymbol method && !method.IsAnonymousFunction()) 483var enclosingMethodSymbol = _document.SemanticModel.GetEnclosingSymbol<IMethodSymbol>(SimpleNameOrMemberAccessExpressionOpt.SpanStart, cancellationToken);
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementAbstractClass\ImplementAbstractClassData.cs (7)
167IMethodSymbol method => GenerateMethod(compilation, method, throughMember, modifiers, accessibility), 175Compilation compilation, IMethodSymbol method, ISymbol? throughMember, 210var getMethod = ShouldGenerateAccessor(property.GetMethod) 219var setMethod = ShouldGenerateAccessor(property.SetMethod) 246private IMethodSymbol? GetEventAddOrRemoveMethod( 247IEventSymbol @event, IMethodSymbol? accessor, ISymbol? throughMember, 265private bool ShouldGenerateAccessor([NotNullWhen(true)] IMethodSymbol? method)
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\AbstractImplementInterfaceService.cs (1)
33protected abstract string ToDisplayString(IMethodSymbol disposeImplMethod, SymbolDisplayFormat format);
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementHelpers.cs (5)
45var primaryConstructor = namedType.InstanceConstructors 145case IMethodSymbol methodSymbol: 229var disposeMethod = TryGetIDisposableDispose(compilation); 245public static IMethodSymbol? TryGetIDisposableDispose(Compilation compilation) 253if (member is IMethodSymbol { IsStatic: false, ReturnsVoid: true, Arity: 0, Parameters.Length: 0 } disposeMethod)
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator_DisposePattern.cs (9)
49var disposeMethod = TryGetIDisposableDispose(compilation)!; 114IMethodSymbol disposeMethod, 117var disposeImplMethod = CreateDisposeImplementationMethod(compilation, disposeMethod, disposedValueField); 121var disposeInterfaceMethod = CreateDisposeInterfaceMethod( 130private IMethodSymbol CreateDisposeImplementationMethod( 132IMethodSymbol disposeMethod, 181private IMethodSymbol CreateDisposeInterfaceMethod( 183IMethodSymbol disposeMethod, 219var result = CodeGenerationSymbolFactory.CreateMethodSymbol(
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator_Method.cs (7)
20IMethodSymbol method, 21IMethodSymbol? conflictingMethod, 30var updatedMethod = method.EnsureNonConflictingNames(State.ClassOrStructType, syntaxFacts); 46Compilation compilation, IMethodSymbol updatedMethod, IMethodSymbol? conflictingMethod) 70Compilation compilation, IMethodSymbol method, [NotNullWhen(true)] IMethodSymbol? conflictingMethod)
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator_Property.cs (6)
37var getAccessor = GenerateGetAccessor( 41var setAccessor = GenerateSetAccessor( 87private IMethodSymbol? GenerateSetAccessor( 108var setMethod = property.SetMethod.RemoveInaccessibleAttributesAndAttributesOfTypes( 121private IMethodSymbol? GenerateGetAccessor( 134var getMethod = property.GetMethod.RemoveInaccessibleAttributesAndAttributesOfTypes(
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator.cs (8)
261if (member is not IMethodSymbol method) 300IMethodSymbol method => [GenerateMethod(compilation, method, conflictingMember as IMethodSymbol, accessibility, modifiers, generateAbstractly, useExplicitInterfaceSymbol, memberName)], 309var accessor = CodeGenerationSymbolFactory.CreateAccessorSymbol( 324private IMethodSymbol? GetAddOrRemoveMethod( 325IEventSymbol @event, bool generateInvisibly, IMethodSymbol accessor, string memberName, 361if (member is IMethodSymbol method1 && baseMember is IMethodSymbol method2)
src\roslyn\src\Analyzers\Core\CodeFixes\MakeMethodAsynchronous\AbstractMakeMethodAsynchronousCodeFixProvider.cs (12)
36IMethodSymbol methodSymbol, 67var methodSymbol = GetMethodSymbol(semanticModel, node, cancellationToken); 105IMethodSymbol methodSymbol, 122if (referencedSymbol.Definition is not IMethodSymbol definition) 150IMethodSymbol methodSymbol, 182private static IMethodSymbol? GetMethodSymbol(SemanticModel semanticModel, SyntaxNode node, CancellationToken cancellationToken) 186return symbol as IMethodSymbol; 211var methodSymbol = GetMethodSymbol(semanticModel, node, cancellationToken); 261IMethodSymbol methodSymbol, 280var newMethod = (IMethodSymbol)semanticModel.GetRequiredDeclaredSymbol(newNode, cancellationToken); 291IMethodSymbol methodSymbol,
src\roslyn\src\Analyzers\Core\CodeFixes\MakeMethodSynchronous\AbstractMakeMethodSynchronousCodeFixProvider.cs (8)
25protected abstract SyntaxNode RemoveAsyncTokenAndFixReturnType(IMethodSymbol methodSymbol, SyntaxNode node, KnownTaskTypes knownTypes); 56var methodSymbol = (IMethodSymbol?)(semanticModel.GetDeclaredSymbol(node, cancellationToken) ?? semanticModel.GetSymbolInfo(node, cancellationToken).GetAnySymbol()); 71private async Task<Solution> RenameThenRemoveAsyncTokenAsync(Document document, SyntaxNode node, IMethodSymbol methodSymbol, CancellationToken cancellationToken) 87var newMethod = (IMethodSymbol)semanticModel.GetRequiredDeclaredSymbol(newNode, cancellationToken); 95Document document, IMethodSymbol methodSymbol, SyntaxNode node, CancellationToken cancellationToken) 126if (semanticModel.GetDeclaredSymbol(methodDeclaration, cancellationToken) is IMethodSymbol methodSymbol)
src\roslyn\src\Analyzers\Core\CodeFixes\RemoveAsyncModifier\AbstractRemoveAsyncModifierCodeFixProvider.cs (5)
41var methodSymbol = GetMethodSymbol(node, semanticModel, cancellationToken); 74var methodSymbol = GetMethodSymbol(node, semanticModel, cancellationToken); 93private static IMethodSymbol? GetMethodSymbol(SyntaxNode node, SemanticModel semanticModel, CancellationToken cancellationToken) 94=> semanticModel.GetSymbolInfo(node, cancellationToken).Symbol as IMethodSymbol ?? 95semanticModel.GetDeclaredSymbol(node, cancellationToken) as IMethodSymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractCodeGenerationService.cs (7)
53public TDeclarationNode AddMethod<TDeclarationNode>(TDeclarationNode destination, IMethodSymbol method, CodeGenerationContextInfo info, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode 82public SyntaxNode? CreateMethodDeclaration(IMethodSymbol method, CodeGenerationDestination destination, CodeGenerationContextInfo info, CancellationToken cancellationToken) 125protected abstract TDeclarationNode AddMethod<TDeclarationNode>(TDeclarationNode destination, IMethodSymbol method, TCodeGenerationContextInfo info, IList<bool>? availableIndices, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode; 147public abstract SyntaxNode? CreateMethodDeclaration(IMethodSymbol method, CodeGenerationDestination destination, TCodeGenerationContextInfo info, CancellationToken cancellationToken); 348IMethodSymbol method => CreateMethodDeclaration(method, codeGenerationDestination, info, cancellationToken), 366IMethodSymbol method => AddMethod(currentDestination, method, info, availableIndices, cancellationToken), 446public Task<Document> AddMethodAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractFlagsEnumGenerator.cs (1)
44var ctor = attribute.AttributeConstructor;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationSymbolFactory.cs (28)
33IMethodSymbol? addMethod = null, 34IMethodSymbol? removeMethod = null, 35IMethodSymbol? raiseMethod = null) 52IMethodSymbol? getMethod, 53IMethodSymbol? setMethod, 80ImmutableArray<IParameterSymbol> parameters, IMethodSymbol? getMethod, IMethodSymbol? setMethod, 119public static IMethodSymbol CreateConstructorSymbol( 138public static IMethodSymbol CreateDestructorSymbol( 147internal static IMethodSymbol CreateMethodSymbol( 154ImmutableArray<IMethodSymbol> explicitInterfaceImplementations, 172public static IMethodSymbol CreateMethodSymbol( 176ImmutableArray<IMethodSymbol> explicitInterfaceImplementations, 191public static IMethodSymbol CreateOperatorSymbol( 219public static IMethodSymbol CreateConversionSymbol( 244public static IMethodSymbol CreateConversionSymbol( 356internal static IMethodSymbol CreateAccessorSymbol( 357IMethodSymbol accessor, 360ImmutableArray<IMethodSymbol> explicitInterfaceImplementations = default, 382public static IMethodSymbol CreateAccessorSymbol( 470var invokeMethod = CreateMethodSymbol( 510internal static IMethodSymbol CreateMethodSymbol( 511IMethodSymbol method, 515ImmutableArray<IMethodSymbol> explicitInterfaceImplementations = default, 549IMethodSymbol? getMethod = null, 550IMethodSymbol? setMethod = null, 575IMethodSymbol? addMethod = null, 576IMethodSymbol? removeMethod = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerator.cs (1)
44public static Task<Document> AddMethodDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\ICodeGenerationService.cs (3)
33SyntaxNode? CreateMethodDeclaration(IMethodSymbol method, CodeGenerationDestination destination, CodeGenerationContextInfo info, CancellationToken cancellationToken); 63TDeclarationNode AddMethod<TDeclarationNode>(TDeclarationNode destination, IMethodSymbol method, CodeGenerationContextInfo info, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode; 143Task<Document> AddMethodAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractMethodSymbol.cs (12)
15public new IMethodSymbol OriginalDefinition { get; protected set; } 45public abstract IMethodSymbol ConstructedFrom { get; } 48public abstract IMethodSymbol OverriddenMethod { get; } 49public abstract IMethodSymbol ReducedFrom { get; } 51public abstract IMethodSymbol ReduceExtensionMethod(ITypeSymbol receiverType); 52public abstract ImmutableArray<IMethodSymbol> ExplicitInterfaceImplementations { get; } 53public abstract IMethodSymbol PartialDefinitionPart { get; } 54public abstract IMethodSymbol PartialImplementationPart { get; } 105public IMethodSymbol AssociatedExtensionImplementation => null; 112public IMethodSymbol Construct(params ITypeSymbol[] typeArguments) 115public IMethodSymbol Construct(ImmutableArray<ITypeSymbol> typeArguments, ImmutableArray<CodeAnalysis.NullableAnnotation> typeArgumentNullableAnnotations) 121public IMethodSymbol ReduceExtensionMember(ITypeSymbol receiverType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractNamedTypeSymbol.cs (4)
76public abstract IMethodSymbol DelegateInvokeMethod { get; } 81public abstract ImmutableArray<IMethodSymbol> InstanceConstructors { get; } 82public abstract ImmutableArray<IMethodSymbol> StaticConstructors { get; } 83public abstract ImmutableArray<IMethodSymbol> Constructors { get; }
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAttributeData.cs (1)
21protected override IMethodSymbol CommonAttributeConstructor => null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructedMethodSymbol.cs (7)
69public override IMethodSymbol ConstructedFrom => _constructedFrom; 76public override IMethodSymbol OverriddenMethod 80public override IMethodSymbol ReducedFrom 87public override IMethodSymbol ReduceExtensionMethod(ITypeSymbol receiverType) 93public override ImmutableArray<IMethodSymbol> ExplicitInterfaceImplementations 97public override IMethodSymbol PartialDefinitionPart 101public override IMethodSymbol PartialImplementationPart
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructedNamedTypeSymbol.cs (4)
47public override IMethodSymbol DelegateInvokeMethod 60public override ImmutableArray<IMethodSymbol> InstanceConstructors 69public override ImmutableArray<IMethodSymbol> StaticConstructors 78public override ImmutableArray<IMethodSymbol> Constructors
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructorInfo.cs (10)
12private static readonly ConditionalWeakTable<IMethodSymbol, CodeGenerationConstructorInfo> s_constructorToInfoMap = new(); 38IMethodSymbol constructor, 50private static CodeGenerationConstructorInfo? GetInfo(IMethodSymbol method) 56public static ImmutableArray<SyntaxNode> GetThisConstructorArgumentsOpt(IMethodSymbol constructor) 59public static ImmutableArray<SyntaxNode> GetBaseConstructorArgumentsOpt(IMethodSymbol constructor) 62public static ImmutableArray<SyntaxNode> GetStatements(IMethodSymbol constructor) 65public static string GetTypeName(IMethodSymbol constructor) 68public static bool GetIsUnsafe(IMethodSymbol constructor) 71public static bool GetIsPrimaryConstructor(IMethodSymbol constructor) 83private static string GetTypeName(CodeGenerationConstructorInfo? info, IMethodSymbol constructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationDestructorInfo.cs (6)
14private static readonly ConditionalWeakTable<IMethodSymbol, CodeGenerationDestructorInfo> s_destructorToInfoMap = new(); 28IMethodSymbol destructor, 36private static CodeGenerationDestructorInfo GetInfo(IMethodSymbol method) 42public static ImmutableArray<SyntaxNode> GetStatements(IMethodSymbol destructor) 45public static string GetTypeName(IMethodSymbol destructor) 51private static string GetTypeName(CodeGenerationDestructorInfo info, IMethodSymbol constructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationEventSymbol.cs (6)
19IMethodSymbol? addMethod, 20IMethodSymbol? removeMethod, 21IMethodSymbol? raiseMethod) : CodeGenerationSymbol(containingType?.ContainingAssembly, containingType, attributes, declaredAccessibility, modifiers, name), IEventSymbol 28public IMethodSymbol? AddMethod { get; } = addMethod; 29public IMethodSymbol? RemoveMethod { get; } = removeMethod; 30public IMethodSymbol? RaiseMethod { get; } = raiseMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationMethodInfo.cs (9)
14private static readonly ConditionalWeakTable<IMethodSymbol, CodeGenerationMethodInfo> s_methodToInfoMap = new(); 40IMethodSymbol method, 52private static CodeGenerationMethodInfo GetInfo(IMethodSymbol method) 58public static ImmutableArray<SyntaxNode> GetStatements(IMethodSymbol method) 61public static ImmutableArray<SyntaxNode> GetHandlesExpressions(IMethodSymbol method) 64public static bool GetIsNew(IMethodSymbol method) 67public static bool GetIsUnsafe(IMethodSymbol method) 70public static bool GetIsPartial(IMethodSymbol method) 73public static bool GetIsAsyncMethod(IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationMethodSymbol.cs (8)
19public override ImmutableArray<IMethodSymbol> ExplicitInterfaceImplementations { get; } 29ImmutableArray<IMethodSymbol> explicitInterfaceImplementations, 98public override IMethodSymbol ConstructedFrom => this; 105public override IMethodSymbol OverriddenMethod => null; 107public override IMethodSymbol ReducedFrom => null; 112public override IMethodSymbol ReduceExtensionMethod(ITypeSymbol receiverType) 115public override IMethodSymbol PartialImplementationPart => null; 117public override IMethodSymbol PartialDefinitionPart => null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamedTypeSymbol.cs (7)
91public override IMethodSymbol DelegateInvokeMethod 96? this.GetMembers(WellKnownMemberNames.DelegateInvokeName).OfType<IMethodSymbol>().FirstOrDefault() 163public override ImmutableArray<IMethodSymbol> InstanceConstructors 168return [.. this.GetMembers().OfType<IMethodSymbol>().Where(m => m.MethodKind == MethodKind.Constructor && !m.IsStatic)]; 172public override ImmutableArray<IMethodSymbol> StaticConstructors 177return [.. this.GetMembers().OfType<IMethodSymbol>().Where(m => m.MethodKind == MethodKind.StaticConstructor && m.IsStatic)]; 181public override ImmutableArray<IMethodSymbol> Constructors
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationPropertySymbol.cs (4)
23IMethodSymbol getMethod, 24IMethodSymbol setMethod) : CodeGenerationSymbol(containingType?.ContainingAssembly, containingType, attributes, declaredAccessibility, modifiers, name), IPropertySymbol 33public IMethodSymbol GetMethod { get; } = getMethod; 34public IMethodSymbol SetMethod { get; } = setMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationSymbol.cs (2)
81public static IMethodSymbol ContainingMethod => null; 165public ImmutableArray<AttributeData> GetAttributes(IMethodSymbol attributeConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (2)
72public IMethodSymbol DeclaringMethod 76return this.ContainingSymbol as IMethodSymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\IMethodSymbolExtensions.cs (9)
18public static IMethodSymbol EnsureNonConflictingNames( 19this IMethodSymbol method, INamedTypeSymbol containingType, ISyntaxFactsService syntaxFacts) 39var updatedMethod = method.RenameTypeParameters(newTypeParameterNames); 43public static IMethodSymbol RenameTypeParameters(this IMethodSymbol method, ImmutableArray<string> newNames) 75public static IMethodSymbol RenameParameters( 76this IMethodSymbol method, ImmutableArray<string> parameterNames) 141public static IMethodSymbol RemoveInaccessibleAttributesAndAttributesOfTypes( 142this IMethodSymbol method, ISymbol accessibleWithin,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\ISymbolExtensions.cs (2)
15IMethodSymbol method => method.PartialDefinitionPart != null || method.PartialImplementationPart != null, 53IMethodSymbol method => method.ReduceExtensionMember(receiverType),
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateEqualsMethod.cs (8)
24public static IMethodSymbol CreateEqualsMethod( 48public static IMethodSymbol CreateEqualsMethod(this Compilation compilation, ImmutableArray<SyntaxNode> statements) 51private static IMethodSymbol CreateEqualsMethod( 75public static IMethodSymbol CreateIEquatableEqualsMethod( 88var methodSymbol = constructedEquatableType 90.OfType<IMethodSymbol>() 463from method in baseType.GetMembers(EqualsName).OfType<IMethodSymbol>() 500var constructor = CodeGenerationSymbolFactory.CreateConstructorSymbol(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateGetHashCodeMethod.cs (3)
98var baseHashCode = GetBaseGetHashCodeMethod(containingType); 192public static IMethodSymbol? GetBaseGetHashCodeMethod(INamedTypeSymbol containingType) 205from method in baseType.GetMembers(GetHashCodeName).OfType<IMethodSymbol>()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions.cs (1)
95this SyntaxGenerator generator, IMethodSymbol method, ISymbol throughMember)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\InitializeParameter\InitializeParameterHelpersCore.cs (1)
20if (parameter.ContainingSymbol is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SemanticsFactsService\AbstractSemanticFactsService.cs (13)
106protected static IMethodSymbol? FindDisposeMethod(Compilation compilation, ITypeSymbol? type, bool isAsync) 118if (impl is IMethodSymbol implMethod) 136.FirstOrDefault(m => m is IMethodSymbol { DeclaredAccessibility: Accessibility.Public, ReturnType: var returnType, Parameters.Length: 0 } && 137SymbolEqualityComparer.Default.Equals(returnType, valueTaskType)) is IMethodSymbol disposeMethodFromPattern) 152.FirstOrDefault(m => m is IMethodSymbol { DeclaredAccessibility: Accessibility.Public, ReturnsVoid: true, Parameters.Length: 0 }) is IMethodSymbol disposeMethodFromPattern) 165(INamedTypeSymbol?, IMethodSymbol?) GetIDisposableInterfaceAndDisposeMethod(string typeName, string methodName) 168return (disposableType, disposableType?.GetMembers().OfType<IMethodSymbol>().FirstOrDefault(m => m.Parameters.Length == 0 && m.Name == methodName)); 216public IMethodSymbol? GetGetAwaiterMethod(SemanticModel semanticModel, SyntaxNode node) 219public ImmutableArray<IMethodSymbol> GetDeconstructionAssignmentMethods(SemanticModel semanticModel, SyntaxNode node) 222public ImmutableArray<IMethodSymbol> GetDeconstructionForEachMethods(SemanticModel semanticModel, SyntaxNode node) 249public ImmutableArray<IMethodSymbol> GetLocalFunctionSymbols(Compilation compilation, ISymbol symbol, CancellationToken cancellationToken) 261public bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SemanticsFactsService\ISemanticFactsService.cs (1)
47IMethodSymbol? TryGetDisposeMethod(SemanticModel semanticModel, SyntaxNode node, CancellationToken cancellationToken);
Microsoft.CodeAnalysis.CSharp (163)
Binder\Semantics\Conversions\Conversion.cs (1)
1070public IMethodSymbol? MethodSymbol
Compilation\AwaitExpressionInfo.cs (6)
15public IMethodSymbol? GetAwaiterMethod { get; } 19public IMethodSymbol? GetResultMethod { get; } 39public IMethodSymbol? RuntimeAwaitMethod { get; } 41internal AwaitExpressionInfo(IMethodSymbol? getAwaiter, IPropertySymbol? isCompleted, IMethodSymbol? getResult, IMethodSymbol? runtimeAwaitMethod, bool isDynamic)
Compilation\CSharpCompilation.cs (5)
605internal override void ValidateDebugEntryPoint(IMethodSymbol debugEntryPoint, DiagnosticBag diagnostics) 3575IMethodSymbol? debugEntryPoint, 4436protected override IMethodSymbol CommonCreateBuiltinOperator( 4662protected override IMethodSymbol CommonCreateBuiltinOperator( 4748protected override IMethodSymbol? CommonGetEntryPoint(CancellationToken cancellationToken)
Compilation\CSharpSemanticModel.cs (6)
2953public abstract IMethodSymbol GetDeclaredSymbol(LocalFunctionStatementSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)); 2961public abstract IMethodSymbol GetDeclaredSymbol(CompilationUnitSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)); 3017public abstract IMethodSymbol GetDeclaredSymbol(BaseMethodDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)); 3154public abstract IMethodSymbol GetDeclaredSymbol(AccessorDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)); 3162public abstract IMethodSymbol GetDeclaredSymbol(ArrowExpressionClauseSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)); 5255public IMethodSymbol? GetInterceptorMethod(InvocationExpressionSyntax node, CancellationToken cancellationToken)
Compilation\DeconstructionInfo.cs (1)
34public IMethodSymbol? Method
Compilation\ForEachStatementInfo.cs (6)
23public IMethodSymbol? GetEnumeratorMethod { get; } 28public IMethodSymbol? MoveNextMethod { get; } 43public IMethodSymbol? DisposeMethod { get; } 76IMethodSymbol getEnumeratorMethod, 77IMethodSymbol moveNextMethod, 80IMethodSymbol disposeMethod,
Compilation\MemberSemanticModel.cs (6)
629public override IMethodSymbol GetDeclaredSymbol(LocalFunctionStatementSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 641public override IMethodSymbol GetDeclaredSymbol(CompilationUnitSyntax declarationSyntax, CancellationToken cancellationToken = default) 646public override IMethodSymbol GetDeclaredSymbol(BaseMethodDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 676public override IMethodSymbol GetDeclaredSymbol(AccessorDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 682public override IMethodSymbol GetDeclaredSymbol(ArrowExpressionClauseSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 968getAwaiter: (IMethodSymbol?)awaitableInfo.GetAwaiter?.ExpressionSymbol.GetPublicSymbol(),
Compilation\QueryClauseInfo.cs (3)
29/// The operation, when present is implemented via <see cref="IMethodSymbol"/>. 30/// To access the type, when this is non-null use <see cref="IMethodSymbol.TypeArguments"/>[0]. 42/// The clause can be implemented via <see cref="IMethodSymbol"/>, or
Compilation\SpeculativeSemanticModelWithMemberModel.cs (5)
280public override IMethodSymbol GetDeclaredSymbol(LocalFunctionStatementSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 290public override IMethodSymbol GetDeclaredSymbol(CompilationUnitSyntax declarationSyntax, CancellationToken cancellationToken = default) 295public override IMethodSymbol GetDeclaredSymbol(BaseMethodDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 320public override IMethodSymbol GetDeclaredSymbol(AccessorDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 325public override IMethodSymbol GetDeclaredSymbol(ArrowExpressionClauseSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken))
Compilation\SyntaxTreeSemanticModel.cs (6)
1493public override IMethodSymbol GetDeclaredSymbol(CompilationUnitSyntax declarationSyntax, CancellationToken cancellationToken = default) 1506public override IMethodSymbol GetDeclaredSymbol(LocalFunctionStatementSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 1533public override IMethodSymbol GetDeclaredSymbol(BaseMethodDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 1594public override IMethodSymbol GetDeclaredSymbol(AccessorDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 1624public override IMethodSymbol GetDeclaredSymbol(ArrowExpressionClauseSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 2085method = (GetDeclaredSymbol(memberDecl, cancellationToken) as IMethodSymbol).GetSymbol();
CSharpExtensions.cs (5)
1375public static IMethodSymbol? GetDeclaredSymbol(this SemanticModel? semanticModel, CompilationUnitSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 1433public static IMethodSymbol? GetDeclaredSymbol(this SemanticModel? semanticModel, BaseMethodDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 1514public static IMethodSymbol? GetDeclaredSymbol(this SemanticModel? semanticModel, AccessorDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 1651public static IMethodSymbol? GetDeclaredSymbol(this SemanticModel? semanticModel, LocalFunctionStatementSyntax node, CancellationToken cancellationToken = default(CancellationToken)) 1661public static IMethodSymbol? GetInterceptorMethod(this SemanticModel? semanticModel, InvocationExpressionSyntax node, CancellationToken cancellationToken = default)
Emitter\Model\FunctionPointerTypeSymbolAdapter.cs (1)
61/// <see cref="FunctionPointerMethodSignature"/>, to hide its implementation of <see cref="IMethodSymbol"/>.
FlowAnalysis\CSharpDataFlowAnalysis.cs (3)
40private ImmutableArray<IMethodSymbol> _usedLocalFunctions; 344public override ImmutableArray<IMethodSymbol> UsedLocalFunctions 395private static ImmutableArray<IMethodSymbol> Normalize(IEnumerable<MethodSymbol> data)
Operations\CSharpOperationFactory.cs (8)
1011IMethodSymbol symbol = boundLambda.Symbol.GetPublicSymbol(); 1024IMethodSymbol symbol = boundLocalFunctionStatement.Symbol.GetPublicSymbol(); 1440IMethodSymbol? operatorMethod = method.GetPublicSymbol(); 1467IMethodSymbol? operatorMethod = boundIncrementOperator.MethodOpt.GetPublicSymbol(); 1510IMethodSymbol? operatorMethod = boundUnaryOperator.MethodOpt.GetPublicSymbol(); 1561IMethodSymbol operatorMethod = boundBinaryOperator.LogicalOperator.GetPublicSymbol(); 1562IMethodSymbol unaryOperatorMethod = boundBinaryOperator.OperatorKind.Operator() == CSharp.BinaryOperatorKind.And ? 2143legacyMode ? null : new SynthesizedLocal((_semanticModel.GetEnclosingSymbol(boundLockStatement.Syntax.SpanStart) as IMethodSymbol).GetSymbol(),
src\roslyn\src\Compilers\CSharp\CSharpAnalyzerDriver\CSharpDeclarationComputer.cs (3)
103if (associatedSymbol is IMethodSymbol ctor) 331if (associatedSymbol is IMethodSymbol) 408var declaredAccessor = getSymbol ? (model.GetDeclaredSymbol(declarationWithExpressionBody, cancellationToken) as IPropertySymbol)?.GetMethod : null;
SymbolDisplay\SymbolDisplayVisitor.cs (1)
388return ((IMethodSymbol)symbol).MethodKind == MethodKind.LocalFunction;
SymbolDisplay\SymbolDisplayVisitor.Members.cs (14)
106var getMethod = property.GetMethod; 112var setMethod = property.SetMethod; 121private static bool ShouldMethodDisplayReadOnly(IMethodSymbol method, IPropertySymbol? propertyOpt = null) 194private static bool IsInitOnly([NotNullWhen(true)] IMethodSymbol? symbol) 235var accessor = symbol.AddMethod ?? symbol.RemoveMethod; 278public override void VisitMethod(IMethodSymbol symbol) 583void visitFunctionPointerSignature(IMethodSymbol symbol) 688void addUserDefinedOperatorName(IMethodSymbol symbol, SyntaxKind operatorKind, string operatorName) 732void addUserDefinedConversionName(IMethodSymbol symbol, SyntaxKind conversionKind, string operatorName) 753private static SymbolDisplayPartKind GetPartKindForConstructorOrDestructor(IMethodSymbol symbol) 764private void AddReturnType(IMethodSymbol symbol) 769private void AddTypeParameterConstraints(IMethodSymbol symbol) 777private void AddParameters(IMethodSymbol symbol) 1032private void AddAccessor(IPropertySymbol property, IMethodSymbol? method, SyntaxKind keyword)
SymbolDisplay\SymbolDisplayVisitor.Types.cs (3)
258var invokeMethod = symbol.DelegateInvokeMethod; 499var method = symbol.DelegateInvokeMethod; 831typeArguments = ((IMethodSymbol)owner).TypeArguments;
Symbols\Attributes\AttributeData.cs (2)
195/// Gets the constructor used in this application of the attribute as an <see cref="IMethodSymbol"/>. 197protected override IMethodSymbol? CommonAttributeConstructor
Symbols\PublicModel\EventSymbol.cs (3)
40IMethodSymbol? IEventSymbol.AddMethod 48IMethodSymbol? IEventSymbol.RemoveMethod 56IMethodSymbol? IEventSymbol.RaiseMethod
Symbols\PublicModel\FunctionPointerTypeSymbol.cs (1)
21public IMethodSymbol Signature => _underlying.Signature.GetPublicSymbol();
Symbols\PublicModel\LabelSymbol.cs (1)
21IMethodSymbol ILabelSymbol.ContainingMethod
Symbols\PublicModel\MethodSymbol.cs (60)
34MethodKind IMethodSymbol.MethodKind 80ITypeSymbol IMethodSymbol.ReturnType 93CodeAnalysis.NullableAnnotation IMethodSymbol.ReturnNullableAnnotation 101ImmutableArray<ITypeSymbol> IMethodSymbol.TypeArguments 112ImmutableArray<CodeAnalysis.NullableAnnotation> IMethodSymbol.TypeArgumentNullableAnnotations => 115ImmutableArray<ITypeParameterSymbol> IMethodSymbol.TypeParameters 123ImmutableArray<IParameterSymbol> IMethodSymbol.Parameters 134IMethodSymbol IMethodSymbol.ConstructedFrom 142bool IMethodSymbol.IsReadOnly 150bool IMethodSymbol.IsInitOnly 158IMethodSymbol IMethodSymbol.OriginalDefinition 166IMethodSymbol IMethodSymbol.OverriddenMethod 174ITypeSymbol IMethodSymbol.ReceiverType 187CodeAnalysis.NullableAnnotation IMethodSymbol.ReceiverNullableAnnotation => _underlying.ReceiverNullableAnnotation; 189IMethodSymbol IMethodSymbol.ReducedFrom 197ITypeSymbol IMethodSymbol.GetTypeInferredDuringReduction(ITypeParameterSymbol reducedFromTypeParameter) 205IMethodSymbol? IMethodSymbol.ReduceExtensionMethod(ITypeSymbol receiverType) 212IMethodSymbol? IMethodSymbol.ReduceExtensionMember(ITypeSymbol receiverType) 217return (IMethodSymbol?)SourceNamedTypeSymbol.ReduceExtensionMember(compilation: null, _underlying, csharpReceiver, wasExtensionFullyInferred: out _).GetPublicSymbol(); 224ImmutableArray<IMethodSymbol> IMethodSymbol.ExplicitInterfaceImplementations 232ISymbol IMethodSymbol.AssociatedSymbol 240bool IMethodSymbol.IsGenericMethod 248bool IMethodSymbol.IsAsync 256bool IMethodSymbol.HidesBaseMethodsByName 264ImmutableArray<CustomModifier> IMethodSymbol.ReturnTypeCustomModifiers 272ImmutableArray<CustomModifier> IMethodSymbol.RefCustomModifiers 280ImmutableArray<AttributeData> IMethodSymbol.GetReturnTypeAttributes() 285SignatureCallingConvention IMethodSymbol.CallingConvention => _underlying.CallingConvention.ToSignatureConvention(); 287ImmutableArray<INamedTypeSymbol> IMethodSymbol.UnmanagedCallingConventionTypes => _underlying.UnmanagedCallingConventionTypes.SelectAsArray(t => t.GetPublicSymbol()); 289IMethodSymbol IMethodSymbol.Construct(params ITypeSymbol[] typeArguments) 294IMethodSymbol IMethodSymbol.Construct(ImmutableArray<ITypeSymbol> typeArguments, ImmutableArray<CodeAnalysis.NullableAnnotation> typeArgumentNullableAnnotations) 299IMethodSymbol IMethodSymbol.PartialImplementationPart 307IMethodSymbol IMethodSymbol.PartialDefinitionPart 315bool IMethodSymbol.IsPartialDefinition => _underlying.IsDefinition && _underlying.IsPartialDefinition(); 317INamedTypeSymbol IMethodSymbol.AssociatedAnonymousDelegate 325int IMethodSymbol.Arity => _underlying.Arity; 327bool IMethodSymbol.IsExtensionMethod => _underlying.IsExtensionMethod; 329System.Reflection.MethodImplAttributes IMethodSymbol.MethodImplementationFlags => _underlying.ImplementationAttributes; 331bool IMethodSymbol.IsVararg => _underlying.IsVararg; 333bool IMethodSymbol.IsCheckedBuiltin => _underlying.IsCheckedBuiltin; 335bool IMethodSymbol.ReturnsVoid => _underlying.ReturnsVoid; 337bool IMethodSymbol.ReturnsByRef => _underlying.ReturnsByRef; 339bool IMethodSymbol.ReturnsByRefReadonly => _underlying.ReturnsByRefReadonly; 341RefKind IMethodSymbol.RefKind => _underlying.RefKind; 343bool IMethodSymbol.IsConditional => _underlying.IsConditional; 345bool IMethodSymbol.IsIterator => _underlying.IsIterator; 347DllImportData IMethodSymbol.GetDllImportData() => _underlying.GetDllImportData(); 350IMethodSymbol? IMethodSymbol.AssociatedExtensionImplementation
Symbols\PublicModel\NamedTypeSymbol.cs (4)
32ImmutableArray<IMethodSymbol> INamedTypeSymbol.InstanceConstructors 40ImmutableArray<IMethodSymbol> INamedTypeSymbol.StaticConstructors 48ImmutableArray<IMethodSymbol> INamedTypeSymbol.Constructors 107IMethodSymbol INamedTypeSymbol.DelegateInvokeMethod
Symbols\PublicModel\PropertySymbol.cs (2)
51IMethodSymbol IPropertySymbol.GetMethod 56IMethodSymbol IPropertySymbol.SetMethod
Symbols\PublicModel\TypeParameterSymbol.cs (1)
52IMethodSymbol ITypeParameterSymbol.DeclaringMethod
Symbols\Symbol.cs (1)
573/// Even for metadata symbols, <see cref="IsOverride"/> = true does not imply that <see cref="IMethodSymbol.OverriddenMethod"/> will
Symbols\SymbolExtensions.cs (5)
557internal static IMethodSymbol? GetPublicSymbol(this MethodSymbol? symbol) 559return symbol.GetPublicSymbol<IMethodSymbol>(); 732internal static ImmutableArray<IMethodSymbol> GetPublicSymbols(this ImmutableArray<MethodSymbol> symbols) 734return GetPublicSymbols<IMethodSymbol>(StaticCast<Symbol>.From(symbols)); 796internal static MethodSymbol? GetSymbol(this IMethodSymbol? symbol)
Microsoft.CodeAnalysis.CSharp.Analyzers (5)
MetaAnalyzers\CSharpSemanticModelGetDeclaredSymbolAlwaysReturnsNullAnalyzer.cs (5)
52IMethodSymbol? getDeclaredSymbolMethod; 58|| (getDeclaredSymbolMethod = (IMethodSymbol?)modelExtensions.GetMembers(nameof(ModelExtensions.GetDeclaredSymbol)).FirstOrDefault(m => m is IMethodSymbol { Parameters.Length: >= 2 })) is null) 64.OfType<IMethodSymbol>() 74IMethodSymbol getDeclaredSymbolMethod,
Microsoft.CodeAnalysis.CSharp.CodeStyle (131)
src\roslyn\src\Analyzers\CSharp\Analyzers\ConvertProgram\ConvertProgramAnalysis_TopLevelStatements.cs (2)
77var entryPointMethod = semanticModel.Compilation.GetEntryPoint(cancellationToken); 81var thisMethod = semanticModel.GetDeclaredSymbol(methodDeclaration);
src\roslyn\src\Analyzers\CSharp\Analyzers\InvokeDelegateWithConditionalAccess\InvokeDelegateWithConditionalAccessAnalyzer.cs (1)
283if (initializerSymbol is IMethodSymbol)
src\roslyn\src\Analyzers\CSharp\Analyzers\MakeStructFieldsWritable\CSharpMakeStructFieldsWritableDiagnosticAnalyzer.cs (1)
87if (context.OwningSymbol is IMethodSymbol { MethodKind: MethodKind.Constructor })
src\roslyn\src\Analyzers\CSharp\Analyzers\MakeStructMemberReadOnly\CSharpMakeStructMemberReadOnlyAnalyzer.cs (10)
44var methodToDiagnostic = PooledDictionary<IMethodSymbol, Diagnostic>.GetInstance(); 81if (member is not IMethodSymbol method) 100SymbolAnalysisContext context, ReportDiagnostic severity, PooledDictionary<IMethodSymbol, Diagnostic> methodToDiagnostic) 133Dictionary<IMethodSymbol, Diagnostic> methodToDiagnostic) 137if (context.OwningSymbol is not IMethodSymbol owningMethod) 170IMethodSymbol owningMethod, 214IMethodSymbol owningMethod, 262IMethodSymbol owningMethod, 377IMethodSymbol owningMethod, 379IMethodSymbol methodReference)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryAsyncModifier\CSharpMakeMethodSynchronousDiagnosticAnalyzer.cs (3)
35protected static bool IsInterfaceImplementationOrOverride(IMethodSymbol methodSymbol) 159var methodSymbol = semanticModel.GetRequiredDeclaredSymbol(methodDeclaration, cancellationToken); 183var methodSymbol = semanticModel.GetRequiredDeclaredSymbol(methodDeclaration, cancellationToken);
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryLambdaExpression\CSharpRemoveUnnecessaryLambdaExpressionDiagnosticAnalyzer.cs (7)
126if (lambdaSymbolInfo.Symbol is not IMethodSymbol lambdaMethod) 130if (invokedSymbolInfo.Symbol is not IMethodSymbol invokedMethod) 212if (rewrittenSymbolInfo.Symbol is not IMethodSymbol rewrittenMethod || 252var method1 = semanticModel1.GetSymbolInfo(node1, cancellationToken).Symbol as IMethodSymbol; 253var method2 = semanticModel2.GetSymbolInfo(node2, cancellationToken).Symbol as IMethodSymbol;
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnusedParametersAndValues\CSharpRemoveUnusedParametersAndValuesDiagnosticAnalyzer.cs (1)
32protected override bool MethodHasHandlesClause(IMethodSymbol method)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseAutoProperty\CSharpUseAutoPropertyAnalyzer.cs (4)
171protected override ExpressionSyntax? GetGetterExpression(IMethodSymbol getMethod, CancellationToken cancellationToken) 188private static ExpressionSyntax? GetGetterExpressionFromSymbol(IMethodSymbol getMethod, CancellationToken cancellationToken) 205SemanticModel semanticModel, IMethodSymbol setMethod, CancellationToken cancellationToken) 240IMethodSymbol accessor,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForBuilderDiagnosticAnalyzer.cs (1)
126if (createSymbol is not IMethodSymbol { IsStatic: true } createMethod)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForNewDiagnosticAnalyzer.cs (2)
55if (symbol is not IMethodSymbol { MethodKind: MethodKind.Constructor, Parameters: [var constructorParameter] } || 83.OfType<IMethodSymbol>()
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\UseCollectionExpressionHelpers.cs (8)
337var containingMethod = semanticModel.GetEnclosingSymbol<IMethodSymbol>(expression.SpanStart, cancellationToken); 432if (semanticModel.GetSymbolInfo(invocationExpression, cancellationToken).Symbol is not IMethodSymbol method) 455if (methodOrProperty is not IMethodSymbol and not IPropertySymbol) 550if (parameter.ContainingSymbol is not IMethodSymbol method) 894if (semanticModel.GetSymbolInfo(memberAccessExpression, cancellationToken).Symbol is not IMethodSymbol { IsStatic: true } createMethod) 928IMethodSymbol originalCreateMethod, 1162if (emptySymbol is not IMethodSymbol)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionInitializer\CSharpUseCollectionInitializerAnalyzer.cs (2)
98if (this.SemanticModel.GetSymbolInfo(_objectCreationExpression, cancellationToken).Symbol is not IMethodSymbol 130if (this.SemanticModel.GetSymbolInfo(_objectCreationExpression, cancellationToken).Symbol is not IMethodSymbol
src\roslyn\src\Analyzers\CSharp\Analyzers\UseExpressionBody\Helpers\UseExpressionBodyForLocalFunctionHelper.cs (2)
60var symbol = semanticModel.GetDeclaredSymbol(statement, cancellationToken); 61return symbol is IMethodSymbol { ReturnType: INamedTypeSymbol { Arity: not 0 } };
src\roslyn\src\Analyzers\CSharp\Analyzers\UseExpressionBody\Helpers\UseExpressionBodyForMethodsHelper.cs (1)
58var method = semanticModel.GetDeclaredSymbol(declaration, cancellationToken);
src\roslyn\src\Analyzers\CSharp\Analyzers\UseImplicitlyTypedLambdaExpression\CSharpUseImplicitlyTypedLambdaExpressionDiagnosticAnalyzer.cs (2)
89if (semanticModel.GetSymbolInfo(explicitLambda, cancellationToken).Symbol is not IMethodSymbol explicitLambdaMethod || 90analyzer.SpeculativeSemanticModel.GetSymbolInfo(analyzer.ReplacedExpression, cancellationToken).Symbol is not IMethodSymbol implicitLambdaMethod)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseIndexOperatorDiagnosticAnalyzer.cs (2)
160IMethodSymbol? targetMethod, 214private static IPropertySymbol? TryGetLengthLikeProperty(InfoCache infoCache, IMethodSymbol? targetMethod)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseIndexOperatorDiagnosticAnalyzer.InfoCache.cs (4)
35private readonly ConcurrentDictionary<IMethodSymbol, MemberInfo> _methodToMemberInfo = new(); 56public bool TryGetMemberInfo(IMethodSymbol methodSymbol, out MemberInfo memberInfo) 68private MemberInfo ComputeMemberInfo(IMethodSymbol method) 96var overloadedIndexMethod = GetOverload(method, IndexType);
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseRangeOperatorDiagnosticAnalyzer.cs (6)
118var targetMethod = invocation.TargetMethod; 144var targetMethod = invocation.TargetMethod; 162IMethodSymbol targetMethod, 225IMethodSymbol targetMethod) 274IMethodSymbol targetMethod) 302private static bool IsValidIndexing(IInvocationOperation invocation, InfoCache infoCache, IMethodSymbol targetMethod)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseRangeOperatorDiagnosticAnalyzer.InfoCache.cs (15)
31private readonly ConcurrentDictionary<IMethodSymbol, MemberInfo> _methodToMemberInfo = new(); 45var substringMethod = stringType 47.OfType<IMethodSymbol>() 55var removeMethod = stringType 57.OfType<IMethodSymbol>() 79private static IMethodSymbol? GetSliceLikeMethod(INamedTypeSymbol namedType) 81.OfType<IMethodSymbol>() 85public bool TryGetMemberInfo(IMethodSymbol method, out MemberInfo memberInfo) 97public bool TryGetMemberInfoOneArgument(IMethodSymbol method, out MemberInfo memberInfo) 110var overloadWithTwoArguments = method.ContainingType 112.OfType<IMethodSymbol>() 130private MemberInfo ComputeMemberInfo(IMethodSymbol sliceLikeMethod, bool requireRangeMember) 160var actualSliceMethod = 162.OfType<IMethodSymbol>() 172var overloadedRangeMethod = GetOverload(sliceLikeMethod, RangeType);
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseRangeOperatorDiagnosticAnalyzer.Result.cs (2)
29IMethodSymbol sliceLikeMethod, 37public readonly IMethodSymbol SliceLikeMethod = sliceLikeMethod;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\Helpers.cs (7)
15public static bool IsStringRemoveMethod(IMethodSymbol method) 69public static bool IsIntIndexingMethod(IMethodSymbol method) 85public static bool IsTwoArgumentSliceLikeMethod(IMethodSymbol method) 103public static bool IsOneArgumentSliceLikeMethod(IMethodSymbol method) 143public static IMethodSymbol? GetOverload(IMethodSymbol method, ITypeSymbol parameterType) 147.OfType<IMethodSymbol>()
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\MemberInfo.cs (2)
11IMethodSymbol? overloadedMethod) 23public readonly IMethodSymbol? OverloadedMethod = overloadedMethod;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseNullPropagation\CSharpUseNullPropagationDiagnosticAnalyzer.cs (1)
109IMethodSymbol? referenceEqualsMethod,
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePrimaryConstructor\CSharpUsePrimaryConstructorDiagnosticAnalyzer.cs (3)
288if (!TryFindPrimaryConstructorCandidate(namedType, out var primaryConstructor, out var primaryConstructorDeclaration)) 341[NotNullWhen(true)] out IMethodSymbol? primaryConstructor, 349foreach (var constructor in constructors)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\CodeStyle\TypeStyle\TypeStyleHelper.cs (4)
102if (semanticModel.GetSymbolInfo(memberName, cancellationToken).Symbol is not IMethodSymbol methodSymbol) 117IMethodSymbol methodSymbol, 138IMethodSymbol methodSymbol, 171private static bool IsPossibleConversionMethod(IMethodSymbol methodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (2)
370if (symbol is IMethodSymbol 535return symbolInfo.GetBestOrAllSymbols().Any() && !symbolInfo.GetBestOrAllSymbols().Any(static s => s is IMethodSymbol);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ITypeSymbolExtensions.cs (1)
40public static bool TryGetPrimaryConstructor(this INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (4)
442if (semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken).Symbol is IMethodSymbol member && index < member.Parameters.Length) 465public static IMethodSymbol GetRequiredDeclaredSymbol(this SemanticModel semanticModel, ConstructorDeclarationSyntax syntax, CancellationToken cancellationToken) 471public static IMethodSymbol GetRequiredDeclaredSymbol(this SemanticModel semanticModel, LocalFunctionStatementSyntax syntax, CancellationToken cancellationToken) 489public static IMethodSymbol GetRequiredDeclaredSymbol(this SemanticModel semanticModel, BaseMethodDeclarationSyntax syntax, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SyntaxNodeExtensions.cs (1)
813if (symbol is IMethodSymbol { Parameters: [{ Type.OriginalDefinition: var parameterType }, ..] } &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SemanticFacts\CSharpSemanticFacts.cs (15)
76if (symbol is IMethodSymbol { MethodKind: MethodKind.Conversion }) 195public IMethodSymbol? GetGetAwaiterMethod(SemanticModel semanticModel, SyntaxNode node) 206public ImmutableArray<IMethodSymbol> GetDeconstructionAssignmentMethods(SemanticModel semanticModel, SyntaxNode node) 210using var builder = TemporaryArray<IMethodSymbol>.Empty; 218public ImmutableArray<IMethodSymbol> GetDeconstructionForEachMethods(SemanticModel semanticModel, SyntaxNode node) 222using var builder = TemporaryArray<IMethodSymbol>.Empty; 230private static void FlattenDeconstructionMethods(DeconstructionInfo deconstruction, ref TemporaryArray<IMethodSymbol> builder) 232var method = deconstruction.Method; 396symbolInfo.CandidateSymbols.All(static s => s is IMethodSymbol)) 421var refined = overloadResolution.RefineOverload(symbolInfo, symbolInfo.CandidateSymbols.SelectAsArray(s => (IMethodSymbol)s)); 434public ImmutableArray<IMethodSymbol> GetLocalFunctionSymbols(Compilation compilation, ISymbol symbol, CancellationToken cancellationToken) 436using var _ = ArrayBuilder<IMethodSymbol>.GetInstance(out var builder); 445if (localFunctionSymbol is IMethodSymbol methodSymbol) 484public bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (8)
745if (memberSymbol is not IMethodSymbol methodSymbol) 752for (var current = methodSymbol; current != null; current = current.OverriddenMethod) 1111if (sym is IMethodSymbol { MethodKind: MethodKind.UserDefinedOperator } op) 1375if (oldSymbolInfo is IMethodSymbol { MethodKind: not (MethodKind.LocalFunction or MethodKind.LambdaMethod) } && 1545if (originalMemberSymbol is not IMethodSymbol { MethodKind: MethodKind.DelegateInvoke } originalMethodSymbol || 1546rewrittenMemberSymbol is not IMethodSymbol { MethodKind: MethodKind.DelegateInvoke } rewrittenMethodSymbol) 1620if (originalMemberSymbol is IMethodSymbol originalMethodSymbol && 1621rewrittenMemberSymbol is IMethodSymbol rewrittenMethodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\CSharpLightweightOverloadResolution.cs (5)
18public IMethodSymbol? RefineOverload(SymbolInfo symbolInfo, ImmutableArray<IMethodSymbol> candidates) 21public (IMethodSymbol? method, int parameterIndex) RefineOverloadAndPickParameter(SymbolInfo symbolInfo, ImmutableArray<IMethodSymbol> candidates) 24public int FindParameterIndexIfCompatibleMethod(IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (1)
888out IMethodSymbol getEnumeratorMethod,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseImplicitTypeHelper.cs (1)
213if (memberGroup[0] is not IMethodSymbol { TypeParameters.IsEmpty: true } method)
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (134)
src\4f0789c9734b88bf\CSharpInitializeParameterService.cs (1)
25protected override SyntaxNode? GetAccessorBody(IMethodSymbol accessor, CancellationToken cancellationToken)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddParameter\CSharpAddParameterCodeFixProvider.cs (1)
63if (semanticModel.GetDeclaredSymbol(constructorDeclaration, cancellationToken) is IMethodSymbol constructorSymbol)
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToAsync\CSharpConvertToAsyncMethodCodeFixProvider.cs (1)
71if (semanticModel.GetSymbolInfo(invocationExpression, cancellationToken).Symbol is not IMethodSymbol methodSymbol)
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToRecord\ConvertToRecordEngine.cs (3)
155var constructorSymbol = semanticModel.GetRequiredDeclaredSymbol(constructor, cancellationToken); 221var methodSymbol = semanticModel.GetRequiredDeclaredSymbol(method, cancellationToken); 347var constructorSymbol = semanticModel.GetRequiredDeclaredSymbol(constructor, cancellationToken);
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToRecord\ConvertToRecordHelpers.cs (10)
24IMethodSymbol methodSymbol, 45TargetMethod: IMethodSymbol { Name: nameof(Equals) }, 76IMethodSymbol methodSymbol, 375Constructor: IMethodSymbol { IsImplicitlyDeclared: true } 494IMethodSymbol methodSymbol) 1099private static bool OverridesEquals(Compilation compilation, IMethodSymbol equals, INamedTypeSymbol? equatableType) 1102equatableType.GetMembers(nameof(Equals)).FirstOrDefault() is IMethodSymbol equatableEquals && 1109var objectEquals = objectType?.GetMembers(nameof(Equals)).FirstOrDefault() as IMethodSymbol; 1110var curr = equals;
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToRecord\PositionalParameterInfo.cs (4)
56.Any(symbol => symbol.SetMethod is IMethodSymbol { IsInitOnly: true }); 79if (baseType != null && baseType.TryGetPrimaryConstructor(out var basePrimary)) 159var getAccessor = propertySymbol.GetMethod; 160var setAccessor = propertySymbol.SetMethod;
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateConstructor\CSharpGenerateConstructorService.cs (4)
182protected override IMethodSymbol? GetCurrentConstructor(SemanticModel semanticModel, SyntaxToken token, CancellationToken cancellationToken) 185protected override IMethodSymbol? GetDelegatedConstructor(SemanticModel semanticModel, IMethodSymbol constructor, CancellationToken cancellationToken) 190return semanticModel.GetSymbolInfo(constructorDeclarationSyntax.Initializer, cancellationToken).Symbol as IMethodSymbol;
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateConversionService.cs (6)
59[NotNullWhen(true)] out IMethodSymbol? methodSymbol, 85[NotNullWhen(true)] out IMethodSymbol? methodSymbol, 110[NotNullWhen(true)] out IMethodSymbol? methodSymbol, 138[NotNullWhen(true)] out IMethodSymbol? methodSymbol, 169[NotNullWhen(true)] out IMethodSymbol? methodSymbol, 195private static IMethodSymbol GenerateMethodSymbol(
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateMethodService.cs (1)
51[NotNullWhen(true)] out IMethodSymbol? methodSymbol,
src\roslyn\src\Analyzers\CSharp\CodeFixes\ImplementInterface\CSharpImplementInterfaceService.cs (1)
30protected override string ToDisplayString(IMethodSymbol disposeImplMethod, SymbolDisplayFormat format)
src\roslyn\src\Analyzers\CSharp\CodeFixes\Iterator\CSharpAddYieldCodeFixProvider.cs (1)
108if (symbol is not IMethodSymbol method || method.ReturnsVoid)
src\roslyn\src\Analyzers\CSharp\CodeFixes\Iterator\CSharpChangeToIEnumerableCodeFixProvider.cs (2)
39var methodSymbol = model.GetDeclaredSymbol(node, cancellationToken) as IMethodSymbol;
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeLocalFunctionStatic\MakeLocalFunctionStaticCodeFixHelper.cs (1)
47var localFunctionSymbol = semanticModel.GetRequiredDeclaredSymbol(localFunction, cancellationToken);
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeMemberRequired\CSharpMakeMemberRequiredCodeFixProvider.cs (1)
66var setMethod = propertySymbol.SetMethod;
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeMethodAsynchronous\CSharpMakeMethodAsynchronousCodeFixProvider.cs (4)
77IMethodSymbol methodSymbol, 97IMethodSymbol methodSymbol, 116IMethodSymbol methodSymbol, 128IMethodSymbol methodSymbol,
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeMethodSynchronous\CSharpMakeMethodSynchronousCodeFixProvider.cs (4)
33protected override SyntaxNode RemoveAsyncTokenAndFixReturnType(IMethodSymbol methodSymbol, SyntaxNode node, KnownTaskTypes knownTypes) 44private static SyntaxNode FixMethod(IMethodSymbol methodSymbol, MethodDeclarationSyntax method, KnownTaskTypes knownTypes) 50private static SyntaxNode FixLocalFunction(IMethodSymbol methodSymbol, LocalFunctionStatementSyntax localFunction, KnownTaskTypes knownTypes) 56private static TypeSyntax FixMethodReturnType(IMethodSymbol methodSymbol, TypeSyntax returnTypeSyntax, KnownTaskTypes knownTypes)
src\roslyn\src\Analyzers\CSharp\CodeFixes\Nullable\CSharpDeclareAsNullableCodeFixProvider.cs (2)
215if (symbol is not IMethodSymbol method || method.PartialImplementationPart is not null) 304parameterSymbol.ContainingSymbol is IMethodSymbol method &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseExplicitArrayInExpressionTree\CSharpUseExplicitArrayInExpressionTreeCodeFixProvider.cs (4)
36if (semanticModel.GetSymbolInfo(invocationExpression, cancellationToken).Symbol is not IMethodSymbol originalMethod || 47if (symbol is IMethodSymbol currentMethod && 78static bool ParameterTypesMatch(IMethodSymbol originalMethod, IMethodSymbol currentMethod)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseLocalFunction\CSharpUseLocalFunctionCodeFixProvider.cs (5)
157IMethodSymbol delegateMethod, ParameterListSyntax parameterList, bool makeStatic) 204IMethodSymbol delegateMethod, 270AnonymousFunctionExpressionSyntax anonymousFunction, IMethodSymbol delegateMethod) 314private static InvocationExpressionSyntax WithNewParameterNames(InvocationExpressionSyntax invocation, IMethodSymbol method, ParameterListSyntax newParameterList) 339private static int TryDetermineParameterIndex(NameColonSyntax argumentNameColon, IMethodSymbol method)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePrimaryConstructor\CSharpUsePrimaryConstructorCodeFixProvider_DocComments.cs (2)
67IMethodSymbol constructor, 165IMethodSymbol constructor,
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePrimaryConstructor\CSharpUsePrimaryConstructorCodeFixProvider.cs (2)
122var constructor = semanticModel.GetRequiredDeclaredSymbol(constructorDeclaration, cancellationToken); 319IMethodSymbol or IPropertySymbol or IEventSymbol or IFieldSymbol =>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ConstructorGenerator.cs (5)
28IMethodSymbol constructor, 44IMethodSymbol constructor, 90IMethodSymbol constructor) 108IMethodSymbol constructor) 117private static SyntaxTokenList GenerateModifiers(IMethodSymbol constructor, CSharpCodeGenerationContextInfo info)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ConversionGenerator.cs (4)
24IMethodSymbol method, 36IMethodSymbol method, 47IMethodSymbol method, 103private static SyntaxTokenList GenerateModifiers(IMethodSymbol method, CodeGenerationDestination destination)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpCodeGenerationService.cs (4)
115protected override TDeclarationNode AddMethod<TDeclarationNode>(TDeclarationNode destination, IMethodSymbol method, CSharpCodeGenerationContextInfo info, IList<bool>? availableIndices, CancellationToken cancellationToken) 199var getMethod = property.GetMethod; 214var setMethod = property.SetMethod; 673IMethodSymbol method, CodeGenerationDestination destination, CSharpCodeGenerationContextInfo info, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\DestructorGenerator.cs (3)
26IMethodSymbol destructor, 42IMethodSymbol destructor, CSharpCodeGenerationContextInfo info, CancellationToken cancellationToken) 66IMethodSymbol constructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\EventGenerator.cs (4)
173IMethodSymbol? accessor, 185IMethodSymbol accessor, 194private static BlockSyntax GenerateBlock(IMethodSymbol accessor) 203IMethodSymbol? accessor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\MethodGenerator.cs (12)
32IMethodSymbol method, 45IMethodSymbol method, 60IMethodSymbol method, 75IMethodSymbol method, CodeGenerationDestination destination, 93IMethodSymbol method, 112IMethodSymbol method, CodeGenerationDestination destination, 165IMethodSymbol method, CodeGenerationDestination destination, 220IMethodSymbol method, bool isExplicit, CSharpCodeGenerationContextInfo info) 231IMethodSymbol method) 238private static SyntaxList<TypeParameterConstraintClauseSyntax> GenerateDefaultConstraints(IMethodSymbol method) 312IMethodSymbol method, CSharpCodeGenerationContextInfo info) 318IMethodSymbol method,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\NamedTypeGenerator.cs (3)
114var primaryConstructor = members.OfType<IMethodSymbol>().FirstOrDefault(m => CodeGenerationConstructorInfo.GetIsPrimaryConstructor(m)); 232var invokeMethod = namedType.DelegateInvokeMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\OperatorGenerator.cs (4)
25IMethodSymbol method, 37IMethodSymbol method, 75IMethodSymbol method, 112IMethodSymbol method,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ParameterGenerator.cs (1)
80parameter.ContainingSymbol is IMethodSymbol methodSymbol &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\PropertyGenerator.cs (5)
293IMethodSymbol? accessor, 307IMethodSymbol accessor, 323private static BlockSyntax GenerateBlock(IMethodSymbol accessor) 332IMethodSymbol? accessor) 342IMethodSymbol accessor,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\StatementGenerator.cs (1)
17internal static BlockSyntax GenerateBlock(IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Editing\CSharpImportAdder.cs (2)
120if (member is IMethodSymbol method && method.IsExtensionMethod) 227if (symbol is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (4)
1043IMethodSymbol m => m.Arity > 0, 1051return symbols.All(static s => s is INamedTypeSymbol or IMethodSymbol); 2025while (enclosingSymbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction or MethodKind.AnonymousFunction } method) 2841if (symbol is IMethodSymbol && expression is not InvocationExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\TypeSyntaxExtensions.cs (1)
55public static TypeSyntax GenerateReturnTypeSyntax(this IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\WithElementSyntaxExtensions.cs (4)
17public static ImmutableArray<IMethodSymbol> GetCreationMethods( 37ImmutableArray<IMethodSymbol>? TryGetInterfaceItems() 56var constructor = constructedListType.InstanceConstructors.FirstOrDefault( 62ImmutableArray<IMethodSymbol>? TryGetCollectionBuilderItems()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSemanticFactsService.cs (1)
111public IMethodSymbol? TryGetDisposeMethod(SemanticModel semanticModel, SyntaxNode node, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (15)
112if (allSymbols is [IMethodSymbol method]) 396var methods = info.GetBestOrAllSymbols().OfType<IMethodSymbol>(); 480var methods = info.GetBestOrAllSymbols().OfType<IMethodSymbol>(); 488argumentOpt == null && info.Symbol is IMethodSymbol method && method.Parameters.All(p => p.IsOptional || p.IsParams)) 492.OfType<IMethodSymbol>(); 563var methods = info.GetBestOrAllSymbols().OfType<IMethodSymbol>(); 592private IEnumerable<TypeInferenceInfo> InferTypeInAttributeArgument(int index, IEnumerable<IMethodSymbol> methods, AttributeArgumentSyntax argumentOpt = null) 595private IEnumerable<TypeInferenceInfo> InferTypeInArgument(int index, IEnumerable<IMethodSymbol> methods, ArgumentSyntax argumentOpt, InvocationExpressionSyntax parentInvocationExpressionToTypeInfer) 620private static IMethodSymbol Instantiate(IMethodSymbol method, IList<ITypeSymbol> invocationTypes) 1391.Cast<IMethodSymbol>() 1409.Cast<IMethodSymbol>() 1499var addMethodParameterTypes = addMethodSymbols.Select(m => ((IMethodSymbol)m).Parameters[0]).Select(p => new TypeInferenceInfo(p.Type)); 1700var invoke = type.DelegateInvokeMethod; 2122var isAsync = symbol is IMethodSymbol methodSymbol && methodSymbol.IsAsync;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\InitializeParameter\InitializeParameterHelpers.cs (1)
252public static SyntaxNode? GetAccessorBody(IMethodSymbol accessor, CancellationToken cancellationToken)
Microsoft.CodeAnalysis.CSharp.Features (293)
ChangeSignature\CSharpChangeSignatureService.cs (4)
428symbolInfo.Symbol is IMethodSymbol { MethodKind: MethodKind.ReducedExtension }, 867IMethodSymbol symbol, 937protected override bool TryGetRecordPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor) 944namedTypeSymbol.TryGetPrimaryConstructor(out var primaryConstructor))
CodeRefactorings\ConvertLocalFunctionToMethod\CSharpConvertLocalFunctionToMethodCodeRefactoringProvider.cs (7)
72var declaredSymbol = semanticModel.GetRequiredDeclaredSymbol(localFunction, cancellationToken); 110var methodSymbol = CodeGenerationSymbolFactory.CreateMethodSymbol( 145var symbol = semanticModel.GetSymbolInfo(simpleName, cancellationToken).Symbol as IMethodSymbol; 255IMethodSymbol declaredSymbol, 259for (var containingMethod = declaredSymbol; containingMethod != null; containingMethod = containingMethod.ContainingSymbol as IMethodSymbol)
CodeRefactorings\InlineTemporary\InlineTemporaryCodeRefactoringProvider.cs (1)
196if (semanticModel.GetSymbolInfo(original, cancellationToken).Symbol is IMethodSymbol { IsConditional: true })
Completion\CompletionProviders\AwaitCompletionProvider.cs (2)
109var methodSymbol = semanticModel.GetDeclaredSymbol(methodDeclaration, cancellationToken); 110if (methodSymbol is not IMethodSymbol method)
Completion\CompletionProviders\CrefCompletionProvider.cs (1)
294(symbol is IMethodSymbol && groupCount >= 2))
Completion\CompletionProviders\DeclarationName\DeclarationNameRecommender.cs (5)
157.OfType<IMethodSymbol>() 317foreach (var overload in overloads) 332static ImmutableArray<IMethodSymbol> GetOverloads(INamedTypeSymbol namedType, BaseMethodDeclarationSyntax baseMethod) 336MethodDeclarationSyntax method => [.. namedType.GetMembers(method.Identifier.ValueText).OfType<IMethodSymbol>()], 337ConstructorDeclarationSyntax constructor => [.. namedType.GetMembers(WellKnownMemberNames.InstanceConstructorName).OfType<IMethodSymbol>()],
Completion\CompletionProviders\ExplicitInterfaceMemberCompletionProvider.ItemGetter.cs (4)
185IMethodSymbol methodSymbol => ToDisplayString(methodSymbol, semanticModel), 212private string ToDisplayString(IMethodSymbol symbol, SemanticModel semanticModel) 238private static void AppendOperatorKeywords(IMethodSymbol symbol, StringBuilder builder) 263private static void AddTypeArguments(IMethodSymbol symbol, StringBuilder builder)
Completion\CompletionProviders\NamedParameterCompletionProvider.cs (1)
230var methodGroup = semanticModel.GetMemberGroup(invocationExpression.Expression, cancellationToken).OfType<IMethodSymbol>();
Completion\CompletionProviders\OperatorsAndIndexer\UnnamedSymbolCompletionProvider_Conversions.cs (2)
40private static void AddConversion(CompletionContext context, SemanticModel semanticModel, int position, IMethodSymbol conversion) 60CompletionContext context, IMethodSymbol conversion)
Completion\CompletionProviders\OperatorsAndIndexer\UnnamedSymbolCompletionProvider.cs (1)
137AddConversion(context, semanticModel, position, (IMethodSymbol)symbol);
Completion\CompletionProviders\PartialMethodCompletionProvider.cs (3)
30protected override bool IncludeAccessibility(IMethodSymbol method, CancellationToken cancellationToken) 76protected override bool IsPartial(IMethodSymbol method) 134protected override string GetDisplayText(IMethodSymbol method, SemanticModel semanticModel, int position)
Completion\CompletionProviders\XmlDocCommentCompletionProvider.cs (1)
393if (namedTypeSymbol.TryGetPrimaryConstructor(out var primaryConstructor))
Completion\KeywordRecommenders\RefKeywordRecommender.cs (1)
102if (symbol is not IMethodSymbol methodSymbol)
ConvertLinq\ConvertForEachToLinqQuery\CSharpConvertForEachToLinqQueryProvider.cs (1)
244semanticModel.GetSymbolInfo(memberAccessExpression, cancellationToken).Symbol is IMethodSymbol methodSymbol &&
ConvertLinq\CSharpConvertLinqQueryToForEachProvider.cs (3)
301if (_semanticModel.GetSymbolInfo(invocationExpression, _cancellationToken).Symbol is IMethodSymbol methodSymbol && 340if (_semanticModel.GetSymbolInfo(invocationExpression, _cancellationToken).Symbol is IMethodSymbol methodSymbol && 740if (declaredSymbol is not IMethodSymbol methodSymbol)
ConvertProgram\ConvertProgramTransform_ProgramMain.cs (2)
36var mainMethod = compilation.GetTopLevelStatementsMethod(); 72IMethodSymbol mainMethod,
Debugging\BreakpointResolver.cs (1)
33protected override bool HasMethodBody(IMethodSymbol method, CancellationToken cancellationToken)
EditAndContinue\CSharpEditAndContinueAnalyzer.cs (23)
176=> member is IMethodSymbol { AssociatedSymbol: IPropertySymbol property } && property.IsSynthesizedAutoProperty(); 178protected override bool AreHandledEventsEqual(IMethodSymbol oldMethod, IMethodSymbol newMethod) 936if (symbol is not IMethodSymbol { MethodKind: MethodKind.Constructor or MethodKind.StaticConstructor } method) 993IMethodSymbol 1249static bool DiffersInReadOnlyModifier(IMethodSymbol? oldMethod, IMethodSymbol? newMethod) 1275var oldPrimaryConstructor = GetPrimaryConstructor(oldType, cancellationToken); 1279var newPrimaryConstructor = (oldPrimaryConstructor == null) ? GetPrimaryConstructor(newType, cancellationToken) : null; 1287var oldCopyConstructor = oldType.InstanceConstructors.FirstOrDefault(c => c.IsCopyConstructor()); 1288var newCopyConstructor = newType.InstanceConstructors.FirstOrDefault(c => c.IsCopyConstructor()); 1321var oldGetterSymbol = ((IPropertySymbol?)oldSymbol)?.GetMethod; 1322var newGetterSymbol = ((IPropertySymbol?)newSymbol)?.GetMethod; 1485internal override IMethodSymbol GetLambdaExpressionSymbol(SemanticModel model, SyntaxNode lambdaExpression, CancellationToken cancellationToken) 1488return (IMethodSymbol)model.GetRequiredEnclosingSymbol(bodyExpression.SpanStart, cancellationToken); 1530return GroupBySignatureEquivalent(oldGroupInfo.Symbol as IMethodSymbol, newGroupInfo.Symbol as IMethodSymbol); 1537private static bool GroupBySignatureEquivalent(IMethodSymbol? oldMethod, IMethodSymbol? newMethod) 1976internal override string GetDisplayName(IMethodSymbol symbol) 2545IMethodSymbol { MethodKind: MethodKind.Destructor } 2549IMethodSymbol { MethodKind: MethodKind.Conversion or MethodKind.UserDefinedOperator } 2553IMethodSymbol { ExplicitInterfaceImplementations.IsEmpty: false }
ExternalAccess\Pythia\Api\IPythiaSignatureHelpProviderImplementation.cs (1)
14Task<(ImmutableArray<PythiaSignatureHelpItemWrapper> items, int? selectedItemIndex)> GetMethodGroupItemsAndSelectionAsync(ImmutableArray<IMethodSymbol> accessibleMethods, Document document, InvocationExpressionSyntax invocationExpression, SemanticModel semanticModel, SymbolInfo currentSymbol, CancellationToken cancellationToken);
ExternalAccess\Pythia\Api\PythiaSignatureHelpItemWrapper.cs (1)
20IMethodSymbol method,
ExternalAccess\Pythia\PythiaSignatureHelpProvider.cs (2)
31ImmutableArray<IMethodSymbol> accessibleMethods, 36IMethodSymbol? currentSymbol,
ExtractMethod\CSharpMethodExtractor.CSharpCodeGenerator.cs (4)
89protected override IMethodSymbol GenerateMethodDefinition( 95var methodSymbol = CodeGenerationSymbolFactory.CreateMethodSymbol( 1053IMethodSymbol methodSymbol, 1117IMethodSymbol methodSymbol,
ExtractMethod\CSharpSelectionResult.StatementResult.cs (3)
66var method = semanticModel.GetRequiredDeclaredSymbol(localFunction, cancellationToken); 72var method = semanticModel.GetRequiredDeclaredSymbol(methodDeclaration, cancellationToken); 78return semanticModel.GetSymbolInfo(function, cancellationToken).Symbol is not IMethodSymbol method
GenerateType\CSharpGenerateTypeService.cs (5)
73if (symbol is IMethodSymbol method) 428private static IMethodSymbol GetMethodSymbolIfPresent(SemanticModel semanticModel, ExpressionSyntax expression, CancellationToken cancellationToken) 435return memberGroup.ElementAt(0) as IMethodSymbol; 442if (expressionSymbol is IMethodSymbol method) 795private static readonly IMethodSymbol s_accessor = CodeGenerationSymbolFactory.CreateAccessorSymbol(
ImplementInterface\CSharpImplementExplicitlyCodeRefactoringProvider.cs (2)
154if (implMember is IMethodSymbol { Parameters: var implParameters } && 155interfaceMember is IMethodSymbol { Parameters: var interfaceParameters })
InitializeParameter\CSharpInitializeMemberFromPrimaryConstructorParameterCodeRefactoringProvider.cs (1)
55if (parameter.ContainingSymbol is not IMethodSymbol { MethodKind: MethodKind.Constructor } constructor)
InlineHints\CSharpInlineTypeHintsService.cs (1)
77if (parameter?.ContainingSymbol is IMethodSymbol { MethodKind: MethodKind.AnonymousFunction } &&
IntroduceParameter\CSharpIntroduceParameterCodeRefactoringProvider.cs (1)
31protected override bool IsDestructor(IMethodSymbol methodSymbol)
IntroduceVariable\CSharpIntroduceVariableService_IntroduceLocal.cs (2)
90var method = document.SemanticModel.GetDeclaredSymbol(arrowExpression.GetRequiredParent(), cancellationToken) as IMethodSymbol;
LanguageServices\CSharpSymbolDisplayService.SymbolDescriptionBuilder.cs (1)
349if (symbol is IMethodSymbol { ContainingSymbol.Kind: SymbolKind.Method } method)
NavigationBar\CSharpNavigationBarItemService.cs (5)
83if (member is IMethodSymbol { PartialImplementationPart: { } } methodSymbol) 98else if (member is IMethodSymbol or IPropertySymbol or IEventSymbol) 100Debug.Assert(member is IMethodSymbol { PartialDefinitionPart: null } or IPropertySymbol { PartialDefinitionPart: null } or IEventSymbol { PartialDefinitionPart: null }, 180var method = (IMethodSymbol)member;
QuickInfo\CSharpSemanticQuickInfoProvider.cs (4)
129var interceptor = semanticModel.GetInterceptorMethod(invocation, cancellationToken); 139if (symbolInfo.Symbol is IMethodSymbol resolvedMethod) 157private static ImmutableArray<ITypeSymbol> GetInterceptorTypeArguments(IMethodSymbol resolvedMethod) 231case IMethodSymbol { ReturnsVoid: false }:
ReplaceMethodWithProperty\CSharpReplaceMethodWithPropertyService.cs (2)
245var setMethod = getAndSetMethods.SetMethod; 251var getMethod = getAndSetMethods.GetMethod;
ReplacePropertyWithMethods\CSharpReplacePropertyWithMethodsService.cs (4)
78var getMethod = property.GetMethod; 88var setMethod = property.SetMethod; 108IMethodSymbol setMethod, 171IMethodSymbol getMethod,
SignatureHelp\AbstractCSharpSignatureHelpProvider.cs (1)
63protected IList<TaggedText> GetAwaitableUsage(IMethodSymbol method, SemanticModel semanticModel, int position)
SignatureHelp\AbstractGenericNameSignatureHelpProvider_Method.cs (3)
13IMethodSymbol method, 61private static ITypeSymbol? GetContainingType(IMethodSymbol method) 74private static IList<SymbolDisplayPart> GetPostambleParts(IMethodSymbol method, SemanticModel semanticModel, int position)
SignatureHelp\AbstractGenericNameSignatureHelpProvider.cs (2)
142else if (symbol is IMethodSymbol method) 159IList<SignatureHelpSymbolParameter> GetTypeArguments(IMethodSymbol method)
SignatureHelp\AbstractOrdinaryMethodSignatureHelpProvider.cs (3)
18IMethodSymbol method, 27IMethodSymbol method, 49IMethodSymbol method,
SignatureHelp\AttributeSignatureHelpProvider.cs (3)
127IMethodSymbol constructor, 156IMethodSymbol constructor, 215IMethodSymbol method,
SignatureHelp\ConstructorInitializerSignatureHelpProvider.cs (2)
123IMethodSymbol constructor, 143IMethodSymbol method,
SignatureHelp\InvocationExpressionSignatureHelpProvider.cs (2)
81.OfType<IMethodSymbol>() 119IMethodSymbol? currentSymbol;
SignatureHelp\InvocationExpressionSignatureHelpProviderBase_DelegateAndFunctionPointerInvoke.cs (5)
18private static IMethodSymbol? GetDelegateInvokeMethod( 22var invokeMethod = delegateType.DelegateInvokeMethod; 39private static IList<SignatureHelpItem> GetDelegateOrFunctionPointerInvokeItems(InvocationExpressionSyntax invocationExpression, IMethodSymbol invokeMethod, SemanticModel semanticModel, IStructuralTypeDisplayService structuralTypeDisplayService, IDocumentationCommentFormattingService documentationCommentFormattingService, out int? selectedItem, CancellationToken cancellationToken) 58private static IList<SymbolDisplayPart> GetDelegateOrFunctionPointerInvokePreambleParts(IMethodSymbol invokeMethod, SemanticModel semanticModel, int position) 80IMethodSymbol invokeMethod, SemanticModel semanticModel, int position, IDocumentationCommentFormattingService formattingService, CancellationToken cancellationToken)
SignatureHelp\InvocationExpressionSignatureHelpProviderBase_MethodGroup.cs (10)
21ImmutableArray<IMethodSymbol> accessibleMethods, 26IMethodSymbol? currentSymbol, 35private static ImmutableArray<IMethodSymbol> GetAccessibleMethods( 39IEnumerable<IMethodSymbol> methodGroup, 75methodGroup = methodGroup.Where(m => m.IsStatic || m is IMethodSymbol { MethodKind: MethodKind.LocalFunction }); 88private static bool IsHiddenByOtherMethod(IMethodSymbol method, ISet<IMethodSymbol> methodSet) 90foreach (var m in methodSet) 104private static bool IsHiddenBy(IMethodSymbol method1, IMethodSymbol method2)
SignatureHelp\ObjectCreationExpressionSignatureHelpProvider_DelegateType.cs (3)
17IMethodSymbol invokeMethod, 36private static IList<SymbolDisplayPart> GetDelegateTypePreambleParts(IMethodSymbol invokeMethod, SemanticModel semanticModel, int position) 46private static IList<SignatureHelpSymbolParameter> GetDelegateTypeParameters(IMethodSymbol invokeMethod, SemanticModel semanticModel, int position)
SignatureHelp\ObjectCreationExpressionSignatureHelpProvider_NormalType.cs (2)
18IMethodSymbol constructor, 38IMethodSymbol method,
SignatureHelp\ObjectCreationExpressionSignatureHelpProvider.cs (1)
108var invokeMethod = type.DelegateInvokeMethod;
SignatureHelp\PrimaryConstructorBaseTypeSignatureHelpProvider.cs (2)
119IMethodSymbol constructor, 138IMethodSymbol method,
Snippets\CSharpConsoleSnippetProvider.cs (1)
42if (lambdaSymbol is IMethodSymbol { ReturnType: { SpecialType: SpecialType.System_Void } or { TypeKind: TypeKind.Error } })
src\roslyn\src\Analyzers\CSharp\Analyzers\ConvertProgram\ConvertProgramAnalysis_TopLevelStatements.cs (2)
77var entryPointMethod = semanticModel.Compilation.GetEntryPoint(cancellationToken); 81var thisMethod = semanticModel.GetDeclaredSymbol(methodDeclaration);
src\roslyn\src\Analyzers\CSharp\Analyzers\InvokeDelegateWithConditionalAccess\InvokeDelegateWithConditionalAccessAnalyzer.cs (1)
283if (initializerSymbol is IMethodSymbol)
src\roslyn\src\Analyzers\CSharp\Analyzers\MakeStructFieldsWritable\CSharpMakeStructFieldsWritableDiagnosticAnalyzer.cs (1)
87if (context.OwningSymbol is IMethodSymbol { MethodKind: MethodKind.Constructor })
src\roslyn\src\Analyzers\CSharp\Analyzers\MakeStructMemberReadOnly\CSharpMakeStructMemberReadOnlyAnalyzer.cs (10)
44var methodToDiagnostic = PooledDictionary<IMethodSymbol, Diagnostic>.GetInstance(); 81if (member is not IMethodSymbol method) 100SymbolAnalysisContext context, ReportDiagnostic severity, PooledDictionary<IMethodSymbol, Diagnostic> methodToDiagnostic) 133Dictionary<IMethodSymbol, Diagnostic> methodToDiagnostic) 137if (context.OwningSymbol is not IMethodSymbol owningMethod) 170IMethodSymbol owningMethod, 214IMethodSymbol owningMethod, 262IMethodSymbol owningMethod, 377IMethodSymbol owningMethod, 379IMethodSymbol methodReference)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryAsyncModifier\CSharpMakeMethodSynchronousDiagnosticAnalyzer.cs (3)
35protected static bool IsInterfaceImplementationOrOverride(IMethodSymbol methodSymbol) 159var methodSymbol = semanticModel.GetRequiredDeclaredSymbol(methodDeclaration, cancellationToken); 183var methodSymbol = semanticModel.GetRequiredDeclaredSymbol(methodDeclaration, cancellationToken);
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryLambdaExpression\CSharpRemoveUnnecessaryLambdaExpressionDiagnosticAnalyzer.cs (7)
126if (lambdaSymbolInfo.Symbol is not IMethodSymbol lambdaMethod) 130if (invokedSymbolInfo.Symbol is not IMethodSymbol invokedMethod) 212if (rewrittenSymbolInfo.Symbol is not IMethodSymbol rewrittenMethod || 252var method1 = semanticModel1.GetSymbolInfo(node1, cancellationToken).Symbol as IMethodSymbol; 253var method2 = semanticModel2.GetSymbolInfo(node2, cancellationToken).Symbol as IMethodSymbol;
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnusedParametersAndValues\CSharpRemoveUnusedParametersAndValuesDiagnosticAnalyzer.cs (1)
32protected override bool MethodHasHandlesClause(IMethodSymbol method)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseAutoProperty\CSharpUseAutoPropertyAnalyzer.cs (4)
171protected override ExpressionSyntax? GetGetterExpression(IMethodSymbol getMethod, CancellationToken cancellationToken) 188private static ExpressionSyntax? GetGetterExpressionFromSymbol(IMethodSymbol getMethod, CancellationToken cancellationToken) 205SemanticModel semanticModel, IMethodSymbol setMethod, CancellationToken cancellationToken) 240IMethodSymbol accessor,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForBuilderDiagnosticAnalyzer.cs (1)
126if (createSymbol is not IMethodSymbol { IsStatic: true } createMethod)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForNewDiagnosticAnalyzer.cs (2)
55if (symbol is not IMethodSymbol { MethodKind: MethodKind.Constructor, Parameters: [var constructorParameter] } || 83.OfType<IMethodSymbol>()
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\UseCollectionExpressionHelpers.cs (8)
337var containingMethod = semanticModel.GetEnclosingSymbol<IMethodSymbol>(expression.SpanStart, cancellationToken); 432if (semanticModel.GetSymbolInfo(invocationExpression, cancellationToken).Symbol is not IMethodSymbol method) 455if (methodOrProperty is not IMethodSymbol and not IPropertySymbol) 550if (parameter.ContainingSymbol is not IMethodSymbol method) 894if (semanticModel.GetSymbolInfo(memberAccessExpression, cancellationToken).Symbol is not IMethodSymbol { IsStatic: true } createMethod) 928IMethodSymbol originalCreateMethod, 1162if (emptySymbol is not IMethodSymbol)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionInitializer\CSharpUseCollectionInitializerAnalyzer.cs (2)
98if (this.SemanticModel.GetSymbolInfo(_objectCreationExpression, cancellationToken).Symbol is not IMethodSymbol 130if (this.SemanticModel.GetSymbolInfo(_objectCreationExpression, cancellationToken).Symbol is not IMethodSymbol
src\roslyn\src\Analyzers\CSharp\Analyzers\UseExpressionBody\Helpers\UseExpressionBodyForLocalFunctionHelper.cs (2)
60var symbol = semanticModel.GetDeclaredSymbol(statement, cancellationToken); 61return symbol is IMethodSymbol { ReturnType: INamedTypeSymbol { Arity: not 0 } };
src\roslyn\src\Analyzers\CSharp\Analyzers\UseExpressionBody\Helpers\UseExpressionBodyForMethodsHelper.cs (1)
58var method = semanticModel.GetDeclaredSymbol(declaration, cancellationToken);
src\roslyn\src\Analyzers\CSharp\Analyzers\UseImplicitlyTypedLambdaExpression\CSharpUseImplicitlyTypedLambdaExpressionDiagnosticAnalyzer.cs (2)
89if (semanticModel.GetSymbolInfo(explicitLambda, cancellationToken).Symbol is not IMethodSymbol explicitLambdaMethod || 90analyzer.SpeculativeSemanticModel.GetSymbolInfo(analyzer.ReplacedExpression, cancellationToken).Symbol is not IMethodSymbol implicitLambdaMethod)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseIndexOperatorDiagnosticAnalyzer.cs (2)
160IMethodSymbol? targetMethod, 214private static IPropertySymbol? TryGetLengthLikeProperty(InfoCache infoCache, IMethodSymbol? targetMethod)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseIndexOperatorDiagnosticAnalyzer.InfoCache.cs (4)
35private readonly ConcurrentDictionary<IMethodSymbol, MemberInfo> _methodToMemberInfo = new(); 56public bool TryGetMemberInfo(IMethodSymbol methodSymbol, out MemberInfo memberInfo) 68private MemberInfo ComputeMemberInfo(IMethodSymbol method) 96var overloadedIndexMethod = GetOverload(method, IndexType);
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseRangeOperatorDiagnosticAnalyzer.cs (6)
118var targetMethod = invocation.TargetMethod; 144var targetMethod = invocation.TargetMethod; 162IMethodSymbol targetMethod, 225IMethodSymbol targetMethod) 274IMethodSymbol targetMethod) 302private static bool IsValidIndexing(IInvocationOperation invocation, InfoCache infoCache, IMethodSymbol targetMethod)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseRangeOperatorDiagnosticAnalyzer.InfoCache.cs (15)
31private readonly ConcurrentDictionary<IMethodSymbol, MemberInfo> _methodToMemberInfo = new(); 45var substringMethod = stringType 47.OfType<IMethodSymbol>() 55var removeMethod = stringType 57.OfType<IMethodSymbol>() 79private static IMethodSymbol? GetSliceLikeMethod(INamedTypeSymbol namedType) 81.OfType<IMethodSymbol>() 85public bool TryGetMemberInfo(IMethodSymbol method, out MemberInfo memberInfo) 97public bool TryGetMemberInfoOneArgument(IMethodSymbol method, out MemberInfo memberInfo) 110var overloadWithTwoArguments = method.ContainingType 112.OfType<IMethodSymbol>() 130private MemberInfo ComputeMemberInfo(IMethodSymbol sliceLikeMethod, bool requireRangeMember) 160var actualSliceMethod = 162.OfType<IMethodSymbol>() 172var overloadedRangeMethod = GetOverload(sliceLikeMethod, RangeType);
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseRangeOperatorDiagnosticAnalyzer.Result.cs (2)
29IMethodSymbol sliceLikeMethod, 37public readonly IMethodSymbol SliceLikeMethod = sliceLikeMethod;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\Helpers.cs (7)
15public static bool IsStringRemoveMethod(IMethodSymbol method) 69public static bool IsIntIndexingMethod(IMethodSymbol method) 85public static bool IsTwoArgumentSliceLikeMethod(IMethodSymbol method) 103public static bool IsOneArgumentSliceLikeMethod(IMethodSymbol method) 143public static IMethodSymbol? GetOverload(IMethodSymbol method, ITypeSymbol parameterType) 147.OfType<IMethodSymbol>()
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\MemberInfo.cs (2)
11IMethodSymbol? overloadedMethod) 23public readonly IMethodSymbol? OverloadedMethod = overloadedMethod;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseNullPropagation\CSharpUseNullPropagationDiagnosticAnalyzer.cs (1)
109IMethodSymbol? referenceEqualsMethod,
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePrimaryConstructor\CSharpUsePrimaryConstructorDiagnosticAnalyzer.cs (3)
288if (!TryFindPrimaryConstructorCandidate(namedType, out var primaryConstructor, out var primaryConstructorDeclaration)) 341[NotNullWhen(true)] out IMethodSymbol? primaryConstructor, 349foreach (var constructor in constructors)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddParameter\CSharpAddParameterCodeFixProvider.cs (1)
63if (semanticModel.GetDeclaredSymbol(constructorDeclaration, cancellationToken) is IMethodSymbol constructorSymbol)
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToAsync\CSharpConvertToAsyncMethodCodeFixProvider.cs (1)
71if (semanticModel.GetSymbolInfo(invocationExpression, cancellationToken).Symbol is not IMethodSymbol methodSymbol)
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToRecord\ConvertToRecordEngine.cs (3)
155var constructorSymbol = semanticModel.GetRequiredDeclaredSymbol(constructor, cancellationToken); 221var methodSymbol = semanticModel.GetRequiredDeclaredSymbol(method, cancellationToken); 347var constructorSymbol = semanticModel.GetRequiredDeclaredSymbol(constructor, cancellationToken);
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToRecord\ConvertToRecordHelpers.cs (10)
24IMethodSymbol methodSymbol, 45TargetMethod: IMethodSymbol { Name: nameof(Equals) }, 76IMethodSymbol methodSymbol, 375Constructor: IMethodSymbol { IsImplicitlyDeclared: true } 494IMethodSymbol methodSymbol) 1099private static bool OverridesEquals(Compilation compilation, IMethodSymbol equals, INamedTypeSymbol? equatableType) 1102equatableType.GetMembers(nameof(Equals)).FirstOrDefault() is IMethodSymbol equatableEquals && 1109var objectEquals = objectType?.GetMembers(nameof(Equals)).FirstOrDefault() as IMethodSymbol; 1110var curr = equals;
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToRecord\PositionalParameterInfo.cs (4)
56.Any(symbol => symbol.SetMethod is IMethodSymbol { IsInitOnly: true }); 79if (baseType != null && baseType.TryGetPrimaryConstructor(out var basePrimary)) 159var getAccessor = propertySymbol.GetMethod; 160var setAccessor = propertySymbol.SetMethod;
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateConstructor\CSharpGenerateConstructorService.cs (4)
182protected override IMethodSymbol? GetCurrentConstructor(SemanticModel semanticModel, SyntaxToken token, CancellationToken cancellationToken) 185protected override IMethodSymbol? GetDelegatedConstructor(SemanticModel semanticModel, IMethodSymbol constructor, CancellationToken cancellationToken) 190return semanticModel.GetSymbolInfo(constructorDeclarationSyntax.Initializer, cancellationToken).Symbol as IMethodSymbol;
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateConversionService.cs (6)
59[NotNullWhen(true)] out IMethodSymbol? methodSymbol, 85[NotNullWhen(true)] out IMethodSymbol? methodSymbol, 110[NotNullWhen(true)] out IMethodSymbol? methodSymbol, 138[NotNullWhen(true)] out IMethodSymbol? methodSymbol, 169[NotNullWhen(true)] out IMethodSymbol? methodSymbol, 195private static IMethodSymbol GenerateMethodSymbol(
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateMethodService.cs (1)
51[NotNullWhen(true)] out IMethodSymbol? methodSymbol,
src\roslyn\src\Analyzers\CSharp\CodeFixes\ImplementInterface\CSharpImplementInterfaceService.cs (1)
30protected override string ToDisplayString(IMethodSymbol disposeImplMethod, SymbolDisplayFormat format)
src\roslyn\src\Analyzers\CSharp\CodeFixes\Iterator\CSharpAddYieldCodeFixProvider.cs (1)
108if (symbol is not IMethodSymbol method || method.ReturnsVoid)
src\roslyn\src\Analyzers\CSharp\CodeFixes\Iterator\CSharpChangeToIEnumerableCodeFixProvider.cs (2)
39var methodSymbol = model.GetDeclaredSymbol(node, cancellationToken) as IMethodSymbol;
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeLocalFunctionStatic\MakeLocalFunctionStaticCodeFixHelper.cs (1)
47var localFunctionSymbol = semanticModel.GetRequiredDeclaredSymbol(localFunction, cancellationToken);
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeMemberRequired\CSharpMakeMemberRequiredCodeFixProvider.cs (1)
66var setMethod = propertySymbol.SetMethod;
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeMethodAsynchronous\CSharpMakeMethodAsynchronousCodeFixProvider.cs (4)
77IMethodSymbol methodSymbol, 97IMethodSymbol methodSymbol, 116IMethodSymbol methodSymbol, 128IMethodSymbol methodSymbol,
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeMethodSynchronous\CSharpMakeMethodSynchronousCodeFixProvider.cs (4)
33protected override SyntaxNode RemoveAsyncTokenAndFixReturnType(IMethodSymbol methodSymbol, SyntaxNode node, KnownTaskTypes knownTypes) 44private static SyntaxNode FixMethod(IMethodSymbol methodSymbol, MethodDeclarationSyntax method, KnownTaskTypes knownTypes) 50private static SyntaxNode FixLocalFunction(IMethodSymbol methodSymbol, LocalFunctionStatementSyntax localFunction, KnownTaskTypes knownTypes) 56private static TypeSyntax FixMethodReturnType(IMethodSymbol methodSymbol, TypeSyntax returnTypeSyntax, KnownTaskTypes knownTypes)
src\roslyn\src\Analyzers\CSharp\CodeFixes\Nullable\CSharpDeclareAsNullableCodeFixProvider.cs (2)
215if (symbol is not IMethodSymbol method || method.PartialImplementationPart is not null) 304parameterSymbol.ContainingSymbol is IMethodSymbol method &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseExplicitArrayInExpressionTree\CSharpUseExplicitArrayInExpressionTreeCodeFixProvider.cs (4)
36if (semanticModel.GetSymbolInfo(invocationExpression, cancellationToken).Symbol is not IMethodSymbol originalMethod || 47if (symbol is IMethodSymbol currentMethod && 78static bool ParameterTypesMatch(IMethodSymbol originalMethod, IMethodSymbol currentMethod)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseLocalFunction\CSharpUseLocalFunctionCodeFixProvider.cs (5)
157IMethodSymbol delegateMethod, ParameterListSyntax parameterList, bool makeStatic) 204IMethodSymbol delegateMethod, 270AnonymousFunctionExpressionSyntax anonymousFunction, IMethodSymbol delegateMethod) 314private static InvocationExpressionSyntax WithNewParameterNames(InvocationExpressionSyntax invocation, IMethodSymbol method, ParameterListSyntax newParameterList) 339private static int TryDetermineParameterIndex(NameColonSyntax argumentNameColon, IMethodSymbol method)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePrimaryConstructor\CSharpUsePrimaryConstructorCodeFixProvider_DocComments.cs (2)
67IMethodSymbol constructor, 165IMethodSymbol constructor,
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePrimaryConstructor\CSharpUsePrimaryConstructorCodeFixProvider.cs (2)
122var constructor = semanticModel.GetRequiredDeclaredSymbol(constructorDeclaration, cancellationToken); 319IMethodSymbol or IPropertySymbol or IEventSymbol or IFieldSymbol =>
src\roslyn\src\Compilers\CSharp\CSharpAnalyzerDriver\CSharpDeclarationComputer.cs (3)
103if (associatedSymbol is IMethodSymbol ctor) 331if (associatedSymbol is IMethodSymbol) 408var declaredAccessor = getSymbol ? (model.GetDeclaredSymbol(declarationWithExpressionBody, cancellationToken) as IPropertySymbol)?.GetMethod : null;
Microsoft.CodeAnalysis.CSharp.NetAnalyzers (11)
Microsoft.NetCore.Analyzers\InteropServices\CSharpDynamicInterfaceCastableImplementation.Fixer.cs (3)
43SymbolKind.Method => GenerateMethodImplementation((IMethodSymbol)member), 64SyntaxNode? GenerateMethodImplementation(IMethodSymbol method) 179if (symbol is not IMethodSymbol)
Microsoft.NetCore.Analyzers\Performance\CSharpCollapseMultiplePathOperations.Fixer.cs (1)
96if (semanticModel.GetSymbolInfo(invocation).Symbol is IMethodSymbol methodSymbol &&
Microsoft.NetCore.Analyzers\Runtime\CSharpDetectPreviewFeatureAnalyzer.cs (1)
80protected override SyntaxNode? GetPreviewParameterSyntaxNodeForMethod(IMethodSymbol methodSymbol, ISymbol parameterSymbol)
Microsoft.NetCore.Analyzers\Runtime\CSharpPreferDictionaryContainsMethods.cs (1)
17IMethodSymbol method = containsInvocation.TargetMethod;
Microsoft.NetCore.Analyzers\Runtime\CSharpSpecifyCultureForToLowerAndToUpper.Fixer.cs (1)
32if (model.GetSymbolInfo((IdentifierNameSyntax)node, cancellationToken).Symbol is IMethodSymbol methodSymbol && methodSymbol.Parameters.Length == 0)
Microsoft.NetCore.Analyzers\Runtime\CSharpUseOrdinalStringComparison.Fixer.cs (1)
55if (model.GetSymbolInfo((IdentifierNameSyntax)identifier!, cancellationToken).Symbol is IMethodSymbol methodSymbol && CanAddStringComparison(methodSymbol, model))
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler.CSharp\Lightup\AwaitExpressionInfoWrapper.cs (3)
11private static Func<AwaitExpressionInfo, IMethodSymbol?>? s_RuntimeAwaitMethodAccessor; 15public IMethodSymbol? RuntimeAwaitMethod 21return LightupHelpers.CreatePropertyAccessor<AwaitExpressionInfo, IMethodSymbol?>(
Microsoft.CodeAnalysis.CSharp.Workspaces (150)
Classification\SyntaxClassification\NameSyntaxClassifier.cs (3)
158symbol is IParameterSymbol { ContainingSymbol: IMethodSymbol { Name: WellKnownMemberNames.TopLevelStatementsEntryPointMethodName } }) 198case IMethodSymbol methodSymbol: 250private static string GetClassificationForMethod(IMethodSymbol methodSymbol)
Classification\SyntaxClassification\OperatorOverloadSyntaxClassifier.cs (1)
48if (symbolInfo.Symbol is IMethodSymbol { MethodKind: MethodKind.UserDefinedOperator })
CodeGeneration\CSharpSyntaxGenerator.cs (1)
375private protected override SyntaxNode DestructorDeclaration(IMethodSymbol destructorMethod)
ExternalAccess\Pythia\Api\PythiaSymbolExtensions.cs (2)
29public static bool? IsMoreSpecificThan(this IMethodSymbol method1, IMethodSymbol method2)
Recommendations\CSharpRecommendationServiceRunner_Conversions.cs (6)
162if (member is not IMethodSymbol method) 189static bool IsLiftableConversion(IMethodSymbol method) 193private IMethodSymbol LiftConversion(Compilation compilation, IMethodSymbol method) 236var conversion = CreateConversion( 258private static IMethodSymbol CreateConversion(INamedTypeSymbol containingType, ITypeSymbol fromType, ITypeSymbol toType, string? documentationCommentXml)
Recommendations\CSharpRecommendationServiceRunner_Operators.cs (2)
33if (member is not IMethodSymbol { MethodKind: MethodKind.UserDefinedOperator } method) 57private static bool IsLiftableOperator(IMethodSymbol symbol)
Recommendations\CSharpRecommendationServiceRunner.cs (2)
397if (enclosingMethodOrLambda is IMethodSymbol method) 799if (symbol is IMethodSymbol { MethodKind: MethodKind.AnonymousFunction })
Rename\CSharpRenameRewriterLanguageService.cs (4)
819renamedSymbol.ContainingSymbol is IMethodSymbol methodSymbol && 842conflicts.AddRange(DeclarationConflictHelpers.GetMembersWithConflictingSignatures((IMethodSymbol)renamedSymbol, trimOptionalParameters: false, distinguishRefKind: true).Select(t => reverseMappedLocations[t])); 1023var method = (IMethodSymbol)symbol;
Simplification\CSharpSimplificationService.Expander.cs (7)
120var returnType = (_semanticModel.GetSymbolInfo(lambdaExpression).Symbol as IMethodSymbol)?.ReturnType; 142var returnType = (_semanticModel.GetSymbolInfo(parentLambda).Symbol as IMethodSymbol)?.ReturnType; 559symbol is IMethodSymbol { IsStatic: true }) 738symbol is IMethodSymbol { TypeArguments.Length: > 0 } method) 1049rewrittenNode = RewriteExtensionMethodInvocation(originalNode, rewrittenNode, ((MemberAccessExpressionSyntax)rewrittenNode.Expression).Expression, (IMethodSymbol)targetSymbol); 1060IMethodSymbol reducedExtensionMethod) 1085IMethodSymbol reducedExtensionMethod)
Simplification\Reducers\CSharpExtensionMethodReducer.cs (3)
59var targetMethodSymbol = (IMethodSymbol)targetSymbol.Symbol; 121newSymbol is IMethodSymbol newMethod &&
Simplification\Simplifiers\NameSimplifier.cs (2)
79var method = symbol as IMethodSymbol;
src\4f0789c9734b88bf\CSharpInitializeParameterService.cs (1)
25protected override SyntaxNode? GetAccessorBody(IMethodSymbol accessor, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\CodeStyle\TypeStyle\TypeStyleHelper.cs (4)
102if (semanticModel.GetSymbolInfo(memberName, cancellationToken).Symbol is not IMethodSymbol methodSymbol) 117IMethodSymbol methodSymbol, 138IMethodSymbol methodSymbol, 171private static bool IsPossibleConversionMethod(IMethodSymbol methodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (2)
370if (symbol is IMethodSymbol 535return symbolInfo.GetBestOrAllSymbols().Any() && !symbolInfo.GetBestOrAllSymbols().Any(static s => s is IMethodSymbol);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ITypeSymbolExtensions.cs (1)
40public static bool TryGetPrimaryConstructor(this INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (4)
442if (semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken).Symbol is IMethodSymbol member && index < member.Parameters.Length) 465public static IMethodSymbol GetRequiredDeclaredSymbol(this SemanticModel semanticModel, ConstructorDeclarationSyntax syntax, CancellationToken cancellationToken) 471public static IMethodSymbol GetRequiredDeclaredSymbol(this SemanticModel semanticModel, LocalFunctionStatementSyntax syntax, CancellationToken cancellationToken) 489public static IMethodSymbol GetRequiredDeclaredSymbol(this SemanticModel semanticModel, BaseMethodDeclarationSyntax syntax, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SyntaxNodeExtensions.cs (1)
813if (symbol is IMethodSymbol { Parameters: [{ Type.OriginalDefinition: var parameterType }, ..] } &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SemanticFacts\CSharpSemanticFacts.cs (15)
76if (symbol is IMethodSymbol { MethodKind: MethodKind.Conversion }) 195public IMethodSymbol? GetGetAwaiterMethod(SemanticModel semanticModel, SyntaxNode node) 206public ImmutableArray<IMethodSymbol> GetDeconstructionAssignmentMethods(SemanticModel semanticModel, SyntaxNode node) 210using var builder = TemporaryArray<IMethodSymbol>.Empty; 218public ImmutableArray<IMethodSymbol> GetDeconstructionForEachMethods(SemanticModel semanticModel, SyntaxNode node) 222using var builder = TemporaryArray<IMethodSymbol>.Empty; 230private static void FlattenDeconstructionMethods(DeconstructionInfo deconstruction, ref TemporaryArray<IMethodSymbol> builder) 232var method = deconstruction.Method; 396symbolInfo.CandidateSymbols.All(static s => s is IMethodSymbol)) 421var refined = overloadResolution.RefineOverload(symbolInfo, symbolInfo.CandidateSymbols.SelectAsArray(s => (IMethodSymbol)s)); 434public ImmutableArray<IMethodSymbol> GetLocalFunctionSymbols(Compilation compilation, ISymbol symbol, CancellationToken cancellationToken) 436using var _ = ArrayBuilder<IMethodSymbol>.GetInstance(out var builder); 445if (localFunctionSymbol is IMethodSymbol methodSymbol) 484public bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (8)
745if (memberSymbol is not IMethodSymbol methodSymbol) 752for (var current = methodSymbol; current != null; current = current.OverriddenMethod) 1111if (sym is IMethodSymbol { MethodKind: MethodKind.UserDefinedOperator } op) 1375if (oldSymbolInfo is IMethodSymbol { MethodKind: not (MethodKind.LocalFunction or MethodKind.LambdaMethod) } && 1545if (originalMemberSymbol is not IMethodSymbol { MethodKind: MethodKind.DelegateInvoke } originalMethodSymbol || 1546rewrittenMemberSymbol is not IMethodSymbol { MethodKind: MethodKind.DelegateInvoke } rewrittenMethodSymbol) 1620if (originalMemberSymbol is IMethodSymbol originalMethodSymbol && 1621rewrittenMemberSymbol is IMethodSymbol rewrittenMethodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\CSharpLightweightOverloadResolution.cs (5)
18public IMethodSymbol? RefineOverload(SymbolInfo symbolInfo, ImmutableArray<IMethodSymbol> candidates) 21public (IMethodSymbol? method, int parameterIndex) RefineOverloadAndPickParameter(SymbolInfo symbolInfo, ImmutableArray<IMethodSymbol> candidates) 24public int FindParameterIndexIfCompatibleMethod(IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (1)
888out IMethodSymbol getEnumeratorMethod,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseImplicitTypeHelper.cs (1)
213if (memberGroup[0] is not IMethodSymbol { TypeParameters.IsEmpty: true } method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ConstructorGenerator.cs (5)
28IMethodSymbol constructor, 44IMethodSymbol constructor, 90IMethodSymbol constructor) 108IMethodSymbol constructor) 117private static SyntaxTokenList GenerateModifiers(IMethodSymbol constructor, CSharpCodeGenerationContextInfo info)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ConversionGenerator.cs (4)
24IMethodSymbol method, 36IMethodSymbol method, 47IMethodSymbol method, 103private static SyntaxTokenList GenerateModifiers(IMethodSymbol method, CodeGenerationDestination destination)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpCodeGenerationService.cs (4)
115protected override TDeclarationNode AddMethod<TDeclarationNode>(TDeclarationNode destination, IMethodSymbol method, CSharpCodeGenerationContextInfo info, IList<bool>? availableIndices, CancellationToken cancellationToken) 199var getMethod = property.GetMethod; 214var setMethod = property.SetMethod; 673IMethodSymbol method, CodeGenerationDestination destination, CSharpCodeGenerationContextInfo info, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\DestructorGenerator.cs (3)
26IMethodSymbol destructor, 42IMethodSymbol destructor, CSharpCodeGenerationContextInfo info, CancellationToken cancellationToken) 66IMethodSymbol constructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\EventGenerator.cs (4)
173IMethodSymbol? accessor, 185IMethodSymbol accessor, 194private static BlockSyntax GenerateBlock(IMethodSymbol accessor) 203IMethodSymbol? accessor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\MethodGenerator.cs (12)
32IMethodSymbol method, 45IMethodSymbol method, 60IMethodSymbol method, 75IMethodSymbol method, CodeGenerationDestination destination, 93IMethodSymbol method, 112IMethodSymbol method, CodeGenerationDestination destination, 165IMethodSymbol method, CodeGenerationDestination destination, 220IMethodSymbol method, bool isExplicit, CSharpCodeGenerationContextInfo info) 231IMethodSymbol method) 238private static SyntaxList<TypeParameterConstraintClauseSyntax> GenerateDefaultConstraints(IMethodSymbol method) 312IMethodSymbol method, CSharpCodeGenerationContextInfo info) 318IMethodSymbol method,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\NamedTypeGenerator.cs (3)
114var primaryConstructor = members.OfType<IMethodSymbol>().FirstOrDefault(m => CodeGenerationConstructorInfo.GetIsPrimaryConstructor(m)); 232var invokeMethod = namedType.DelegateInvokeMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\OperatorGenerator.cs (4)
25IMethodSymbol method, 37IMethodSymbol method, 75IMethodSymbol method, 112IMethodSymbol method,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ParameterGenerator.cs (1)
80parameter.ContainingSymbol is IMethodSymbol methodSymbol &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\PropertyGenerator.cs (5)
293IMethodSymbol? accessor, 307IMethodSymbol accessor, 323private static BlockSyntax GenerateBlock(IMethodSymbol accessor) 332IMethodSymbol? accessor) 342IMethodSymbol accessor,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\StatementGenerator.cs (1)
17internal static BlockSyntax GenerateBlock(IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Editing\CSharpImportAdder.cs (2)
120if (member is IMethodSymbol method && method.IsExtensionMethod) 227if (symbol is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (4)
1043IMethodSymbol m => m.Arity > 0, 1051return symbols.All(static s => s is INamedTypeSymbol or IMethodSymbol); 2025while (enclosingSymbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction or MethodKind.AnonymousFunction } method) 2841if (symbol is IMethodSymbol && expression is not InvocationExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\TypeSyntaxExtensions.cs (1)
55public static TypeSyntax GenerateReturnTypeSyntax(this IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\WithElementSyntaxExtensions.cs (4)
17public static ImmutableArray<IMethodSymbol> GetCreationMethods( 37ImmutableArray<IMethodSymbol>? TryGetInterfaceItems() 56var constructor = constructedListType.InstanceConstructors.FirstOrDefault( 62ImmutableArray<IMethodSymbol>? TryGetCollectionBuilderItems()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSemanticFactsService.cs (1)
111public IMethodSymbol? TryGetDisposeMethod(SemanticModel semanticModel, SyntaxNode node, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (15)
112if (allSymbols is [IMethodSymbol method]) 396var methods = info.GetBestOrAllSymbols().OfType<IMethodSymbol>(); 480var methods = info.GetBestOrAllSymbols().OfType<IMethodSymbol>(); 488argumentOpt == null && info.Symbol is IMethodSymbol method && method.Parameters.All(p => p.IsOptional || p.IsParams)) 492.OfType<IMethodSymbol>(); 563var methods = info.GetBestOrAllSymbols().OfType<IMethodSymbol>(); 592private IEnumerable<TypeInferenceInfo> InferTypeInAttributeArgument(int index, IEnumerable<IMethodSymbol> methods, AttributeArgumentSyntax argumentOpt = null) 595private IEnumerable<TypeInferenceInfo> InferTypeInArgument(int index, IEnumerable<IMethodSymbol> methods, ArgumentSyntax argumentOpt, InvocationExpressionSyntax parentInvocationExpressionToTypeInfer) 620private static IMethodSymbol Instantiate(IMethodSymbol method, IList<ITypeSymbol> invocationTypes) 1391.Cast<IMethodSymbol>() 1409.Cast<IMethodSymbol>() 1499var addMethodParameterTypes = addMethodSymbols.Select(m => ((IMethodSymbol)m).Parameters[0]).Select(p => new TypeInferenceInfo(p.Type)); 1700var invoke = type.DelegateInvokeMethod; 2122var isAsync = symbol is IMethodSymbol methodSymbol && methodSymbol.IsAsync;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\InitializeParameter\InitializeParameterHelpers.cs (1)
252public static SyntaxNode? GetAccessorBody(IMethodSymbol accessor, CancellationToken cancellationToken)
Microsoft.CodeAnalysis.Extensions.Package (100)
Compilation\CompilationExtensions.cs (2)
371public static IMethodSymbol? GetTopLevelStatementsMethod(this Compilation compilation) 377if (candidateMember is IMethodSymbol method)
Symbols\IMethodSymbolExtensions.cs (11)
19internal static IMethodSymbol? TryGetCorrespondingExtensionBlockMethod(this IMethodSymbol methodSymbol) 33if (member is IMethodSymbol method && 49public static ImmutableArray<IMethodSymbol> GetAllMethodSymbolsOfPartialParts(this IMethodSymbol method) 72public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 77public static bool TryGetPredefinedComparisonOperator(this IMethodSymbol symbol, out PredefinedOperator op) 101public static PredefinedOperator GetPredefinedOperator(this IMethodSymbol symbol) 131public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 142public static bool IsAsyncReturningVoidTask(this IMethodSymbol method, Compilation compilation) 160public static bool IsPrimaryConstructor(this IMethodSymbol constructor)
Symbols\INamedTypeSymbolExtensions.cs (9)
136static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 184IMethodSymbol method => method.ExplicitInterfaceImplementations.Length > 0, 235static bool IsNonPublicImplementableAccessor(IMethodSymbol? accessor) 242if (member is IMethodSymbol { IsStatic: true, IsAbstract: true, MethodKind: MethodKind.UserDefinedOperator } method) 335private static bool IsInaccessibleImplementableAccessor(IMethodSymbol? accessor, ISymbol within) 439case IMethodSymbol method: 651IMethodSymbol { MethodKind: MethodKind.Ordinary, CanBeReferencedByName: true } => true, 652IMethodSymbol { MethodKind: MethodKind.UserDefinedOperator } => true, 671return member is IMethodSymbol
Symbols\IParameterSymbolExtensions.cs (2)
31ContainingSymbol: IMethodSymbol 63ContainingSymbol: IMethodSymbol
Symbols\ISymbolExtensions_Accessibility.cs (2)
107var funcPtrSignature = ((IFunctionPointerTypeSymbol)symbol).Signature; 156if (symbol is IMethodSymbol { MethodKind: MethodKind.BuiltinOperator })
Symbols\ISymbolExtensions.cs (43)
87IMethodSymbol method => method.OverriddenMethod, 110IMethodSymbol? bestMethod = null; 128else if (member is IMethodSymbol method) 145IMethodSymbol method => ImmutableArray<ISymbol>.CastUp(method.ExplicitInterfaceImplementations), 199if (symbol is IMethodSymbol 241=> symbol is IMethodSymbol { MethodKind: MethodKind.AnonymousFunction }; 268=> symbol is IMethodSymbol { MethodKind: MethodKind.ReducedExtension }; 273/// <inheritdoc cref="IMethodSymbol.IsExtensionMethod"/> 275=> symbol is IMethodSymbol { IsExtensionMethod: true }; 278=> symbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction }; 287=> symbol is IMethodSymbol { MethodKind: MethodKind.Constructor }; 290=> symbol is IMethodSymbol { MethodKind: MethodKind.StaticConstructor }; 293=> symbol is IMethodSymbol { MethodKind: MethodKind.Destructor }; 296=> symbol is IMethodSymbol { MethodKind: MethodKind.UserDefinedOperator }; 299=> symbol is IMethodSymbol { MethodKind: MethodKind.Conversion }; 302=> symbol is IMethodSymbol { MethodKind: MethodKind.Ordinary }; 305=> symbol is IMethodSymbol { MethodKind: MethodKind.Ordinary or MethodKind.LocalFunction }; 344IMethodSymbol methodSymbol => methodSymbol.ReturnType, 355SymbolKind.Method => ((IMethodSymbol)symbol).Arity, 370symbol = ((IMethodSymbol)symbol).GetConstructedReducedFrom(); 375if (symbol.ContainingSymbol is IMethodSymbol method) 393var method = parameter.ContainingSymbol as IMethodSymbol; 426IMethodSymbol m => m.Parameters, 434IMethodSymbol m => m.TypeParameters, 455IMethodSymbol m => m.TypeArguments, 500if (symbol is IMethodSymbol method && method.Parameters.All(p => p.RefKind == RefKind.None)) 656=> (symbol as IMethodSymbol)?.MethodKind.IsPropertyAccessor() == true; 659=> symbol is IMethodSymbol { MethodKind: MethodKind.EventAdd or MethodKind.EventRaise or MethodKind.EventRemove }; 685var methodSymbol = symbol as IMethodSymbol; 709var getAwaiters = potentialGetAwaiters.OfType<IMethodSymbol>().Where(x => !x.Parameters.Any()); 713public static bool IsValidGetAwaiter(this IMethodSymbol symbol) 717private static bool VerifyGetAwaiter(IMethodSymbol getAwaiter) 731var methods = returnType.GetMembers().OfType<IMethodSymbol>(); 747public static bool IsValidGetEnumerator(this IMethodSymbol symbol) 751private static bool VerifyGetEnumerator(IMethodSymbol getEnumerator) 771if (!members.OfType<IMethodSymbol>().Any(x => 787public static bool IsValidGetAsyncEnumerator(this IMethodSymbol symbol) 791private static bool VerifyGetAsyncEnumerator(IMethodSymbol getAsyncEnumerator) 814if (!members.OfType<IMethodSymbol>().Any(x => x.Name == WellKnownMemberNames.MoveNextAsyncMethodName)) 896[NotNullWhen(true)] out IMethodSymbol? classicExtensionMethod) 898if (symbol is IMethodSymbol method)
Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
108public override bool VisitMethod(IMethodSymbol symbol)
Symbols\ITypeSymbolExtensions.cs (2)
412.SelectAccessibleMembers<IMethodSymbol>(WellKnownMemberNames.CollectionInitializerAddMethodName, within ?? typeSymbol) 413.OfType<IMethodSymbol>()
Symbols\SignatureComparer.cs (12)
43SymbolKind.Method => HaveSameSignature((IMethodSymbol)symbol1, (IMethodSymbol)symbol2, caseSensitive), 67public static bool BadPropertyAccessor(IMethodSymbol? method1, IMethodSymbol? method2) 73public bool HaveSameSignature(IMethodSymbol method1, 74IMethodSymbol method2, 162var method1 = (IMethodSymbol)symbol1; 163var method2 = (IMethodSymbol)symbol2; 208private bool HaveSameSignatureAndConstraintsAndReturnType(IMethodSymbol method1, IMethodSymbol method2)
Symbols\SymbolEquivalenceComparer.cs (6)
149public bool ReturnTypeEquals(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 194private static bool IsConstructedFromSelf(IMethodSymbol symbol) 200private static bool CheckContainingType(IMethodSymbol x) 231private static bool IsPartialMethodDefinitionPart(IMethodSymbol symbol) 234private static bool IsPartialMethodImplementationPart(IMethodSymbol symbol)
Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (8)
124SymbolKind.Method => MethodsAreEquivalent((IMethodSymbol)x, (IMethodSymbol)y, equivalentTypesWithDifferingAssemblies), 170private bool MethodsAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, bool considerReturnRefKinds = false) 186var rx = x.ReducedFrom; 187var ry = y.ReducedFrom; 486internal bool ReturnTypesAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null)
Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (2)
68SymbolKind.Method => CombineHashCodes((IMethodSymbol)x, currentHash), 112private int CombineHashCodes(IMethodSymbol x, int currentHash)
Microsoft.CodeAnalysis.Features (675)
AddConstructorParametersFromMembers\AddConstructorParametersFromMembersCodeRefactoringProvider.AddConstructorParametersCodeAction.cs (1)
34private IMethodSymbol Constructor => constructorCandidate.Constructor;
AddConstructorParametersFromMembers\AddConstructorParametersFromMembersCodeRefactoringProvider.ConstructorCandidate.cs (1)
12IMethodSymbol Constructor,
AddConstructorParametersFromMembers\AddConstructorParametersFromMembersCodeRefactoringProvider.State.cs (2)
85foreach (var constructor in containingType.InstanceConstructors) 99private static async Task<bool> IsApplicableConstructorAsync(IMethodSymbol constructor, Document document, ImmutableArray<string> parameterNamesForSelectedMembers, CancellationToken cancellationToken)
AddDebuggerDisplay\AbstractAddDebuggerDisplayCodeRefactoringProvider.cs (5)
83var methodSymbol = (IMethodSymbol)semanticModel.GetRequiredDeclaredSymbol(method, cancellationToken); 99private static bool IsToStringMethod(IMethodSymbol methodSymbol) 102private static bool IsDebuggerDisplayMethod(IMethodSymbol methodSymbol) 160if (!typeSymbol.GetMembers().OfType<IMethodSymbol>().Any(IsDebuggerDisplayMethod))
AddImport\AbstractAddImportCodeRefactoringProvider.cs (1)
144if (parentSymbol is IMethodSymbol { MethodKind: MethodKind.Constructor } constructor &&
AddImport\SymbolReferenceFinder.cs (8)
373var classicExtensionMethods = OfType<IMethodSymbol>(symbols) 408private ImmutableArray<SymbolResult<IMethodSymbol>> GetViableExtensionMethodsWorker( 409ImmutableArray<SymbolResult<IMethodSymbol>> methodSymbols) 555SearchScope searchScope, string name, ITypeSymbol? type, Func<IMethodSymbol, bool>? predicate, CancellationToken cancellationToken) 566var methodSymbols = OfType<IMethodSymbol>(symbols); 575IMethodSymbol? method, ITypeSymbol? receiver, Func<IMethodSymbol, bool>? predicate) 599var reducedMethod = method.ReduceExtensionMethod(receiver);
CallHierarchy\AbstractCallHierarchyService.cs (1)
82if (symbol is IMethodSymbol methodSymbol)
ChangeSignature\AbstractChangeSignatureService.cs (8)
50IMethodSymbol symbol, Document document, CancellationToken cancellationToken); 84protected abstract bool TryGetRecordPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor); 114if (symbol is IMethodSymbol method) 138else if (TryGetRecordPrimaryConstructor(typeSymbol, out var primaryConstructor)) 144if (symbol is not IMethodSymbol and not IPropertySymbol) 269var methodSymbol = symbol.Definition as IMethodSymbol; 1045if (symbol is IMethodSymbol methodSymbol && methodSymbol.Parameters.LastOrDefault()?.IsParams == true)
ChangeSignature\DelegateInvokeMethodReferenceFinder.cs (5)
29internal sealed class DelegateInvokeMethodReferenceFinder : AbstractReferenceFinder<IMethodSymbol> 37protected override bool CanFind(IMethodSymbol symbol) 41IMethodSymbol symbol, 68IMethodSymbol symbol, 84IMethodSymbol methodSymbol,
CodeLens\CodeLensFindReferenceProgress.cs (3)
70(definition as IMethodSymbol)?.AssociatedSymbol != null; 122(definition as IMethodSymbol)?.MethodKind == MethodKind.Constructor; 127var isExtensionImplementationMethod = definition is IMethodSymbol method &&
CodeLens\CodeLensReferencesService.cs (2)
341var method = (IMethodSymbol)current;
CodeRefactorings\SyncNamespace\AbstractChangeNamespaceService.cs (2)
525foreach (var methodSymbol in typeSymbol.GetMembers().OfType<IMethodSymbol>())
Completion\Providers\AbstractContextVariableArgumentProvider.cs (2)
90while (enclosingSymbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction or MethodKind.AnonymousFunction }) 97if (enclosingSymbol is IMethodSymbol { ContainingType: { } containingType })
Completion\Providers\AbstractDocCommentCompletionProvider.cs (2)
245var returns = symbol is IMethodSymbol method && !method.ReturnsVoid; 253var delegateInvokeMethod = namedType.DelegateInvokeMethod;
Completion\Providers\AbstractMemberInsertingCompletionProvider.cs (1)
152IMethodSymbol method => await codeGenService.AddMethodAsync(context, containingType, method, cancellationToken).ConfigureAwait(false),
Completion\Providers\AbstractOverrideCompletionProvider.cs (2)
44if (overriddenMember is IMethodSymbol methodSymbol && 75SymbolKind.Method => ((IMethodSymbol)symbol).ReturnType,
Completion\Providers\AbstractPartialMethodCompletionProvider.cs (7)
31protected abstract bool IncludeAccessibility(IMethodSymbol method, CancellationToken cancellationToken); 33protected abstract string GetDisplayText(IMethodSymbol method, SemanticModel semanticModel, int position); 34protected abstract bool IsPartial(IMethodSymbol method); 64var method = (IMethodSymbol)member; 93.OfType<IMethodSymbol>() 102private CompletionItem CreateItem(IMethodSymbol method, int line, TextSpan span, SemanticModel semanticModel, DeclarationModifiers modifiers, SyntaxToken token)
Completion\Providers\AbstractRecommendationServiceBasedCompletionProvider.cs (2)
157=> symbol is IMethodSymbol method ? method.ReturnType : symbol.GetSymbolType(); 217if (symbol is IEventSymbol or IMethodSymbol)
Completion\Providers\ImportCompletionProvider\ExtensionMemberImportCompletionHelper.SymbolComputer.cs (5)
144if (symbol is IMethodSymbol method) 326(memberSymbol as IMethodSymbol)?.ReduceExtensionMethod(_receiverTypeSymbol); 373if (memberSymbol is IMethodSymbol methodSymbol) 494if (symbol.ContainingType.IsExtension && symbol is IPropertySymbol or IMethodSymbol) 509else if (symbol is IMethodSymbol { IsExtensionMethod: true, Parameters.Length: > 0 } method)
Completion\Providers\ImportCompletionProvider\ImportCompletionItem.cs (1)
201if (SymbolKey.ResolveString(methodSymbolKey, compilation).GetAnySymbol() is IMethodSymbol methodSymbol)
ConvertAnonymousType\AbstractConvertAnonymousTypeToClassCodeRefactoringProvider.cs (9)
265var constructor = CodeGenerationSymbolFactory.CreateConstructorSymbol( 285var constructor = CreateClassConstructor(semanticModel, typeName, properties, generator); 295var equalsMethod = await equalsAndGetHashCodeService.GenerateEqualsMethodAsync( 298var getHashCodeMethod = await equalsAndGetHashCodeService.GenerateGetHashCodeMethodAsync( 352var getMethod = prop.GetMethod != null ? CreateAccessorSymbol(prop, MethodKind.PropertyGet) : null; 353var setMethod = prop.SetMethod != null ? CreateAccessorSymbol(prop, MethodKind.PropertySet) : null; 370private static IMethodSymbol CreateAccessorSymbol(IPropertySymbol prop, MethodKind kind) 376private static IMethodSymbol CreateClassConstructor( 398var constructor = CodeGenerationSymbolFactory.CreateConstructorSymbol(
ConvertForEachToFor\AbstractConvertForEachToForCodeRefactoringProvider.cs (8)
256var indexer = GetInterfaceMember(collectionType, get_Item); 281var indexer = GetInterfaceMember(collectionType, get_Item); 301var countSymbol = GetInterfaceMember(current, get_Count); 302var indexerSymbol = GetInterfaceMember(current, get_Item); 308if (collectionType.FindImplementationForInterfaceMember(countSymbol) is not IMethodSymbol countImpl || 309collectionType.FindImplementationForInterfaceMember(indexerSymbol) is not IMethodSymbol indexerImpl) 349private static IMethodSymbol? GetInterfaceMember(ITypeSymbol interfaceType, string memberName) 354if (members is [IMethodSymbol method, ..])
ConvertForToForEach\AbstractConvertForToForEachCodeRefactoringProvider.cs (3)
260var getEnumeratorMethod = TryFindMemberInThisOrBaseTypes<IMethodSymbol>( 283INamedTypeSymbol containingType, IMethodSymbol getEnumeratorMethod,
ConvertToInterpolatedString\AbstractConvertConcatenationToInterpolatedStringRefactoringProvider.cs (3)
241var symbol = semanticModel.GetSymbolInfo(memberAccess, cancellationToken).Symbol as IMethodSymbol; 291return semanticModel.GetSymbolInfo(expression, cancellationToken).Symbol is IMethodSymbol
ConvertToInterpolatedString\AbstractConvertPlaceholderToInterpolatedStringRefactoringProvider.cs (2)
44IMethodSymbol InvocationSymbol, 82if (semanticModel.GetSymbolInfo(invocation, cancellationToken).GetAnySymbol() is not IMethodSymbol invocationSymbol)
ConvertTupleToStruct\AbstractConvertTupleToStructCodeRefactoringProvider.cs (7)
817var constructor = CreateConstructor(semanticModel, isRecord, structName, fields, generator, parameterNamingRule); 823var equalsMethod = await equalsAndGetHashCodeService.GenerateEqualsMethodAsync( 826var getHashCodeMethod = await equalsAndGetHashCodeService.GenerateGetHashCodeMethodAsync( 853private static IMethodSymbol GenerateDeconstructMethod( 855INamedTypeSymbol tupleType, IMethodSymbol constructor) 921private static IMethodSymbol CreateConstructor( 945var constructor = CodeGenerationSymbolFactory.CreateConstructorSymbol(
Debugging\AbstractBreakpointResolver.cs (5)
76protected abstract bool HasMethodBody(IMethodSymbol method, CancellationToken cancellationToken); 221: members.OfType<IMethodSymbol>().Where(m => m.TypeParameters.Length == nameAndArity.Arity); 232SymbolKind.Method => ((IMethodSymbol)symbol).PartialImplementationPart, 272if (methodOrProperty is IMethodSymbol method) 286IMethodSymbol method => method.Parameters.Length != parameterCount,
Debugging\AbstractDataTipInfoGetter.cs (1)
45=> symbol is IMethodSymbol
DocumentHighlighting\AbstractDocumentHighlightsService.cs (3)
142switch (((IMethodSymbol)symbol).MethodKind) 171if (symbol is IMethodSymbol { MethodKind: MethodKind.Constructor } constructor) 178if (r.Definition is not IMethodSymbol methodSymbol)
EditAndContinue\AbstractEditAndContinueAnalyzer.ActiveMembersBuilder.cs (8)
24private readonly PooledHashSet<IMethodSymbol> _methods = PooledHashSet<IMethodSymbol>.GetInstance(); 37foreach (var constructor in member.IsStatic ? member.ContainingType.StaticConstructors : member.ContainingType.Constructors) 47_methods.Add((IMethodSymbol)member); 58if (member is IMethodSymbol method) 64foreach (var constructor in member.IsStatic ? member.ContainingType.StaticConstructors : member.ContainingType.Constructors) 75private bool IsActiveMethod(IMethodSymbol method) 99if (oldMethod is IMethodSymbol or IPropertySymbol or IFieldSymbol or IEventSymbol)
EditAndContinue\AbstractEditAndContinueAnalyzer.cs (86)
260protected abstract bool AreHandledEventsEqual(IMethodSymbol oldMethod, IMethodSymbol newMethod); 318SymbolKind.Method => GetDisplayName((IMethodSymbol)symbol), 348internal virtual string GetDisplayName(IMethodSymbol symbol) 450internal abstract IMethodSymbol GetLambdaExpressionSymbol(SemanticModel model, SyntaxNode lambdaExpression, CancellationToken cancellationToken); 2565protected static bool ReturnTypesEquivalent(IMethodSymbol oldMethod, IMethodSymbol newMethod, bool exact) 2654var oldMethod = (IMethodSymbol)oldMember; 2655var newMethod = (IMethodSymbol)newMember; 2661var newInvokeMethod = ((INamedTypeSymbol)newMember).DelegateInvokeMethod; 3038var oldPrimaryConstructor = (IMethodSymbol)oldSymbol; 3362if (oldSymbol is IMethodSymbol) 3759Debug.Assert(member is IPropertySymbol or IMethodSymbol); 3768var primaryConstructor = (IMethodSymbol)member; 3804IMethodSymbol? constructor, 3805IMethodSymbol? otherConstructor, 3815void AddEdits(IMethodSymbol? constructor, Compilation otherCompilation, bool isDelete) 3861if (symbol is IMethodSymbol 3893case IMethodSymbol or IFieldSymbol: 3930case IMethodSymbol or IFieldSymbol: 3982if (oldSymbol.Name != newSymbol.Name || oldSymbol is IMethodSymbol or IFieldSymbol) 4132if (oldMember is IMethodSymbol oldMethod) 4346else if (oldSymbol is IMethodSymbol oldMethod && newSymbol is IMethodSymbol newMethod) 4428if (oldSymbol is not IMethodSymbol { AssociatedSymbol: not null }) 4462else if (oldSymbol is IMethodSymbol oldMethod && newSymbol is IMethodSymbol newMethod) 4619if (oldSymbol is not IMethodSymbol { AssociatedSymbol: not null }) 4712oldMember is not IMethodSymbol { AssociatedSymbol.Kind: SymbolKind.Property or SymbolKind.Event }) 4736=> parameter is { Ordinal: 0, ContainingSymbol: IMethodSymbol { IsExtensionMethod: true } }; 4807var oldPrimaryConstructor = (IMethodSymbol)oldContainingMember; 4808var newPrimaryConstructor = (IMethodSymbol)newContainingMember; 4814var oldSynthesizedDeconstructor = oldPrimaryConstructor.GetMatchingDeconstructor(); 4815var newSynthesizedDeconstructor = newPrimaryConstructor.GetMatchingDeconstructor(); 4852if (oldSymbol is IMethodSymbol oldMethod && 4853newSymbol is IMethodSymbol newMethod) 5058if (newSymbol is IMethodSymbol or IEventSymbol or IPropertySymbol) 5124.FirstOrDefault(static (m, compilation) => m is IMethodSymbol { IsImplicitlyDeclared: true } method && HasPrintMembersSignature(method, compilation), compilation); 5131.FirstOrDefault(static m => m is IMethodSymbol { IsImplicitlyDeclared: true } method && HasIEquatableEqualsSignature(method)); 5138.FirstOrDefault(static m => m is IMethodSymbol { IsImplicitlyDeclared: true } method && HasGetHashCodeSignature(method)); 5605foreach (var newCtor in isStatic ? newType.StaticConstructors : newType.InstanceConstructors) 5624IMethodSymbol? oldCtor; 5647oldCtor = (IMethodSymbol)GetRequiredDeclaredSymbol(oldModel.RequiredModel, oldDeclaration, cancellationToken); 5664oldCtor = (IMethodSymbol?)resolution.Symbol; 5797private static IMethodSymbol? TryGetParameterlessConstructor(INamedTypeSymbol type, bool isStatic) 5875var oldLambdaSymbol = isNestedFunction ? GetLambdaExpressionSymbol(oldModel.RequiredModel, oldLambda, cancellationToken) : null; 5876var newLambdaSymbol = isNestedFunction ? GetLambdaExpressionSymbol(newModel.RequiredModel, newLambda, cancellationToken) : null; 5979var oldPrimaryConstructor = oldDeclaration != null && IsPrimaryConstructorDeclaration(oldDeclaration) 5980? (IMethodSymbol)oldMember 5983var newPrimaryConstructor = newDeclaration != null && IsPrimaryConstructorDeclaration(newDeclaration) 5984? (IMethodSymbol)newMember 5993var oldLiftingPrimaryConstructor = oldMember != oldPrimaryConstructor && oldDeclaration != null && !IsDeclarationWithInitializer(oldDeclaration) ? oldPrimaryConstructor : null; 5994var newLiftingPrimaryConstructor = newMember != newPrimaryConstructor && newDeclaration != null && !IsDeclarationWithInitializer(newDeclaration) ? newPrimaryConstructor : null; 6228public static VariableCaptureKey Create(ISymbol variable, IMethodSymbol? liftingPrimaryConstructor) 6232private static VariableCaptureKind GetCaptureKind(ISymbol variable, IMethodSymbol? liftingPrimaryConstructor) 6239IMethodSymbol? liftingPrimaryConstructor, 6316IMethodSymbol? oldLiftingPrimaryConstructor, 6318IMethodSymbol? newLiftingPrimaryConstructor, 6370IMethodSymbol? liftingPrimaryConstructor) 6406IMethodSymbol method => method.AssociatedSymbol, 6458var lambda = parameter.ContainingSymbol is IMethodSymbol { MethodKind: MethodKind.LambdaMethod or MethodKind.LocalFunction } containingLambda ? 6463if (parameter is { IsImplicitlyDeclared: true, ContainingSymbol: IMethodSymbol { AssociatedSymbol: { } associatedSymbol } }) 6516IMethodSymbol? oldPrimaryConstructor, 6519IMethodSymbol? newPrimaryConstructor, 6694var oldLambdaSymbol = (IMethodSymbol)diagnosticContext.RequiredOldSymbol; 6695var newLambdaSymbol = (IMethodSymbol)diagnosticContext.RequiredNewSymbol; 7002=> symbol is IMethodSymbol { Name: WellKnownMemberNames.TopLevelStatementsEntryPointMethodName }; 7010if (current is IMethodSymbol { Arity: > 0 }) 7051public IMethodSymbol? GetPrimaryConstructor(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken) 7056=> symbol is IMethodSymbol { IsStatic: false, MethodKind: MethodKind.Constructor, DeclaringSyntaxReferences: [_] } && IsPrimaryConstructorDeclaration(GetSymbolDeclarationSyntax(symbol, cancellationToken)); 7072public IMethodSymbol? GetEncompassingPrimaryConstructor(SyntaxNode declaration, ISymbol symbol, CancellationToken cancellationToken) 7073=> IsPrimaryConstructorDeclaration(declaration) ? (IMethodSymbol)symbol : 7109if (newSymbol is IMethodSymbol { IsStatic: false, ContainingType.IsRecord: true, ReturnsVoid: true, Name: WellKnownMemberNames.DeconstructMethodName } method && 7150if (newSymbol is IMethodSymbol { AssociatedSymbol: IPropertySymbol { } newProperty }) 7152var oldProperty = ((IMethodSymbol)oldSymbol).AssociatedSymbol; 7162private static bool HasPrintMembersSignature(IMethodSymbol method, Compilation compilation) 7165private static bool HasIEquatableEqualsSignature(IMethodSymbol method) 7168private static bool HasGetHashCodeSignature(IMethodSymbol method)
EditAndContinue\Utilities\Extensions.cs (11)
214=> symbol is IMethodSymbol { Parameters: [var parameter] } && SymbolEqualityComparer.Default.Equals(parameter.Type, symbol.ContainingType); 216public static bool HasDeconstructorSignature(this IMethodSymbol method, IMethodSymbol constructor) 244public static IMethodSymbol? GetMatchingDeconstructor(this IMethodSymbol constructor) 245=> (IMethodSymbol?)constructor.ContainingType.GetMembers(WellKnownMemberNames.DeconstructMethodName).FirstOrDefault( 246static (symbol, constructor) => symbol is IMethodSymbol method && HasDeconstructorSignature(method, constructor), constructor)?.PartialAsImplementation(); 255=> symbol is IMethodSymbol { IsPartialDefinition: true } or IPropertySymbol { IsPartialDefinition: true }; 258=> symbol is IMethodSymbol { PartialDefinitionPart: not null } or IPropertySymbol { PartialDefinitionPart: not null }; 263IMethodSymbol { PartialDefinitionPart: var def } => def, 271IMethodSymbol { PartialImplementationPart: var impl } => impl,
EmbeddedLanguages\DateAndTime\LanguageServices\DateAndTimeLanguageDetector.cs (2)
150=> symbol is IMethodSymbol method && 167private static bool AnalyzeStringLiteral(IMethodSymbol method, string? argName, int? argIndex)
EmbeddedLanguages\EmbeddedLanguageDetector.cs (2)
190m => m is IMethodSymbol { Parameters: [{ Type.SpecialType: SpecialType.System_String }, ..] }); 195if (impl is not IMethodSymbol { Parameters.Length: >= 1 } method)
EmbeddedLanguages\Json\LanguageServices\JsonLanguageDetector.cs (1)
144if (symbol is IMethodSymbol { DeclaredAccessibility: Accessibility.Public, IsStatic: true } &&
EmbeddedLanguages\RegularExpressions\LanguageServices\RegexLanguageDetector.cs (1)
63from method in regexType.GetMembers().OfType<IMethodSymbol>()
EncapsulateField\AbstractEncapsulateFieldService.cs (2)
378protected static IMethodSymbol CreateSet(string originalFieldName, IFieldSymbol field, SyntaxGenerator factory) 397protected static IMethodSymbol CreateGet(string originalFieldName, IFieldSymbol field, SyntaxGenerator factory)
ExtractInterface\AbstractExtractInterfaceService.cs (2)
384case IMethodSymbol method: 401var getMethod = property.GetMethod != null && property.GetMethod.DeclaredAccessibility == Accessibility.Public
ExtractMethod\Extensions.cs (2)
20var methodSymbol = info.Symbol as IMethodSymbol;
ExtractMethod\MethodExtractor.CodeGenerator.cs (4)
97protected abstract IMethodSymbol GenerateMethodDefinition(SyntaxNode insertionPointNode, CancellationToken cancellationToken); 133SemanticDocument originalDocument, IMethodSymbol methodSymbolResult, CancellationToken cancellationToken); 147var newMethodDefinition = GenerateMethodDefinition(insertionPoint, cancellationToken); 165SemanticDocument document, IMethodSymbol newMethodDefinition, CancellationToken cancellationToken)
ExtractMethod\MethodExtractor.VariableSymbol.cs (2)
146var compare = DefaultCompareTo((IMethodSymbol)this.Symbol.ContainingSymbol, (IMethodSymbol)other.Symbol.ContainingSymbol);
FindUsages\AbstractFindUsagesService_FindImplementations.cs (1)
213IMethodSymbol method => method.PartialImplementationPart,
FindUsages\FindUsagesHelpers.cs (1)
50semanticFacts.TryGetPrimaryConstructor(namedType, out var primaryConstructor))
GenerateComparisonOperators\GenerateComparisonOperatorsCodeRefactoringProvider.cs (9)
79var compareMethod = TryGetCompareMethodImpl(containingType, iface); 120private static IMethodSymbol? TryGetCompareMethodImpl(INamedTypeSymbol containingType, ITypeSymbol comparableType) 124if (member is IMethodSymbol method) 125return (IMethodSymbol?)containingType.FindImplementationForInterfaceMember(method); 140var compareMethod = TryGetCompareMethodImpl(containingType, comparableType)!; 159IMethodSymbol compareMethod) 172private static ImmutableArray<IMethodSymbol> GenerateComparisonOperators( 179using var _ = ArrayBuilder<IMethodSymbol>.GetInstance(out var operators); 243if (member is IMethodSymbol method &&
GenerateConstructors\AbstractGenerateConstructorsCodeRefactoringProvider.State.cs (5)
26public IMethodSymbol? MatchingConstructor { get; private set; } 27public IMethodSymbol? DelegatedConstructor { get; private set; } 96private static IMethodSymbol? GetDelegatedConstructorBasedOnParameterTypes( 113private static IMethodSymbol? GetMatchingConstructorBasedOnParameterTypes(INamedTypeSymbol containingType, ImmutableArray<(IParameterSymbol parameter, ISymbol fieldOrProperty)> parameters) 116private static bool MatchesConstructorBasedOnParameterTypes(IMethodSymbol constructor, ImmutableArray<(IParameterSymbol parameter, ISymbol fieldOrProperty)> parameters)
GenerateEqualsAndGetHashCodeFromMembers\AbstractGenerateEqualsAndGetHashCodeService.cs (5)
38public async Task<IMethodSymbol> GenerateEqualsMethodAsync( 50public async Task<IMethodSymbol> GenerateIEquatableEqualsMethodAsync( 61public async Task<IMethodSymbol> GenerateEqualsMethodThroughIEquatableEqualsAsync( 116public async Task<IMethodSymbol> GenerateGetHashCodeMethodAsync( 126private IMethodSymbol CreateGetHashCodeMethod(
GenerateEqualsAndGetHashCodeFromMembers\GenerateEqualsAndGetHashCodeAction.cs (7)
49using var _ = ArrayBuilder<IMethodSymbol>.GetInstance(out var methods); 125private async Task AddOperatorsAsync(ArrayBuilder<IMethodSymbol> members, CancellationToken cancellationToken) 141private IMethodSymbol CreateEqualityOperator( 170private static IMethodSymbol CreateInequalityOperator(Compilation compilation, SyntaxGenerator generator, ImmutableArray<IParameterSymbol> parameters) 187private Task<IMethodSymbol> CreateGetHashCodeMethodAsync(CancellationToken cancellationToken) 193private Task<IMethodSymbol> CreateEqualsMethodAsync(CancellationToken cancellationToken) 201private async Task<IMethodSymbol> CreateIEquatableEqualsMethodAsync(INamedTypeSymbol constructedEquatableType, CancellationToken cancellationToken)
GenerateEqualsAndGetHashCodeFromMembers\GenerateEqualsAndGetHashCodeFromMembersCodeRefactoringProvider.cs (3)
128.OfType<IMethodSymbol>() 161.Any(m => m is IMethodSymbol { Parameters.Length: 1, IsStatic: false, IsImplicitlyDeclared: false }); 165.Any(m => m is IMethodSymbol { Parameters.Length: 0, IsStatic: false, IsImplicitlyDeclared: false });
GenerateEqualsAndGetHashCodeFromMembers\IGenerateEqualsAndGetHashCodeService.cs (4)
29Task<IMethodSymbol> GenerateEqualsMethodAsync(Document document, INamedTypeSymbol namedType, ImmutableArray<ISymbol> members, string? localNameOpt, CancellationToken cancellationToken); 35Task<IMethodSymbol> GenerateEqualsMethodThroughIEquatableEqualsAsync(Document document, INamedTypeSymbol namedType, CancellationToken cancellationToken); 41Task<IMethodSymbol> GenerateIEquatableEqualsMethodAsync(Document document, INamedTypeSymbol namedType, ImmutableArray<ISymbol> members, INamedTypeSymbol constructedEquatableType, CancellationToken cancellationToken); 50Task<IMethodSymbol> GenerateGetHashCodeMethodAsync(Document document, INamedTypeSymbol namedType, ImmutableArray<ISymbol> members, CancellationToken cancellationToken);
GenerateEqualsAndGetHashCodeFromMembers\IGenerateEqualsAndGetHashCodeServiceExtensions.cs (1)
13public static Task<IMethodSymbol> GenerateEqualsMethodAsync(
GenerateType\AbstractGenerateTypeService.GenerateNamedType.cs (1)
155var delegatedConstructor = _state.BaseTypeOrInterfaceOpt.InstanceConstructors.FirstOrDefault(
GenerateType\AbstractGenerateTypeService.State.cs (2)
58public IMethodSymbol? DelegateMethodSymbol { get; private set; } 441public IMethodSymbol? DelegateCreationMethodSymbol { get; set; }
GoToBase\AbstractGoToBaseService.cs (6)
17protected abstract Task<IMethodSymbol?> FindNextConstructorInChainAsync( 18Solution solution, IMethodSymbol constructor, CancellationToken cancellationToken); 20protected static IMethodSymbol? FindBaseNoArgConstructor(IMethodSymbol constructor) 45if (bases.Length == 0 && symbol is IMethodSymbol { MethodKind: MethodKind.Constructor } constructor) 47var nextConstructor = await FindNextConstructorInChainAsync(solution, constructor, cancellationToken).ConfigureAwait(false);
InheritanceMargin\AbstractInheritanceMarginService_Helpers.cs (3)
74if (symbol is IEventSymbol or IPropertySymbol or IMethodSymbol) 605if (memberSymbol is IMethodSymbol or IEventSymbol or IPropertySymbol) 638if (memberSymbol is IMethodSymbol or IEventSymbol or IPropertySymbol
InheritanceMargin\AbstractInheritanceMarginService.cs (1)
77or IMethodSymbol
InitializeParameter\AbstractAddParameterCheckCodeRefactoringProvider.cs (27)
71IMethodSymbol methodSymbol, 104IMethodSymbol methodSymbol, 211document = await AddStringCheckAsync(document, parameter, functionDeclaration, (IMethodSymbol)parameter.ContainingSymbol, blockStatement, NullOrEmptySuffix, lazySimplifierOptions, cancellationToken).ConfigureAwait(false); 217(IMethodSymbol)parameter.ContainingSymbol, blockStatement, lazySimplifierOptions, cancellationToken).ConfigureAwait(false); 420private static (IMethodSymbol? GenericOverload, IMethodSymbol? NonGenericOverload) GetEnumIsDefinedMethods(Compilation compilation) 424var enumIsDefinedGenericMethod = (IMethodSymbol?)enumIsDefinedMembers.FirstOrDefault(m => m is IMethodSymbol { IsStatic: true, Arity: 1, Parameters.Length: 1 }); 425var enumIsDefinedNonGenericMethod = (IMethodSymbol?)enumIsDefinedMembers.FirstOrDefault(m => m is IMethodSymbol { IsStatic: true, Arity: 0, Parameters.Length: 2 }); 463private static bool IsEnumIsDefinedCheck(IOperation statement, IParameterSymbol parameter, IMethodSymbol? enumIsDefinedGenericMethod, IMethodSymbol? enumIsDefinedNonGenericMethod) 473var method = invocation.TargetMethod; 530var targetMethod = invocation.TargetMethod; 545IMethodSymbol method, 568IMethodSymbol method, 584IMethodSymbol method, 600IMethodSymbol method, 634IMethodSymbol method, 643var enumIsDefinedGenericMethod = enumType.GetMembers(nameof(Enum.IsDefined)).FirstOrDefault(m => m is IMethodSymbol { IsStatic: true, Arity: 1, Parameters.Length: 1 }); 698.FirstOrDefault(s => s is IMethodSymbol { Parameters: [{ Type.SpecialType: SpecialType.System_Object }, ..] }); 723.FirstOrDefault(s => s is IMethodSymbol { IsStatic: true, Arity: 1, Parameters.Length: 2 }); 765.FirstOrDefault(s => s is IMethodSymbol { Parameters: [{ Type.SpecialType: SpecialType.System_String }, ..] }); 800var methodSymbol = (IMethodSymbol)parameter.ContainingSymbol;
InitializeParameter\AbstractInitializeMemberFromParameterCodeRefactoringProviderMemberCreation.cs (6)
50Document document, SyntaxNode functionDeclaration, IMethodSymbol method, IBlockOperation? blockStatementOpt, 62IMethodSymbol method, 106IMethodSymbol method, 157IMethodSymbol method, 216IMethodSymbol method) 332var getMethod = CodeGenerationSymbolFactory.CreateAccessorSymbol(
InitializeParameter\AbstractInitializeParameterCodeRefactoringProvider.cs (3)
40IMethodSymbol method, 51IMethodSymbol methodSymbol, 80if (parameter.ContainingSymbol is not IMethodSymbol methodSymbol ||
InlineHints\AbstractInlineParameterNameHintsService.cs (1)
228if (parameter is not { ContainingSymbol: IMethodSymbol { MethodKind: MethodKind.Ordinary or MethodKind.LocalFunction } method })
InlineMethod\AbstractInlineMethodRefactoringProvider.cs (2)
87if (semanticModel.GetSymbolInfo(calleeInvocationNode, cancellationToken).GetAnySymbol() is not IMethodSymbol calleeMethodSymbol) 303if (callerSymbol is IMethodSymbol { MethodKind: MethodKind.Ordinary, IsAsync: false } callerMethodSymbol
InlineMethod\AbstractInlineMethodRefactoringProvider.InlineContext.cs (2)
46IMethodSymbol calleeMethodSymbol, 322IMethodSymbol calleeMethodSymbol,
IntroduceParameter\AbstractIntroduceParameterCodeRefactoringProvider.cs (5)
46protected abstract bool IsDestructor(IMethodSymbol methodSymbol); 74if (containingSymbol is not IMethodSymbol methodSymbol) 155TExpressionSyntax expression, IMethodSymbol methodSymbol, SyntaxNode containingMethod, 252IMethodSymbol methodSymbol, SyntaxNode containingMethod, Dictionary<Document, List<TExpressionSyntax>> methodCallSites, bool allOccurrences, IntroduceParameterCodeActionKind selectedCodeAction, 285Document document, IMethodSymbol methodSymbol, CancellationToken cancellationToken)
IntroduceParameter\IntroduceParameterDocumentRewriter.cs (3)
27IMethodSymbol methodSymbol, 38private readonly IMethodSymbol _methodSymbol = methodSymbol; 454var newMethod = isTrampoline
LanguageServices\AnonymousTypeDisplayService\AbstractStructuralTypeDisplayService.cs (3)
36var invokeMethod = anonymousType.DelegateInvokeMethod ?? throw ExceptionUtilities.Unreachable(); 47IMethodSymbol invokeMethod, 150if (symbol is IMethodSymbol method)
LanguageServices\AnonymousTypeDisplayService\AbstractStructuralTypeDisplayService.StructuralTypeCollectorVisitor.cs (1)
47public override void VisitMethod(IMethodSymbol symbol)
LanguageServices\SymbolDisplayService\AbstractSymbolDisplayService.AbstractSymbolDescriptionBuilder.cs (3)
414else if (symbol is IMethodSymbol method) 722private void AddDescriptionForMethod(IMethodSymbol method) 821.Where(s => s is IMethodSymbol || s.IsIndexer())
MetadataAsSource\AbstractMetadataAsSourceService.WrappedEventSymbol.cs (3)
28public IMethodSymbol? AddMethod => _symbol.AddMethod; 31public IMethodSymbol? RaiseMethod => _symbol.RaiseMethod; 32public IMethodSymbol? RemoveMethod => _symbol.RemoveMethod;
MetadataAsSource\AbstractMetadataAsSourceService.WrappedMethodSymbol.cs (14)
15private sealed class WrappedMethodSymbol(IMethodSymbol methodSymbol, bool canImplementImplicitly, IDocumentationCommentFormattingService docCommentFormattingService) : AbstractWrappedSymbol(methodSymbol, canImplementImplicitly, docCommentFormattingService), IMethodSymbol 17private readonly IMethodSymbol _symbol = methodSymbol; 25public IMethodSymbol ConstructedFrom => _symbol.ConstructedFrom; 32public ImmutableArray<IMethodSymbol> ExplicitInterfaceImplementations 52public new IMethodSymbol OriginalDefinition 60public IMethodSymbol OverriddenMethod => _symbol.OverriddenMethod; 64public IMethodSymbol PartialDefinitionPart => _symbol.PartialDefinitionPart; 66public IMethodSymbol PartialImplementationPart => _symbol.PartialImplementationPart; 74public IMethodSymbol ReducedFrom 109public IMethodSymbol Construct(params ITypeSymbol[] typeArguments) 112public IMethodSymbol Construct(ImmutableArray<ITypeSymbol> typeArguments, ImmutableArray<NullableAnnotation> typeArgumentNullableAnnotations) 118public IMethodSymbol ReduceExtensionMethod(ITypeSymbol receiverType) 121public IMethodSymbol ReduceExtensionMember(ITypeSymbol receiverType) 124public IMethodSymbol AssociatedExtensionImplementation => null;
MetadataAsSource\AbstractMetadataAsSourceService.WrappedNamedTypeSymbol.cs (5)
49SymbolKind.Method => new WrappedMethodSymbol((IMethodSymbol)m, canImplementImplicitly, docCommentFormattingService), 71public IMethodSymbol DelegateInvokeMethod => _symbol.DelegateInvokeMethod; 81public ImmutableArray<IMethodSymbol> InstanceConstructors => _symbol.InstanceConstructors; 82public ImmutableArray<IMethodSymbol> StaticConstructors => _symbol.StaticConstructors; 83public ImmutableArray<IMethodSymbol> Constructors => _symbol.Constructors;
MetadataAsSource\AbstractMetadataAsSourceService.WrappedPropertySymbol.cs (2)
28public IMethodSymbol GetMethod => _symbol.GetMethod; 50public IMethodSymbol SetMethod => _symbol.SetMethod;
PullMemberUp\MemberAndDestinationValidator.cs (1)
47IMethodSymbol { MethodKind: MethodKind.Ordinary } => true,
PullMemberUp\MembersPuller.cs (6)
73private static IMethodSymbol FilterOutNonPublicAccessor(IMethodSymbol getterOrSetter) 82private static IMethodSymbol MakePublicAccessor(IMethodSymbol getterOrSetter) 178else if (member is IMethodSymbol methodSymbol) 450if (member is IMethodSymbol methodSymbol)
QuickInfo\CommonSemanticQuickInfoProvider.ErrorVisitor.cs (1)
38public override bool VisitMethod(IMethodSymbol symbol)
Rename\SymbolicRenameInfo.cs (1)
204if (symbol.Kind == SymbolKind.Method && ((IMethodSymbol)symbol).MethodKind == MethodKind.UserDefinedOperator)
ReplaceMethodWithProperty\AbstractReplaceMethodWithPropertyService.cs (2)
31private static bool OverridesMetadataSymbol(IMethodSymbol? method) 33for (var current = method; current != null; current = current.OverriddenMethod)
ReplaceMethodWithProperty\IReplaceMethodWithPropertyService.cs (4)
30IMethodSymbol getMethod, IMethodSymbol? setMethod, 33public readonly IMethodSymbol GetMethod = getMethod; 34public readonly IMethodSymbol? SetMethod = setMethod;
ReplaceMethodWithProperty\ReplaceMethodWithPropertyCodeRefactoringProvider.cs (27)
54if (semanticModel.GetDeclaredSymbol(methodDeclaration) is not IMethodSymbol methodSymbol || 79var setMethod = FindSetMethod(methodSymbol); 96private static IMethodSymbol? FindSetMethod(IMethodSymbol getMethod) 100var setMethod = containingType.GetMembers() 101.OfType<IMethodSymbol>() 109private static bool IsValidGetMethod(IMethodSymbol getMethod) 121private static bool OverridesMethodFromSystemObject(IMethodSymbol method) 123for (var current = method; current != null; current = current.OverriddenMethod) 134private static bool IsValidSetMethod(IMethodSymbol setMethod, IMethodSymbol getMethod) 142private static bool IsValidSetMethod(IMethodSymbol setMethod) 155IMethodSymbol getMethod, 156IMethodSymbol? setMethod, 344MultiDictionary<DocumentId, IMethodSymbol>.ValueSet originalGetDefinitions, 345MultiDictionary<DocumentId, IMethodSymbol>.ValueSet originalSetDefinitions, 380foreach (var originalSetMethod in originalSetDefinitions) 384var setMethod = GetSymbolInCurrentCompilation(compilation, originalSetMethod, cancellationToken); 401MultiDictionary<DocumentId, IMethodSymbol>.ValueSet originalDefinitions, 406foreach (var originalDefinition in originalDefinitions) 410var getMethod = GetSymbolInCurrentCompilation(compilation, originalDefinition, cancellationToken); 413var setMethod = updateSetMethod ? FindSetMethod(getMethod) : null; 433private static async Task<SyntaxNode?> GetMethodDeclarationAsync(IMethodSymbol? method, CancellationToken cancellationToken) 445private static async Task<MultiDictionary<DocumentId, IMethodSymbol>> GetDefinitionsByDocumentIdAsync( 450var result = new MultiDictionary<DocumentId, IMethodSymbol>(); 455var definition = referencedSymbol.Definition as IMethodSymbol;
ReplacePropertyWithMethods\ReplacePropertyWithMethodsCodeRefactoringProvider.cs (2)
138.OfType<IMethodSymbol>() 148.OfType<IMethodSymbol>()
RQName\RQNodeBuilder.cs (2)
24IMethodSymbol methodSymbol => BuildMethod(methodSymbol), 198private static RQMethod? BuildMethod(IMethodSymbol symbol)
Shared\Extensions\ISymbolExtensions_2.cs (5)
98var methodSymbol = (IMethodSymbol)symbol; 200IMethodSymbol method => GetMethodDocumentation(method, compilation, cancellationToken), 209if (containingSymbol.ContainingSymbol.IsDelegateType() && containingSymbol is IMethodSymbol methodSymbol) 251private static DocumentationComment GetMethodDocumentation(this IMethodSymbol method, Compilation compilation, CancellationToken cancellationToken)
Shared\Extensions\ISymbolExtensions_Sorting.cs (4)
107private static int CompareMethods(IMethodSymbol xMethod, string[] xTypeNames, IMethodSymbol yMethod, string[] yTypeNames) 173? CompareMethods((IMethodSymbol)s1, symbol1ParameterTypeNames, (IMethodSymbol)s2, symbol2ParameterTypeNames)
Shared\Utilities\ExtractTypeHelpers.cs (2)
209var method = member as IMethodSymbol;
SignatureHelp\AbstractSignatureHelpProvider.cs (1)
273if (symbol is IMethodSymbol methodSymbol && methodSymbol.IsGenericMethod && methodSymbol != methodSymbol.OriginalDefinition)
SignatureHelp\CommonSignatureHelpUtilities.cs (2)
163public static async Task<ImmutableArray<IMethodSymbol>> GetCollectionInitializerAddMethodsAsync( 188var addMethods = addSymbols.OfType<IMethodSymbol>()
src\9547feb31df4cc5d\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (2)
447if (owningSymbol is IMethodSymbol method && 734if (context.OwningSymbol is not IMethodSymbol method)
src\9547feb31df4cc5d\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.cs (3)
36private readonly ConcurrentDictionary<IMethodSymbol, bool> _methodsUsedAsDelegates = []; 206parameter.ContainingSymbol is not IMethodSymbol method || 291IMethodSymbol method,
src\roslyn\src\Analyzers\Core\Analyzers\Helpers\DeserializationConstructorCheck.cs (1)
15public bool IsDeserializationConstructor(IMethodSymbol methodSymbol)
src\roslyn\src\Analyzers\Core\Analyzers\Helpers\HashCodeAnalyzer\HashCodeAnalyzer.cs (8)
18IMethodSymbol objectGetHashCodeMethod, 22private readonly IMethodSymbol _objectGetHashCodeMethod = objectGetHashCodeMethod; 35if (objectType?.GetMembers(nameof(GetHashCode)).FirstOrDefault() is not IMethodSymbol objectGetHashCodeMethod) 56if (owningSymbol is not IMethodSymbol { Name: nameof(GetHashCode) } method) 82IMethodSymbol method, ImmutableArray<IOperation> statements) 105IMethodSymbol method, ImmutableArray<IOperation> statements) 191private bool OverridesSystemObject(IMethodSymbol? method) 193for (var current = method; current != null; current = current.OverriddenMethod)
src\roslyn\src\Analyzers\Core\Analyzers\Helpers\HashCodeAnalyzer\HashCodeAnalyzer.OperationDeconstructor.cs (3)
22HashCodeAnalyzer analyzer, IMethodSymbol method, ILocalSymbol? hashCodeVariable) : IDisposable 25private readonly IMethodSymbol _method = method; 62var targetMethod = invocation.TargetMethod;
src\roslyn\src\Analyzers\Core\Analyzers\NamingStyle\NamingStyleDiagnosticAnalyzerBase.cs (1)
121if (symbol is IMethodSymbol methodSymbol && methodSymbol.IsEntryPoint(compilation.TaskType(), compilation.TaskOfTType()))
src\roslyn\src\Analyzers\Core\Analyzers\QualifyMemberAccess\AbstractQualifyMemberAccessDiagnosticAnalyzer.cs (1)
146return symbol == null || symbol.IsStatic || symbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction };
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnnecessarySuppressions\AbstractRemoveUnnecessaryPragmaSuppressionsDiagnosticAnalyzer.cs (1)
772IMethodSymbol { IsPartialDefinition: true } or
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedMembers\AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (12)
365foreach (var method in methods) 547var targetMethod = ((IInvocationOperation)operationContext.Operation).TargetMethod; 560var extensionBlockMethod = targetMethod.TryGetCorrespondingExtensionBlockMethod(); 590var constructor = ((IObjectCreationOperation)operationContext.Operation).Constructor; 616var entryPoint = symbolEndContext.Compilation.GetEntryPoint(cancellationToken); 754case IMethodSymbol: 810if (symbol is IMethodSymbol methodSymbol) 812var extensionBlockMethod = methodSymbol.TryGetCorrespondingExtensionBlockMethod(); 948var methodSymbol = (IMethodSymbol)memberSymbol; 1067private bool IsMethodWithSpecialAttribute(IMethodSymbol methodSymbol) 1070private static bool IsShouldSerializeOrResetPropertyMethod(IMethodSymbol methodSymbol)
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedParametersAndValues\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.cs (1)
110protected abstract bool MethodHasHandlesClause(IMethodSymbol method);
src\roslyn\src\Analyzers\Core\Analyzers\SimplifyInterpolation\AbstractSimplifyInterpolationDiagnosticAnalyzer.cs (1)
50ImmutableDictionary<IMethodSymbol, string> knownToStringFormats,
src\roslyn\src\Analyzers\Core\Analyzers\SimplifyInterpolation\AbstractSimplifyInterpolationHelpers.cs (7)
31public ImmutableDictionary<IMethodSymbol, string> BuildKnownToStringFormatsLookupTable(Compilation compilation) 33using var _ = PooledDictionary<IMethodSymbol, string>.GetInstance(out var builder); 57var member = type?.GetMembers(name).FirstOrDefault(m => m is IMethodSymbol { IsStatic: false, Parameters.Length: 0 }); 58if (member is IMethodSymbol method) 67ImmutableDictionary<IMethodSymbol, string> knownToStringFormats, 122ImmutableDictionary<IMethodSymbol, string> knownToStringFormats, 195private static bool IsObjectToStringOverride(IMethodSymbol method)
src\roslyn\src\Analyzers\Core\Analyzers\SimplifyLinqExpression\AbstractSimplifyLinqExpressionDiagnosticAnalyzer.cs (12)
64TryGetLinqWhereExtensionMethod(enumerableType, out var whereMethodSymbol) && 65TryGetLinqSelectExtensionMethod(enumerableType, out var selectMethodSymbol) && 79static bool TryGetLinqWhereExtensionMethod(INamedTypeSymbol enumerableType, [NotNullWhen(true)] out IMethodSymbol? linqMethod) 82static bool TryGetLinqSelectExtensionMethod(INamedTypeSymbol enumerableType, [NotNullWhen(true)] out IMethodSymbol? linqMethod) 85static bool TryGetLinqExtensionMethod(INamedTypeSymbol enumerableType, string name, [NotNullWhen(true)] out IMethodSymbol? linqMethod) 87foreach (var linqMethodSymbol in enumerableType.GetMembers(name).OfType<IMethodSymbol>()) 102static bool TryGetLinqMethodsThatDoNotReturnEnumerables(INamedTypeSymbol enumerableType, out ImmutableArray<IMethodSymbol> linqMethods) 104using var _ = ArrayBuilder<IMethodSymbol>.GetInstance(out var linqMethodSymbolsBuilder); 106foreach (var method in enumerableType.GetMembers().OfType<IMethodSymbol>()) 177if (members.Any(m => m is IMethodSymbol))
src\roslyn\src\Analyzers\Core\Analyzers\UseAutoProperty\AbstractUseAutoPropertyAnalyzer.cs (5)
87protected abstract TExpression? GetGetterExpression(IMethodSymbol getMethod, CancellationToken cancellationToken); 88protected abstract TExpression? GetSetterExpression(SemanticModel semanticModel, IMethodSymbol setMethod, CancellationToken cancellationToken); 91SemanticModel semanticModel, IMethodSymbol accessor, HashSet<string> fieldNames, HashSet<IFieldSymbol> result, CancellationToken cancellationToken); 257IMethodSymbol getMethod, 275SemanticModel semanticModel, IMethodSymbol setMethod, HashSet<string> fieldNames, CancellationToken cancellationToken)
src\roslyn\src\Analyzers\Core\Analyzers\UseCollectionInitializer\AbstractUseCollectionInitializerAnalyzer.cs (3)
221protected ImmutableArray<IMethodSymbol> GetAddMethods(CancellationToken cancellationToken) 232return addMethods.SelectAsArray(s => s is IMethodSymbol { Parameters: [_, ..] }, s => (IMethodSymbol)s);
src\roslyn\src\Analyzers\Core\Analyzers\UseCollectionInitializer\UpdateExpressionState.cs (3)
197this.SemanticModel.GetSymbolInfo(invocationExpression, cancellationToken).Symbol is IMethodSymbol 256if (this.SemanticModel.GetSymbolInfo(memberAccess, cancellationToken).GetAnySymbol() is not IMethodSymbol method) 282useSpread = method.GetOriginalUnreducedDefinition() is not IMethodSymbol { IsExtensionMethod: true, Parameters: [_, { Type: ITypeParameterSymbol }] };
src\roslyn\src\Analyzers\Core\Analyzers\UseIsNullCheck\AbstractUseIsNullForReferenceEqualsDiagnosticAnalyzer.cs (3)
37var referenceEqualsMethod = objectType.GetMembers(nameof(ReferenceEquals)) 38.OfType<IMethodSymbol>() 56private void AnalyzeSyntax(SyntaxNodeAnalysisContext context, IMethodSymbol referenceEqualsMethod, bool unconstraintedGenericSupported)
src\roslyn\src\Analyzers\Core\Analyzers\UseNullPropagation\AbstractUseNullPropagationDiagnosticAnalyzer_IfStatement.cs (2)
34IMethodSymbol? referenceEqualsMethod) 59IMethodSymbol? referenceEqualsMethod,
src\roslyn\src\Analyzers\Core\Analyzers\UseNullPropagation\AbstractUseNullPropagationDiagnosticAnalyzer.cs (8)
82public (INamedTypeSymbol? expressionType, IMethodSymbol? referenceEqualsMethod) GetAnalysisSymbols(Compilation compilation) 86var referenceEqualsMethod = objectType?.GetMembers(nameof(ReferenceEquals)) 87.OfType<IMethodSymbol>() 130IMethodSymbol? referenceEqualsMethod) 156IMethodSymbol? referenceEqualsMethod, 215if (memberSymbol is IMethodSymbol) 256IMethodSymbol? referenceEqualsMethod, 312IMethodSymbol? referenceEqualsMethod,
src\roslyn\src\Analyzers\Core\Analyzers\ValidateFormatString\AbstractValidateFormatStringDiagnosticAnalyzer.cs (4)
107var method = TryGetValidFormatMethodSymbol(symbolInfo); 280protected static IMethodSymbol? TryGetValidFormatMethodSymbol(SymbolInfo symbolInfo) 292if (((IMethodSymbol)symbolInfo.Symbol).MethodKind == MethodKind.LocalFunction) 308return (IMethodSymbol)symbolInfo.Symbol;
src\roslyn\src\Analyzers\Core\CodeFixes\AddAccessibilityModifiers\AddAccessibilityModifiersHelpers.cs (1)
48if (symbol is IMethodSymbol or IPropertySymbol or IEventSymbol)
src\roslyn\src\Analyzers\Core\CodeFixes\AddExplicitCast\Fixer.cs (2)
61foreach (var candidateSymbol in candidateSymbols.OfType<IMethodSymbol>())
src\roslyn\src\Analyzers\Core\CodeFixes\AddParameter\AbstractAddParameterCodeFixProvider.cs (11)
88if (semanticModel.GetEnclosingSymbol(node.SpanStart, cancellationToken) is IMethodSymbol methodWithDiagnostic) 134var candidates = semanticModel.GetMemberGroup(expression, cancellationToken).OfType<IMethodSymbol>().ToImmutableArray(); 167IMethodSymbol methodSymbol => methodSymbol.ContainingType, // Implicit object creation expressions 198ImmutableArray<IMethodSymbol> methodCandidates) 203foreach (var method in methodCandidates.OrderBy(m => m.Parameters.Length)) 236private static int NonParamsParameterCount(IMethodSymbol method) 311var aMethod = codeFixData.First().Method; // We need to term the MethodGroup and need an arbitrary IMethodSymbol to do so. 342var methodToUpdate = argumentInsertPositionData.MethodToUpdate; 358private static string GetCodeFixTitle(string resourceString, IMethodSymbol methodToUpdate, bool includeParameters) 376IMethodSymbol method, 436IMethodSymbol method,
src\roslyn\src\Analyzers\Core\CodeFixes\AddParameter\AddParameterService.cs (8)
31public static bool HasCascadingDeclarations(IMethodSymbol method) 79IMethodSymbol method, 116foreach (var currentMethodToUpdate in documentLookup) 193if (parameter.ContainingSymbol is not IMethodSymbol { MethodKind: MethodKind.Constructor, DeclaringSyntaxReferences: [var reference] } constructor) 214private static async Task<ImmutableArray<IMethodSymbol>> FindMethodDeclarationReferencesAsync( 215Document invocationDocument, IMethodSymbol method, CancellationToken cancellationToken) 221.OfType<IMethodSymbol>() 226IMethodSymbol method,
src\roslyn\src\Analyzers\Core\CodeFixes\AddParameter\ArgumentInsertPositionData.cs (2)
7internal readonly struct ArgumentInsertPositionData<TArgumentSyntax>(IMethodSymbol methodToUpdate, TArgumentSyntax argumentToInsert, int argumentInsertionIndex) where TArgumentSyntax : SyntaxNode 9public IMethodSymbol MethodToUpdate { get; } = methodToUpdate;
src\roslyn\src\Analyzers\Core\CodeFixes\AddParameter\CodeFixData.cs (2)
12IMethodSymbol method, 20public IMethodSymbol Method { get; } = method ?? throw new ArgumentNullException(nameof(method));
src\roslyn\src\Analyzers\Core\CodeFixes\AddParameter\RegisterFixData.cs (2)
9internal sealed class RegisterFixData<TArgumentSyntax>(SeparatedSyntaxList<TArgumentSyntax> arguments, ImmutableArray<IMethodSymbol> methodCandidates, bool isConstructorInitializer) 17public ImmutableArray<IMethodSymbol> MethodCandidates { get; } = methodCandidates;
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateConstructor\AbstractGenerateConstructorService.cs (6)
44protected abstract IMethodSymbol? GetCurrentConstructor(SemanticModel semanticModel, SyntaxToken token, CancellationToken cancellationToken); 45protected abstract IMethodSymbol? GetDelegatedConstructor(SemanticModel semanticModel, IMethodSymbol constructor, CancellationToken cancellationToken); 47protected bool WillCauseConstructorCycle(State state, SemanticDocument document, IMethodSymbol delegatedConstructor, CancellationToken cancellationToken) 51var currentConstructor = GetCurrentConstructor(document.SemanticModel, state.Token, cancellationToken); 66var currentDelegatedConstructor = delegatedConstructor;
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateConstructor\AbstractGenerateConstructorService.State.cs (9)
46private IMethodSymbol? _delegatedConstructor; 150var delegatedConstructor = FindConstructorToDelegateTo(parameters, expressions, cancellationToken); 183private IMethodSymbol? FindConstructorToDelegateTo( 195var result = FindConstructorToDelegateTo(parameters, expressions, TypeToGenerateIn.InstanceConstructors, cancellationToken) ?? 204private IMethodSymbol? FindConstructorToDelegateTo( 207ImmutableArray<IMethodSymbol> constructors, 212foreach (var constructor in constructors) 250private bool Matches(IMethodSymbol ctor, ISyntaxFactsService service) 437var constructor = CodeGenerationSymbolFactory.CreateConstructorSymbol(
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateConstructor\GenerateConstructorHelpers.cs (4)
30IMethodSymbol constructor) 83IMethodSymbol constructor, 91var constructorInCompilation = (IMethodSymbol?)SymbolKey.Create(constructor).Resolve(semanticModel.Compilation).Symbol;
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateDefaultConstructors\AbstractGenerateDefaultConstructorsService.cs (2)
44var unimplementedDefaultConstructor = state.UnimplementedConstructors.FirstOrDefault( 47foreach (var constructor in state.UnimplementedConstructors)
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateDefaultConstructors\AbstractGenerateDefaultConstructorsService.State.cs (5)
21public ImmutableArray<IMethodSymbol> UnimplementedConstructors { get; private set; } 96var baseNoArgConstructor = baseType.Constructors.FirstOrDefault(c => c.Parameters.Length == 0); 118IMethodSymbol constructor, 119ImmutableArray<IMethodSymbol> classConstructors, 122var matchingConstructor = classConstructors.FirstOrDefault(
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateDefaultConstructors\GenerateDefaultConstructorsCodeAction.cs (5)
22ImmutableArray<IMethodSymbol> constructors) : CodeAction 24private readonly ImmutableArray<IMethodSymbol> _constructors = constructors; 44private IMethodSymbol CreateConstructorDefinition( 45IMethodSymbol baseConstructor) 73private static Accessibility DetermineAccessibility(IMethodSymbol baseConstructor, INamedTypeSymbol classType)
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateConversionService.cs (2)
24protected abstract bool TryInitializeImplicitConversionState(SemanticDocument document, SyntaxNode expression, ISet<TypeKind> classInterfaceModuleStructTypes, CancellationToken cancellationToken, out SyntaxToken identifierToken, [NotNullWhen(true)] out IMethodSymbol? methodSymbol, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn); 25protected abstract bool TryInitializeExplicitConversionState(SemanticDocument document, SyntaxNode expression, ISet<TypeKind> classInterfaceModuleStructTypes, CancellationToken cancellationToken, out SyntaxToken identifierToken, [NotNullWhen(true)] out IMethodSymbol? methodSymbol, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn);
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateConversionService.State.cs (2)
62out var identifierToken, out var methodSymbol, out var typeToGenerateIn)) 86out var identifierToken, out var methodSymbol, out var typeToGenerateIn))
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateDeconstructMethodService.State.cs (1)
71var methodSymbol = CodeGenerationSymbolFactory.CreateMethodSymbol(
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateMethodService.cs (1)
24protected abstract bool TryInitializeExplicitInterfaceState(SemanticDocument document, SyntaxNode node, CancellationToken cancellationToken, out SyntaxToken identifierToken, [NotNullWhen(true)] out IMethodSymbol? methodSymbol, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn);
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateMethodService.State.cs (3)
88out var identifierToken, out var methodSymbol, out var typeToGenerateIn)) 165var delegateInvokeMethod = typeInference.InferDelegateType(semanticModel, SimpleNameOrMemberAccessExpression, cancellationToken)?.DelegateInvokeMethod; 246private static IMethodSymbol CreateMethodSymbolWithReturnType(
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateParameterizedMemberService.CodeAction.cs (1)
85var method = await _state.SignatureInfo.GenerateMethodAsync(syntaxFactory, _isAbstract, cancellationToken).ConfigureAwait(false);
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateParameterizedMemberService.MethodSignatureInfo.cs (2)
16IMethodSymbol methodSymbol, 19private readonly IMethodSymbol _methodSymbol = methodSymbol;
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateParameterizedMemberService.SignatureInfo.cs (4)
69var getMethod = CodeGenerationSymbolFactory.CreateAccessorSymbol( 74var setMethod = includeSetter ? getMethod : null; 89public async ValueTask<IMethodSymbol> GenerateMethodAsync( 104var method = CodeGenerationSymbolFactory.CreateMethodSymbol(
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateParameterizedMemberService.State.cs (2)
86.OfType<IMethodSymbol>(); 93var generatedMethod = await SignatureInfo.GenerateMethodAsync(syntaxFactory, false, cancellationToken).ConfigureAwait(false);
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.CodeAction.cs (3)
62var getAccessor = CreateAccessor(_state.DetermineMaximalAccessibility()); 63var setAccessor = _isReadonly || _refKind != RefKind.None 99private IMethodSymbol CreateAccessor(Accessibility accessibility)
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.cs (1)
206var containingMethod = state.ContainingMethod;
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.State.cs (5)
32public IMethodSymbol ContainingMethod { get; private set; } 398private static IMethodSymbol FindContainingMethodSymbol(int position, SemanticModel semanticModel, CancellationToken cancellationToken) 403if (symbol is IMethodSymbol method && !method.IsAnonymousFunction()) 483var enclosingMethodSymbol = _document.SemanticModel.GetEnclosingSymbol<IMethodSymbol>(SimpleNameOrMemberAccessExpressionOpt.SpanStart, cancellationToken);
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementAbstractClass\ImplementAbstractClassData.cs (7)
167IMethodSymbol method => GenerateMethod(compilation, method, throughMember, modifiers, accessibility), 175Compilation compilation, IMethodSymbol method, ISymbol? throughMember, 210var getMethod = ShouldGenerateAccessor(property.GetMethod) 219var setMethod = ShouldGenerateAccessor(property.SetMethod) 246private IMethodSymbol? GetEventAddOrRemoveMethod( 247IEventSymbol @event, IMethodSymbol? accessor, ISymbol? throughMember, 265private bool ShouldGenerateAccessor([NotNullWhen(true)] IMethodSymbol? method)
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\AbstractImplementInterfaceService.cs (1)
33protected abstract string ToDisplayString(IMethodSymbol disposeImplMethod, SymbolDisplayFormat format);
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementHelpers.cs (5)
45var primaryConstructor = namedType.InstanceConstructors 145case IMethodSymbol methodSymbol: 229var disposeMethod = TryGetIDisposableDispose(compilation); 245public static IMethodSymbol? TryGetIDisposableDispose(Compilation compilation) 253if (member is IMethodSymbol { IsStatic: false, ReturnsVoid: true, Arity: 0, Parameters.Length: 0 } disposeMethod)
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator_DisposePattern.cs (9)
49var disposeMethod = TryGetIDisposableDispose(compilation)!; 114IMethodSymbol disposeMethod, 117var disposeImplMethod = CreateDisposeImplementationMethod(compilation, disposeMethod, disposedValueField); 121var disposeInterfaceMethod = CreateDisposeInterfaceMethod( 130private IMethodSymbol CreateDisposeImplementationMethod( 132IMethodSymbol disposeMethod, 181private IMethodSymbol CreateDisposeInterfaceMethod( 183IMethodSymbol disposeMethod, 219var result = CodeGenerationSymbolFactory.CreateMethodSymbol(
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator_Method.cs (7)
20IMethodSymbol method, 21IMethodSymbol? conflictingMethod, 30var updatedMethod = method.EnsureNonConflictingNames(State.ClassOrStructType, syntaxFacts); 46Compilation compilation, IMethodSymbol updatedMethod, IMethodSymbol? conflictingMethod) 70Compilation compilation, IMethodSymbol method, [NotNullWhen(true)] IMethodSymbol? conflictingMethod)
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator_Property.cs (6)
37var getAccessor = GenerateGetAccessor( 41var setAccessor = GenerateSetAccessor( 87private IMethodSymbol? GenerateSetAccessor( 108var setMethod = property.SetMethod.RemoveInaccessibleAttributesAndAttributesOfTypes( 121private IMethodSymbol? GenerateGetAccessor( 134var getMethod = property.GetMethod.RemoveInaccessibleAttributesAndAttributesOfTypes(
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator.cs (8)
261if (member is not IMethodSymbol method) 300IMethodSymbol method => [GenerateMethod(compilation, method, conflictingMember as IMethodSymbol, accessibility, modifiers, generateAbstractly, useExplicitInterfaceSymbol, memberName)], 309var accessor = CodeGenerationSymbolFactory.CreateAccessorSymbol( 324private IMethodSymbol? GetAddOrRemoveMethod( 325IEventSymbol @event, bool generateInvisibly, IMethodSymbol accessor, string memberName, 361if (member is IMethodSymbol method1 && baseMember is IMethodSymbol method2)
src\roslyn\src\Analyzers\Core\CodeFixes\MakeMethodAsynchronous\AbstractMakeMethodAsynchronousCodeFixProvider.cs (12)
36IMethodSymbol methodSymbol, 67var methodSymbol = GetMethodSymbol(semanticModel, node, cancellationToken); 105IMethodSymbol methodSymbol, 122if (referencedSymbol.Definition is not IMethodSymbol definition) 150IMethodSymbol methodSymbol, 182private static IMethodSymbol? GetMethodSymbol(SemanticModel semanticModel, SyntaxNode node, CancellationToken cancellationToken) 186return symbol as IMethodSymbol; 211var methodSymbol = GetMethodSymbol(semanticModel, node, cancellationToken); 261IMethodSymbol methodSymbol, 280var newMethod = (IMethodSymbol)semanticModel.GetRequiredDeclaredSymbol(newNode, cancellationToken); 291IMethodSymbol methodSymbol,
src\roslyn\src\Analyzers\Core\CodeFixes\MakeMethodSynchronous\AbstractMakeMethodSynchronousCodeFixProvider.cs (8)
25protected abstract SyntaxNode RemoveAsyncTokenAndFixReturnType(IMethodSymbol methodSymbol, SyntaxNode node, KnownTaskTypes knownTypes); 56var methodSymbol = (IMethodSymbol?)(semanticModel.GetDeclaredSymbol(node, cancellationToken) ?? semanticModel.GetSymbolInfo(node, cancellationToken).GetAnySymbol()); 71private async Task<Solution> RenameThenRemoveAsyncTokenAsync(Document document, SyntaxNode node, IMethodSymbol methodSymbol, CancellationToken cancellationToken) 87var newMethod = (IMethodSymbol)semanticModel.GetRequiredDeclaredSymbol(newNode, cancellationToken); 95Document document, IMethodSymbol methodSymbol, SyntaxNode node, CancellationToken cancellationToken) 126if (semanticModel.GetDeclaredSymbol(methodDeclaration, cancellationToken) is IMethodSymbol methodSymbol)
src\roslyn\src\Analyzers\Core\CodeFixes\RemoveAsyncModifier\AbstractRemoveAsyncModifierCodeFixProvider.cs (5)
41var methodSymbol = GetMethodSymbol(node, semanticModel, cancellationToken); 74var methodSymbol = GetMethodSymbol(node, semanticModel, cancellationToken); 93private static IMethodSymbol? GetMethodSymbol(SyntaxNode node, SemanticModel semanticModel, CancellationToken cancellationToken) 94=> semanticModel.GetSymbolInfo(node, cancellationToken).Symbol as IMethodSymbol ?? 95semanticModel.GetDeclaredSymbol(node, cancellationToken) as IMethodSymbol;
src\roslyn\src\Compilers\Core\Portable\DiagnosticAnalyzer\SuppressMessageAttributeState.TargetSymbolResolver.cs (9)
190foreach (var method in GetMatchingMethods(candidateMembers, arity, parameters, returnType)) 504var methodContext = bindingContext as IMethodSymbol; 546var methodContext = bindingContext as IMethodSymbol; 738private ImmutableArray<IMethodSymbol> GetMatchingMethods(ImmutableArray<ISymbol> candidateMembers, int? arity, ParameterInfo[] parameters, TypeInfo? returnType) 740var builder = new ArrayBuilder<IMethodSymbol>(); 744var methodSymbol = symbol as IMethodSymbol;
StackTraceExplorer\AbstractStackTraceSymbolResolver.cs (3)
16public abstract Task<IMethodSymbol?> TryGetBestMatchAsync( 110protected static IMethodSymbol? TryGetBestMatch( 111IEnumerable<IMethodSymbol> candidateFunctions,
StackTraceExplorer\StackFrameLocalMethodResolver.cs (1)
17public override async Task<IMethodSymbol?> TryGetBestMatchAsync(
StackTraceExplorer\StackFrameMethodSymbolResolver.cs (3)
14public override Task<IMethodSymbol?> TryGetBestMatchAsync( 26.OfType<IMethodSymbol>() 29var match = TryGetBestMatch(candidateMethods, methodTypeArguments, methodArguments);
StackTraceExplorer\StackTraceExplorerUtilities.cs (5)
64var method = await TryGetBestMatchAsync(project, fullyQualifiedTypeName, methodNode, methodArguments, methodTypeArguments, cancellationToken).ConfigureAwait(false); 80var method = await TryGetBestMatchAsync(project, fullyQualifiedTypeName, methodNode, methodArguments, methodTypeArguments, cancellationToken).ConfigureAwait(false); 91Task<DefinitionItem> GetDefinitionAsync(IMethodSymbol method) 107private static async Task<IMethodSymbol?> TryGetBestMatchAsync(Project project, string fullyQualifiedTypeName, StackFrameSimpleNameNode methodNode, StackFrameParameterList methodArguments, StackFrameTypeArgumentList? methodTypeArguments, CancellationToken cancellationToken) 120var matchingMethod = await resolver.TryGetBestMatchAsync(project, type, methodNode, methodArguments, methodTypeArguments, cancellationToken).ConfigureAwait(false);
ValueTracking\ValueTracker.cs (4)
128case IMethodSymbol methodSymbol: 188private static async Task TrackMethodSymbolAsync(IMethodSymbol methodSymbol, OperationCollector collector, CancellationToken cancellationToken) 244static bool HasAValueReturn(IMethodSymbol methodSymbol) 249static bool HasAnOutOrRefParam(IMethodSymbol methodSymbol)
ValueTracking\ValueTracker.FindReferencesProgress.cs (1)
50if (symbol is IMethodSymbol methodSymbol)
Microsoft.CodeAnalysis.NetAnalyzers (1315)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\AvoidOutParameters.cs (4)
62var methodSymbol = (IMethodSymbol)analysisContext.Symbol; 85private bool IsTryPatternMethod(IMethodSymbol methodSymbol, int numberOfOutParams) => 92private bool IsDeconstructPattern(IMethodSymbol methodSymbol)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\CancellationTokenParametersMustComeLast.cs (2)
60var methodSymbol = (IMethodSymbol)symbolContext.Symbol;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\CollectionPropertiesShouldBeReadOnly.cs (1)
82IMethodSymbol? setter = property.SetMethod;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\DefineAccessorsForAttributeArguments.cs (2)
105IEnumerable<IMethodSymbol> instanceConstructorsToCheck = attributeType.InstanceConstructors.Where(c => c.DeclaredAccessibility == Accessibility.Public); 110foreach (IMethodSymbol constructor in instanceConstructorsToCheck)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\DoNotCatchGeneralExceptionTypes.cs (2)
39protected override Diagnostic CreateDiagnostic(IMethodSymbol containingMethod, SyntaxToken catchKeyword) 44protected override bool IsConfiguredDisallowedExceptionType(INamedTypeSymbol namedTypeSymbol, IMethodSymbol containingMethod, Compilation compilation, AnalyzerOptions analyzerOptions, CancellationToken cancellationToken)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\DoNotDeclareProtectedMembersInSealedTypes.cs (1)
59if (symbol is IMethodSymbol method && method.IsFinalizer())
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\DoNotDeclareStaticMembersOnGenericTypes.cs (1)
53if (symbol is IMethodSymbol methodSymbol &&
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\DoNotDirectlyAwaitATask.cs (1)
63if (context.OwningSymbol is IMethodSymbol method)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\DoNotExposeGenericLists.cs (2)
90var methodSymbol = (IMethodSymbol)context.Symbol;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\DoNotHideBaseClassMethods.cs (7)
46var method = (IMethodSymbol)context.Symbol; 60foreach (var hiddenMethod in GetMethodsHiddenByMethod(method, method.ContainingType.BaseType)) 67private static IEnumerable<IMethodSymbol> GetMethodsHiddenByMethod(IMethodSymbol method, INamedTypeSymbol? baseType) 78.OfType<IMethodSymbol>() 84foreach (var baseMethod in baseMethods)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\DoNotOverloadOperatorEqualsOnReferenceTypes.cs (2)
47var method = (IMethodSymbol)context.Symbol;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\DoNotPassTypesByReference.cs (2)
46var methodSymbol = (IMethodSymbol)context.Symbol;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\DoNotRaiseExceptionsInUnexpectedLocations.cs (16)
82if (operationBlockContext.OwningSymbol is not IMethodSymbol methodSymbol) 130private readonly Func<IMethodSymbol, Compilation, bool> _matchFunction; 148public MethodCategory(Func<IMethodSymbol, Compilation, bool> matchFunction, bool analyzeOnlyPublicMethods, DiagnosticDescriptor rule, params ITypeSymbol?[] allowedExceptionTypes) 159public bool IsMatch(IMethodSymbol method, Compilation compilation) 225private static bool IsPropertyGetter(IMethodSymbol method, Compilation compilation) 230private static bool IsIndexerGetter(IMethodSymbol method, Compilation compilation) 235private static bool IsEventAccessor(IMethodSymbol method, Compilation compilation) 240private static bool IsEqualsOverrideOrInterfaceImplementation(IMethodSymbol method, Compilation compilation) 248private static bool IsEqualsInterfaceImplementation(IMethodSymbol method, Compilation compilation) 286private static bool IsGetHashCodeInterfaceImplementation(IMethodSymbol method, Compilation compilation) 314private static bool IsGetHashCodeOverride(IMethodSymbol method, Compilation compilation) 319private static bool IsToString(IMethodSymbol method, Compilation compilation) 324private static bool IsStaticConstructor(IMethodSymbol method, Compilation compilation) 329private static bool IsFinalizer(IMethodSymbol method, Compilation compilation) 334private static bool IsComparisonOperator(IMethodSymbol method, Compilation compilation) 351private static bool IsImplicitCastOperator(IMethodSymbol method, Compilation compilation)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\EquatableAnalyzer.cs (1)
91if (constructedEquatable.GetMembers("Equals").FirstOrDefault() is not IMethodSymbol equatableEqualsMethod ||
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\EquatableAnalyzer.Fixer.cs (5)
159IMethodSymbol constructedEqualsMethod = constructedType.GetMembers().OfType<IMethodSymbol>().FirstOrDefault(); 161foreach (IMethodSymbol method in typeSymbol.GetMembers().OfType<IMethodSymbol>()) 163foreach (IMethodSymbol explicitImplementation in method.ExplicitInterfaceImplementations)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\IdentifiersShouldDifferByMoreThanCase.cs (2)
166if (member is IMethodSymbol method) 168foreach (var overload in method.GetOverloads())
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\IdentifiersShouldHaveCorrectPrefix.cs (2)
85(IMethodSymbol)context.Symbol, 108private static void AnalyzeMethodSymbol<TContext>(IMethodSymbol symbol, bool allowSingleLetterTypeParameters, Action<TContext, Diagnostic> addDiagnostic, TContext context)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\IdentifiersShouldNotContainTypeNames.cs (1)
100if (symbolContext.Symbol is IMethodSymbol method)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\IdentifiersShouldNotContainUnderscores.cs (1)
184if (symbol is IMethodSymbol methodSymbol)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\IdentifiersShouldNotHaveIncorrectSuffix.cs (1)
245if (memberSymbol is IMethodSymbol methodSymbol && methodSymbol.IsPropertyAccessor())
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\IdentifiersShouldNotMatchKeywords.cs (2)
217var method = (IMethodSymbol)context.Symbol;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\ImplementIDisposableCorrectly.cs (28)
141if (disposableType.GetMembers(DisposeMethodName).FirstOrDefault() is not IMethodSymbol disposeInterfaceMethod) 152if (garbageCollectorType.GetMembers(SuppressFinalizeMethodName).FirstOrDefault() is not IMethodSymbol suppressFinalizeMethod) 168private readonly IMethodSymbol _disposeInterfaceMethod; 169private readonly IMethodSymbol _suppressFinalizeMethod; 171public PerCompilationAnalyzer(INamedTypeSymbol disposableType, IMethodSymbol disposeInterfaceMethod, IMethodSymbol suppressFinalizeMethod) 203IMethodSymbol? disposeMethod = FindDisposeMethod(type); 211IMethodSymbol disposeBoolMethod = FindDisposeBoolMethod(type); 226foreach (IMethodSymbol method in type.GetMembers().OfType<IMethodSymbol>()) 238if (context.OwningSymbol is not IMethodSymbol method) 255IMethodSymbol? disposeMethod = FindDisposeMethod(type); 293private static void CheckDisposeSignatureRule(IMethodSymbol method, INamedTypeSymbol type, SymbolAnalysisContext context) 305private static void CheckRenameDisposeRule(IMethodSymbol method, INamedTypeSymbol type, SymbolAnalysisContext context) 316private void CheckDisposeOverrideRule(IMethodSymbol method, INamedTypeSymbol type, SymbolAnalysisContext context) 321for (IMethodSymbol? m = method.OverriddenMethod; m != null; m = m.OverriddenMethod) 364private static void CheckDisposeBoolSignatureRule(IMethodSymbol method, INamedTypeSymbol type, SymbolAnalysisContext context) 376private void CheckDisposeImplementationRule(IMethodSymbol method, INamedTypeSymbol type, ImmutableArray<IOperation> operationBlocks, OperationBlockAnalysisContext context) 388private static void CheckFinalizeImplementationRule(IMethodSymbol method, INamedTypeSymbol type, ImmutableArray<IOperation> operationBlocks, OperationBlockAnalysisContext context) 427private IMethodSymbol? FindDisposeMethod(INamedTypeSymbol type) 429if (type.FindImplementationForInterfaceMember(_disposeInterfaceMethod) is IMethodSymbol disposeMethod && Equals(disposeMethod.ContainingType, type)) 440private static IMethodSymbol FindDisposeBoolMethod(INamedTypeSymbol type) 442return type.GetMembers(DisposeMethodName).OfType<IMethodSymbol>().FirstOrDefault(m => m.HasDisposeBoolMethodSignature()); 448private IMethodSymbol? FindInheritedDisposeBoolMethod(INamedTypeSymbol? type) 450IMethodSymbol? method = null; 507private readonly IMethodSymbol _suppressFinalizeMethod; 512public DisposeImplementationValidator(IMethodSymbol suppressFinalizeMethod, INamedTypeSymbol type) 709IMethodSymbol methodSymbol = invocation.TargetMethod;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\ImplementStandardExceptionConstructors.cs (1)
82foreach (IMethodSymbol ctor in namedTypeSymbol.Constructors)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\InterfaceMethodsShouldBeCallableByChildTypes.cs (7)
99var method = (IMethodSymbol)context.OwningSymbol; 118foreach (IMethodSymbol interfaceMethod in method.ExplicitInterfaceImplementations) 137private static bool HasVisibleAlternate(INamedTypeSymbol namedType, IMethodSymbol interfaceMethod, INamedTypeSymbol iDisposableTypeSymbol) 141foreach (IMethodSymbol method in type.GetMembers(interfaceMethod.Name).OfType<IMethodSymbol>()) 154t.GetMembers("Close").OfType<IMethodSymbol>().Any(m =>
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\InterfaceMethodsShouldBeCallableByChildTypes.Fixer.cs (9)
43if (semanticModel.GetDeclaredSymbol(nodeToFix, context.CancellationToken) is not IMethodSymbol methodSymbol) 55IMethodSymbol? candidateToIncreaseVisibility = GetExistingNonVisibleAlternate(methodSymbol); 104private static IMethodSymbol? GetExistingNonVisibleAlternate(IMethodSymbol methodSymbol) 106foreach (IMethodSymbol interfaceMethod in methodSymbol.ExplicitInterfaceImplementations) 110IMethodSymbol candidate = type.GetMembers(interfaceMethod.Name).OfType<IMethodSymbol>().FirstOrDefault(m => !m.Equals(methodSymbol)); 192SymbolKind.Method => ((IMethodSymbol)symbol).ExplicitInterfaceImplementations, 202private static async Task<Document> MakeContainingTypeSealedAsync(Document document, IMethodSymbol methodSymbol, CancellationToken cancellationToken)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\MovePInvokesToNativeMethodsClass.cs (1)
64return symbol.Kind == SymbolKind.Method && ((IMethodSymbol)symbol).GetDllImportData() != null;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\OperatorOverloadsHaveNamedAlternates.cs (6)
86if (member is IMethodSymbol method && 95private static void AnalyzeMethod(IMethodSymbol methodSymbol, SymbolAnalysisContext symbolContext) 133var matchedMethods = new List<IMethodSymbol>(); 140foreach (IMethodSymbol candidateMethod in typeSymbol.GetMembers().OfType<IMethodSymbol>()) 158IMethodSymbol notPublicMethod = matchedMethods.FirstOrDefault(m => !m.IsPublic());
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\OperatorOverloadsHaveNamedAlternates.Fixer.cs (3)
57var operatorOverloadSymbol = (IMethodSymbol)semanticModel.GetDeclaredSymbol(methodDeclaration, cancellationToken)!; 127private static ExpectedMethodSignature? GetExpectedMethodSignature(IMethodSymbol operatorOverloadSymbol, Compilation compilation)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\OperatorsShouldHaveSymmetricalOverloads.Fixer.cs (5)
56var containingOperator = (IMethodSymbol)semanticModel.GetDeclaredSymbol(operatorNode, cancellationToken)!; 76SyntaxGenerator generator, IMethodSymbol containingOperator, Compilation compilation) 82SyntaxGenerator generator, IMethodSymbol containingOperator, Compilation compilation) 110private static OperatorKind GetInvertedOperatorKind(IMethodSymbol containingOperator)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\ParameterNamesShouldMatchBaseDeclaration.cs (5)
48var methodSymbol = (IMethodSymbol)analysisContext.Symbol; 63ImmutableArray<IMethodSymbol> originalDefinitions = methodSymbol.GetOriginalDefinitions(); 72IMethodSymbol? bestMatch = null; 75foreach (var originalDefinition in originalDefinitions)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\PassSystemUriObjectsInsteadOfStrings.cs (3)
81var method = invocation.TargetMethod; 120var overloads = context.Operation.SemanticModel!.GetMemberGroup(node, context.CancellationToken).OfType<IMethodSymbol>(); 131foreach (IMethodSymbol overload in overloads)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\TypesThatOwnDisposableFieldsShouldBeDisposable.Fixer.cs (2)
58IMethodSymbol? disposeMethod = (typeSymbol?.GetMembers("Dispose"))?.OfType<IMethodSymbol>()?.Where(m => m.Parameters.IsEmpty).FirstOrDefault();
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\UriParametersShouldNotBeStrings.cs (4)
71var method = (IMethodSymbol)context.Symbol; 123var overloads = method.ContainingType.GetMembers(method.Name).OfType<IMethodSymbol>(); 126var overload = method.GetMatchingOverload(overloads, index, _uri, context.CancellationToken);
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\UriParametersShouldNotBeStrings.Fixer.cs (4)
82var methodSymbol = (IMethodSymbol)model.GetDeclaredSymbol(methodNode, cancellationToken)!; 98SyntaxGenerator generator, IMethodSymbol methodSymbol, int parameterIndex, Compilation compilation, INamedTypeSymbol uriType) 116private static int GetParameterIndex(IMethodSymbol methodSymbol, SyntaxTree tree, TextSpan span)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\UriReturnValuesShouldNotBeStrings.cs (2)
67var method = (IMethodSymbol)context.Symbol;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\UseEventsWhereAppropriate.cs (3)
49var method = (IMethodSymbol)symbolContext.Symbol; 85private static bool HasEventLikeName(IMethodSymbol method)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\UsePropertiesWhereAppropriate.cs (1)
69if (context.OwningSymbol is not IMethodSymbol methodSymbol ||
Microsoft.CodeQuality.Analyzers\Maintainability\AvoidDeadConditionalCode.cs (2)
69var debugAssertMethods = debugAssert?.GetMembers(nameof(Debug.Assert)).OfType<IMethodSymbol>().ToArray() ?? Array.Empty<IMethodSymbol>();
Microsoft.CodeQuality.Analyzers\Maintainability\AvoidLengthCalculationWhenSlicingToEnd.cs (17)
166IMethodSymbol? substringStartLength, 167IMethodSymbol? spanSliceStartLength, 168IMethodSymbol? readOnlySpanSliceStartLength, 169IMethodSymbol? memorySliceStartLength, 204var substringMembers = stringType?.GetMembers(Substring).OfType<IMethodSymbol>(); 205var substringStartLength = substringMembers.GetFirstOrDefaultMemberWithParameterInfos(int32ParamInfo, int32ParamInfo); 208var spanSliceMembers = spanType?.GetMembers(WellKnownMemberNames.SliceMethodName).OfType<IMethodSymbol>(); 209var spanSliceStartLength = spanSliceMembers.GetFirstOrDefaultMemberWithParameterInfos(int32ParamInfo, int32ParamInfo); 212var readOnlySpanSliceMembers = readOnlySpanType?.GetMembers(WellKnownMemberNames.SliceMethodName).OfType<IMethodSymbol>(); 213var readOnlySpanSliceStartLength = readOnlySpanSliceMembers.GetFirstOrDefaultMemberWithParameterInfos(int32ParamInfo, int32ParamInfo); 216var memorySliceMembers = memoryType?.GetMembers(WellKnownMemberNames.SliceMethodName).OfType<IMethodSymbol>(); 217var memorySliceStartLength = memorySliceMembers.GetFirstOrDefaultMemberWithParameterInfos(int32ParamInfo, int32ParamInfo); 236public IMethodSymbol? SubstringStartLength { get; } 237public IMethodSymbol? SpanSliceStartLength { get; } 238public IMethodSymbol? ReadOnlySpanSliceStartLength { get; } 239public IMethodSymbol? MemorySliceStartLength { get; } 245public bool IsAnyStartLengthMethod(IMethodSymbol method)
Microsoft.CodeQuality.Analyzers\Maintainability\AvoidUninstantiatedInternalClasses.cs (1)
150var methodType = expr.TargetMethod;
Microsoft.CodeQuality.Analyzers\Maintainability\DoNotIgnoreMethodResults.cs (10)
156if (osContext.OwningSymbol is not IMethodSymbol method) 172IMethodSymbol? ctor = ((IObjectCreationOperation)expression).Constructor; 183IMethodSymbol targetMethod = invocationExpression.TargetMethod; 238parameterSymbol.ContainingSymbol is IMethodSymbol methodSymbol && 310IMethodSymbol methodSymbol = (IMethodSymbol)operationContext.ContainingSymbol; 327private static bool IsStringCreatingMethod(IMethodSymbol method) 333private static bool IsTryParseMethod(IMethodSymbol method) 341private static bool IsHResultOrErrorCodeReturningMethod(IMethodSymbol method) 349private static bool IsPureMethod(IMethodSymbol method, Compilation compilation)
Microsoft.CodeQuality.Analyzers\Maintainability\UseCrossPlatformIntrinsicsAnalyzer.cs (16)
140Dictionary<IMethodSymbol, RuleKind> methodSymbols = new Dictionary<IMethodSymbol, RuleKind>(SymbolEqualityComparer.Default); 303static void AddBinaryOperatorMethods(Dictionary<IMethodSymbol, RuleKind> methodSymbols, string name, INamedTypeSymbol typeSymbol, RuleKind ruleKind, params SpecialType[] supportedTypes) 308IEnumerable<IMethodSymbol> members = 310.OfType<IMethodSymbol>() 318methodSymbols.AddRange(members.Select((m) => new KeyValuePair<IMethodSymbol, RuleKind>(m, ruleKind))); 321static void AddShiftOperatorMethods(Dictionary<IMethodSymbol, RuleKind> methodSymbols, string name, INamedTypeSymbol typeSymbol, RuleKind ruleKind, params SpecialType[] supportedTypes) 327IEnumerable<IMethodSymbol> members = 329.OfType<IMethodSymbol>() 337methodSymbols.AddRange(members.Select((m) => new KeyValuePair<IMethodSymbol, RuleKind>(m, ruleKind))); 340static void AddUnaryOperatorMethods(Dictionary<IMethodSymbol, RuleKind> methodSymbols, string name, INamedTypeSymbol typeSymbol, RuleKind ruleKind, params SpecialType[] supportedTypes) 345IEnumerable<IMethodSymbol> members = 347.OfType<IMethodSymbol>() 354methodSymbols.AddRange(members.Select((m) => new KeyValuePair<IMethodSymbol, RuleKind>(m, ruleKind))); 358private void AnalyzeInvocation(OperationAnalysisContext context, Dictionary<IMethodSymbol, RuleKind> methodSymbols) 365IMethodSymbol targetMethod = invocation.TargetMethod;
Microsoft.CodeQuality.Analyzers\Maintainability\UseNameofInPlaceOfString.cs (1)
110IMethodSymbol? methodSymbol = parentOperation switch
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidInfiniteRecursion.cs (1)
50if (operationBlockStartContext.OwningSymbol is not IMethodSymbol methodSymbol ||
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidMultipleEnumerations\AvoidMultipleEnumerations.cs (5)
187ImmutableArray<IMethodSymbol> linqChainMethods, 188ImmutableArray<IMethodSymbol> noEnumerationMethods, 189ImmutableArray<IMethodSymbol> enumeratedMethods, 190ImmutableArray<IMethodSymbol> noEffectLinqChainMethods, 192ImmutableArray<IMethodSymbol> getEnumeratorSymbols,
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidMultipleEnumerations\AvoidMultipleEnumerations.DataFlowOperationVisitor.cs (1)
203var creationMethod = invocationCreationOperation.TargetMethod.ReducedFrom ?? invocationCreationOperation.TargetMethod;
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidMultipleEnumerations\AvoidMultipleEnumerationsHelpers.cs (24)
162private static IParameterSymbol GetReducedFromParameter(IMethodSymbol methodSymbol, IParameterSymbol parameterSymbol) 167var reducedFromMethodSymbol = methodSymbol.ReducedFrom.OriginalDefinition; 184var originalTargetMethod = invocationOperation.TargetMethod.ReducedFrom!.OriginalDefinition; 224IMethodSymbol? invokingMethod, 235var reducedFromMethod = invokingMethod.ReducedFrom ?? invokingMethod; 236var originalMethod = reducedFromMethod.OriginalDefinition; 298var targetMethod = invocationOperation.TargetMethod; 302var reducedFromMethod = targetMethod.ReducedFrom ?? targetMethod; 303var originalMethod = reducedFromMethod.OriginalDefinition; 348var originalMethod = invocationOperation.TargetMethod.ReducedFrom!.OriginalDefinition; 363public static ImmutableArray<IMethodSymbol> GetEnumeratedMethods(WellKnownTypeProvider wellKnownTypeProvider, 368using var builder = ArrayBuilder<IMethodSymbol>.GetInstance(); 378ArrayBuilder<IMethodSymbol> builder) 392ArrayBuilder<IMethodSymbol> builder) 405if (method is IMethodSymbol { Parameters: { Length: > 0 } parameters, IsExtensionMethod: true } methodSymbol 415public static ImmutableArray<IMethodSymbol> GetGetEnumeratorMethods(WellKnownTypeProvider wellKnownTypeProvider) 417using var builder = ArrayBuilder<IMethodSymbol>.GetInstance(); 422if (method is IMethodSymbol methodSymbol) 431if (method is IMethodSymbol methodSymbol) 465public static ImmutableArray<IMethodSymbol> GetLinqMethods(WellKnownTypeProvider wellKnownTypeProvider, ImmutableArray<string> methodNames) 467using var builder = ArrayBuilder<IMethodSymbol>.GetInstance(); 476ArrayBuilder<IMethodSymbol> builder) 480foreach (var methodSymbol in type.GetMembers().OfType<IMethodSymbol>())
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidMultipleEnumerations\FlowAnalysis\GlobalFlowStateDictionaryAnalysisContext.cs (1)
46IMethodSymbol invokedMethod,
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidMultipleEnumerations\WellKnownSymbolsInfo.cs (12)
21public ImmutableArray<IMethodSymbol> LinqChainMethods { get; } 27public ImmutableArray<IMethodSymbol> NoEnumerationMethods { get; } 33public ImmutableArray<IMethodSymbol> EnumeratedMethods { get; } 39public ImmutableArray<IMethodSymbol> NoEffectLinqChainMethods { get; } 51public ImmutableArray<IMethodSymbol> GetEnumeratorMethods { get; } 69ImmutableArray<IMethodSymbol> linqChainMethods, 70ImmutableArray<IMethodSymbol> noEnumerationMethods, 71ImmutableArray<IMethodSymbol> enumeratedMethods, 72ImmutableArray<IMethodSymbol> noEffectLinqChainMethods, 74ImmutableArray<IMethodSymbol> getEnumeratorMethods, 90public bool IsCustomizedEnumerationMethods(IMethodSymbol methodSymbol) 93public bool IsCustomizedLinqChainMethods(IMethodSymbol methodSymbol)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\DoNotCallOverridableMethodsInConstructors.cs (2)
67IMethodSymbol method = operation.TargetMethod; 82if (symbol is not IMethodSymbol m || m.MethodKind != MethodKind.Constructor)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\MarkMembersAsStatic.cs (10)
71var accessorCandidates = TemporarySet<IMethodSymbol>.Empty; 73var methodCandidates = TemporarySet<IMethodSymbol>.Empty; 76var methodsUsedAsDelegates = TemporarySet<IMethodSymbol>.Empty; 92if (context.OwningSymbol is not IMethodSymbol methodSymbol) 127if (operation.Parameter.ContainingSymbol is IMethodSymbol { MethodKind: MethodKind.Constructor }) 167foreach (var candidate in methodCandidates.NonConcurrentEnumerable) 183foreach (var accessor in candidatePropertyOrEvent.GetAccessors()) 208IMethodSymbol methodSymbol, 317private static bool IsExplicitlyVisibleFromCom(IMethodSymbol methodSymbol, WellKnownTypeProvider wellKnownTypeProvider) 385symbol = symbol is IMethodSymbol method && method.AssociatedSymbol != null
Microsoft.CodeQuality.Analyzers\QualityGuidelines\PreferJaggedArraysOverMultidimensional.cs (2)
101var method = (IMethodSymbol)context.Symbol;
Microsoft.CodeQuality.Analyzers\QualityGuidelines\RemoveEmptyFinalizers.cs (1)
51context.OwningSymbol is not IMethodSymbol methodSymbol ||
Microsoft.CodeQuality.Analyzers\QualityGuidelines\ValidateArgumentsOfPublicMethods.cs (2)
47if (operationBlockContext.OwningSymbol is not IMethodSymbol containingMethod || 60var overriddenMethod = containingMethod.OverriddenMethod;
Microsoft.NetCore.Analyzers\Data\ReviewSqlQueriesForSecurityVulnerabilities.cs (3)
67var methodSymbol = (IMethodSymbol)symbol; 130IMethodSymbol? constructorSymbol,
Microsoft.NetCore.Analyzers\ImmutableCollections\DoNotCallToImmutableCollectionOnAnImmutableCollectionValue.cs (1)
71var targetMethod = invocation.TargetMethod;
Microsoft.NetCore.Analyzers\InteropServices\AvoidStringBuilderPInvokeParameters.cs (2)
50var methodSymbol = (IMethodSymbol)context.Symbol;
Microsoft.NetCore.Analyzers\InteropServices\DisableRuntimeMarshalling.cs (1)
164private static void AnalyzeMethodSignature(AutoLayoutTypeCache autoLayoutCache, Action<Diagnostic> reportDiagnostic, IMethodSymbol method, ImmutableArray<Location> locationsOverride = default, DiagnosticDescriptor? descriptorOverride = null)
Microsoft.NetCore.Analyzers\InteropServices\DisableRuntimeMarshallingAnalyzer.DelegateInteropUsageAnalyzer.cs (8)
19private readonly IMethodSymbol? _getDelegateForFunctionPointerNonGeneric; 20private readonly IMethodSymbol? _getDelegateForFunctionPointerGeneric; 21private readonly IMethodSymbol? _getFunctionPointerForDelegateNonGeneric; 22private readonly IMethodSymbol? _getFunctionPointerForDelegateGeneric; 30var getDelegateForFunctionPointerMethods = marshalType.GetMembers("GetDelegateForFunctionPointer").OfType<IMethodSymbol>(); 33var getFunctionPointerForDelegateMethods = marshalType.GetMembers("GetFunctionPointerForDelegate").OfType<IMethodSymbol>(); 103AnalyzeMethod(context.ReportDiagnostic, (IMethodSymbol)context.Symbol); 112private void AnalyzeMethod(Action<Diagnostic> reportDiagnostic, IMethodSymbol symbol)
Microsoft.NetCore.Analyzers\InteropServices\DisableRuntimeMarshallingAnalyzer.DisabledRuntimeMarshallingAssemblyAnalyzer.cs (3)
132IMethodSymbol method = (IMethodSymbol)context.Symbol; 137private void AnalyzeMethod(Action<Diagnostic> reportDiagnostic, IMethodSymbol method)
Microsoft.NetCore.Analyzers\InteropServices\DoNotUseOutAttributeStringPInvokeParameters.cs (2)
50var methodSymbol = (IMethodSymbol)context.Symbol;
Microsoft.NetCore.Analyzers\InteropServices\DynamicInterfaceCastableImplementation.cs (2)
135if (member is not IMethodSymbol { AssociatedSymbol: IPropertySymbol or IEventSymbol }) 139if (member is IMethodSymbol)
Microsoft.NetCore.Analyzers\InteropServices\PInvokeDiagnosticAnalyzer.cs (2)
107var methodSymbol = (IMethodSymbol)context.Symbol;
Microsoft.NetCore.Analyzers\InteropServices\PlatformCompatibilityAnalyzer.cs (18)
183var runtimeIsOSPlatformMethod = runtimeInformationType?.GetMembers().OfType<IMethodSymbol>().FirstOrDefault(m => 192var osPlatformCreateMethod = osPlatformType?.GetMembers("Create").OfType<IMethodSymbol>().FirstOrDefault(m => 205static List<IMethodSymbol> GetOperatingSystemGuardMethods(IMethodSymbol? runtimeIsOSPlatformMethod, 220static IEnumerable<IMethodSymbol> FilterPlatformCheckMethods(INamedTypeSymbol symbol, 223return symbol.GetMembers().OfType<IMethodSymbol>().Where(m => 237static void CheckDependentPlatforms(IMethodSymbol method, SmallDictionary<string, (string relatedPlatform, bool isSubset)> relatedPlatforms) 256static bool NameAndParametersValid(IMethodSymbol method) => method.Name.StartsWith(IsPrefix, StringComparison.Ordinal) && 308ImmutableArray<IMethodSymbol> guardMethods, 309IMethodSymbol? runtimeIsOSPlatformMethod, 310IMethodSymbol? osPlatformCreateMethod, 369var symbol = platformSpecificOperation.Value is IMethodSymbol method && method.IsConstructor() ? 442private static bool ComputeNeedsValueContentAnalysis(IOperation operationBlock, ImmutableArray<IMethodSymbol> guardMethods, IMethodSymbol? runtimeIsOSPlatformMethod, INamedTypeSymbol? osPlatformType) 1373else if (symbol is IMethodSymbol method && method.IsGenericMethod) 1413if (containingSymbol is IMethodSymbol method && method.IsAccessorMethod())
Microsoft.NetCore.Analyzers\InteropServices\PlatformCompatibilityAnalyzer.OperationVisitor.cs (3)
20private readonly ImmutableArray<IMethodSymbol> _platformCheckMethods; 25ImmutableArray<IMethodSymbol> platformCheckMethods, 179IMethodSymbol method,
Microsoft.NetCore.Analyzers\InteropServices\PlatformCompatibilityAnalyzer.Value.cs (1)
41IMethodSymbol invokedPlatformCheckMethod,
Microsoft.NetCore.Analyzers\InteropServices\ProvidePublicParameterlessSafeHandleConstructor.cs (1)
64foreach (var constructor in type.InstanceConstructors)
Microsoft.NetCore.Analyzers\InteropServices\UseValidPlatformString.cs (4)
110var methods = operatingSystemType.GetMembers().OfType<IMethodSymbol>(); 111foreach (var m in methods) 138static (string platformName, int versionPartsCount) ExtractPlatformAndVersionCount(IMethodSymbol method) 149static bool NameAndParametersValid(IMethodSymbol method) =>
Microsoft.NetCore.Analyzers\Performance\AvoidPotentiallyExpensiveCallWhenLogging.cs (13)
221var method = invocationOperation.TargetMethod; 259IMethodSymbol logMethod, 260IMethodSymbol isEnabledMethod, 261Dictionary<IMethodSymbol, int> logExtensionsMethodsAndLevel, 264private readonly IMethodSymbol _logMethod = logMethod; 265private readonly IMethodSymbol _isEnabledMethod = isEnabledMethod; 266private readonly Dictionary<IMethodSymbol, int> _logExtensionsMethodsAndLevel = logExtensionsMethodsAndLevel; 272iLoggerType.GetMembers("Log").OfType<IMethodSymbol>().FirstOrDefault() is not { } logMethod || 273iLoggerType.GetMembers("IsEnabled").OfType<IMethodSymbol>().FirstOrDefault() is not { } isEnabledMethod) 278Dictionary<IMethodSymbol, int> logExtensionsMethods = new(SymbolEqualityComparer.Default); 281foreach (var m in loggerExtensionsType.GetMembers().OfType<IMethodSymbol>()) 308var method = invocation.TargetMethod.ReducedFrom ?? invocation.TargetMethod;
Microsoft.NetCore.Analyzers\Performance\AvoidSingleUseOfLocalJsonSerializerOptions.cs (1)
65if (context.ContainingSymbol is IMethodSymbol method && method.IsTopLevelStatementsEntryPointMethod())
Microsoft.NetCore.Analyzers\Performance\CollapseMultiplePathOperations.cs (18)
59var combineMethods = ImmutableArray.CreateBuilder<IMethodSymbol>(); 60var joinMethods = ImmutableArray.CreateBuilder<IMethodSymbol>(); 64if (member is IMethodSymbol method && method.IsStatic) 93private static bool IsStringReturningMethod(IMethodSymbol method) 104ImmutableArray<IMethodSymbol> combineMethods, 105ImmutableArray<IMethodSymbol> joinMethods) 107var targetMethod = invocation.TargetMethod; 118ImmutableArray<IMethodSymbol> methodsToCheck = default; 121foreach (var method in combineMethods) 133foreach (var method in joinMethods) 161var nestedMethod = nestedInvocation.TargetMethod; 163foreach (var method in methodsToCheck) 188private static bool IsNestedInSimilarCall(IInvocationOperation invocation, ImmutableArray<IMethodSymbol> methodsToCheck) 201var parentMethod = parentInvocation.TargetMethod; 202foreach (var method in methodsToCheck) 216private static int CountTotalArguments(IInvocationOperation invocation, ImmutableArray<IMethodSymbol> methodsToCheck) 224var nestedMethod = nestedInvocation.TargetMethod; 227foreach (var method in methodsToCheck)
Microsoft.NetCore.Analyzers\Performance\ConstantExpectedAnalyzer.cs (3)
147var methodSymbol = (IMethodSymbol)context.Symbol; 157else if (methodSymbol.IsImplementationOfAnyImplicitInterfaceMember(out IMethodSymbol interfaceMethodSymbol))
Microsoft.NetCore.Analyzers\Performance\DoNotGuardCall.cs (10)
181private static bool DoesImplementInterfaceMethod(IMethodSymbol? method, IMethodSymbol? interfaceMethod, Compilation compilation) 218private record GuardedMethod(IMethodSymbol Symbol, bool ExpectsConditionNegated); 223private readonly IMethodSymbol _conditionMethod; 226private GuardedCallSymbols(Compilation compilation, IMethodSymbol conditionMethod, ImmutableArray<GuardedMethod> guardedMethods) 239var conditionMethod = conditionMethodType? 241.OfType<IMethodSymbol>() 254var guardedMethod = guardedMethodType? 256.OfType<IMethodSymbol>() 375private bool IsAnyGuardedMethod(IMethodSymbol method, bool conditionNegated)
Microsoft.NetCore.Analyzers\Performance\DoNotUseAsParallelInForEachLoop.cs (5)
57var asParallelMethods = ImmutableHashSet.CreateRange<IMethodSymbol>( 59parallelEnumerableType.GetMembers("AsParallel").OfType<IMethodSymbol>()); 69private static void AnalyzeForEachLoop(OperationAnalysisContext context, ImmutableHashSet<IMethodSymbol> asParallelMethods) 88var targetMethod = invocation.TargetMethod; 91var methodToCheck = targetMethod.ReducedFrom ?? targetMethod;
Microsoft.NetCore.Analyzers\Performance\PreferConvertToHexStringOverBitConverter.cs (38)
71out var convertToHexStringReplacementMethod)) 95ImmutableArray<IMethodSymbol> stringReplaceMethods, 96ImmutableArray<IMethodSymbol> stringToLowerMethods, 98ImmutableDictionary<IMethodSymbol, IMethodSymbol> bitConverterReplacements, 99ImmutableDictionary<IMethodSymbol, IMethodSymbol> bitConverterReplacementsToLower) 127.OfType<IMethodSymbol>() 137.OfType<IMethodSymbol>() 144.OfType<IMethodSymbol>() 147var bitConverterToString = bitConverterToStringMethods.GetFirstOrDefaultMemberWithParameterTypes(byteArrayType); 148var bitConverterToStringStart = bitConverterToStringMethods.GetFirstOrDefaultMemberWithParameterTypes(byteArrayType, int32Type); 149var bitConverterToStringStartLength = bitConverterToStringMethods.GetFirstOrDefaultMemberWithParameterTypes(byteArrayType, int32Type, int32Type); 152.OfType<IMethodSymbol>() 155var convertToHexString = convertToHexStringMethods.GetFirstOrDefaultMemberWithParameterTypes(byteArrayType); 156var convertToHexStringRos = rosByteType is not null ? convertToHexStringMethods.GetFirstOrDefaultMemberWithParameterTypes(rosByteType) : null; 157var convertToHexStringStartLength = convertToHexStringMethods.GetFirstOrDefaultMemberWithParameterTypes(byteArrayType, int32Type, int32Type); 159var bitConverterReplacementsBuilder = ImmutableDictionary.CreateBuilder<IMethodSymbol, IMethodSymbol>(); 175.OfType<IMethodSymbol>() 178var convertToHexStringLower = convertToHexStringLowerMethods.GetFirstOrDefaultMemberWithParameterTypes(byteArrayType); 179var convertToHexStringLowerRos = rosByteType is not null ? convertToHexStringLowerMethods.GetFirstOrDefaultMemberWithParameterTypes(rosByteType) : null; 180var convertToHexStringLowerStartLength = convertToHexStringLowerMethods.GetFirstOrDefaultMemberWithParameterTypes(byteArrayType, int32Type, int32Type); 183var bitConverterReplacementsToLowerBuilder = ImmutableDictionary.CreateBuilder<IMethodSymbol, IMethodSymbol>(); 197bool FilterStringReplaceMethods(IMethodSymbol stringReplaceMethod) 229[NotNullWhen(true)] out IMethodSymbol? replacementMethod) 286_bitConverterReplacementsToLower.TryGetValue(bitConverterInvocation.TargetMethod, out var replacementToLower)) 294else if (_bitConverterReplacements.TryGetValue(bitConverterInvocation.TargetMethod, out var replacement)) 312private bool IsAnyBitConverterMethod(IMethodSymbol method) 317private bool IsAnyStringReplaceMethod(IMethodSymbol? method) 322private bool IsAnyStringToLowerMethod(IMethodSymbol? method) 351private readonly ImmutableArray<IMethodSymbol> _stringReplaceMethods; 352private readonly ImmutableArray<IMethodSymbol> _stringToLowerMethods; 354private readonly ImmutableDictionary<IMethodSymbol, IMethodSymbol> _bitConverterReplacements; 355private readonly ImmutableDictionary<IMethodSymbol, IMethodSymbol> _bitConverterReplacementsToLower;
Microsoft.NetCore.Analyzers\Performance\PreferDictionaryTryMethodsOverContainsKeyGuardAnalyzer.cs (14)
53public DictionaryUsageContext(IOperation dictionaryReference, IOperation containsKeyArgumentReference, IMethodSymbol addSymbol) 100public IMethodSymbol AddSymbol { get; } 128if (!TryGetDictionaryTypeAndMembers(context.Compilation, out var iDictionaryType, out var containsKeySymbol, out var addSymbol)) 136private static void OnInvocationOperation(INamedTypeSymbol iDictionaryType, IMethodSymbol containsKeySymbol, IMethodSymbol addSymbol, OperationAnalysisContext context) 230[NotNullWhen(true)] out IMethodSymbol? containsKeySymbol, 231[NotNullWhen(true)] out IMethodSymbol? addSymbol) 242containsKeySymbol = iDictionaryType.GetMembers(ContainsKey).OfType<IMethodSymbol>().FirstOrDefault(); 243addSymbol = iDictionaryType.GetMembers(Add).OfType<IMethodSymbol>().FirstOrDefault(); 248private static bool IsContainsKeyMethod(IMethodSymbol suspectedContainsKeyMethod, IMethodSymbol containsKeyMethod) 264private static bool DoesSignatureMatch(IMethodSymbol suspected, IMethodSymbol comparator)
Microsoft.NetCore.Analyzers\Performance\PreferHashDataOverComputeHash.cs (29)
173methodHelper.TryGetHashDataMethod(declarationTuple.OriginalType, type, out var hashDataMethodSymbol)) 229if (!methodHelper.TryGetHashDataMethod(originalHashType, computeType, out var staticHashMethod)) 346private readonly IMethodSymbol _computeHashMethodSymbol; 347private readonly IMethodSymbol _disposeMethodSymbol; 348private readonly IMethodSymbol? _computeHashSectionMethodSymbol; 349private readonly IMethodSymbol? _tryComputeHashMethodSymbol; 370IMethodSymbol computeHashMethodSymbol, 371IMethodSymbol disposeMethodSymbol, 372IMethodSymbol? computeHashSectionMethodSymbol, 373IMethodSymbol? tryComputeHashMethodSymbol, 397IMethodSymbol methodSymbol = invocationOperation.TargetMethod; 435public bool TryGetHashDataMethod(ITypeSymbol? originalHashType, ComputeType computeType, [NotNullWhen(true)] out IMethodSymbol? staticHashMethod) 447public bool TryGetHashDataMethodByteArg(ITypeSymbol? originalHashType, [NotNullWhen(true)] out IMethodSymbol? staticHashMethod) => TryGetHashDataMethodOneArg(originalHashType, _byteArrayParameter, out staticHashMethod); 449public bool TryGetHashDataMethodSpanArg(ITypeSymbol? originalHashType, [NotNullWhen(true)] out IMethodSymbol? staticHashMethod) => TryGetHashDataMethodOneArg(originalHashType, _rosByteParameter, out staticHashMethod); 451public bool TryGetTryHashDataMethod(ITypeSymbol? originalHashType, [NotNullWhen(true)] out IMethodSymbol? staticHashMethod) => TryGetTryHashDataMethod(originalHashType, _rosByteParameter, _spanByteParameter, _intParameter, out staticHashMethod); 453private static bool TryGetHashDataMethodOneArg(ITypeSymbol? originalHashType, ParameterInfo argOne, [NotNullWhen(true)] out IMethodSymbol? staticHashMethod) 466staticHashMethod = originalHashType.GetMembers(HashDataMethodName).OfType<IMethodSymbol>() 477[NotNullWhen(true)] out IMethodSymbol? staticHashMethod) 490staticHashMethod = originalHashType.GetMembers(TryHashDataMethodName).OfType<IMethodSymbol>() 540var hashDataMethodType = sha256Type.GetMembers(HashDataMethodName).OfType<IMethodSymbol>().GetFirstOrDefaultMemberWithParameterInfos(byteArrayParameter); 546var disposeHashMethodBaseType = hashAlgoBaseType.GetMembers(DisposeMethodName).OfType<IMethodSymbol>().GetFirstOrDefaultMemberWithParameterInfos(); 552var computeHashMethodBaseType = hashAlgoBaseType.GetMembers(ComputeHashMethodName).OfType<IMethodSymbol>().GetFirstOrDefaultMemberWithParameterInfos(byteArrayParameter); 558var computeHashSectionMethodBaseType = hashAlgoBaseType.GetMembers(ComputeHashMethodName).OfType<IMethodSymbol>().GetFirstOrDefaultMemberWithParameterInfos(byteArrayParameter, intParameter, intParameter); 559var tryComputeHashMethodBaseType = hashAlgoBaseType.GetMembers(TryComputeHashMethodName).OfType<IMethodSymbol>().GetFirstOrDefaultMemberWithParameterInfos(rosByteParameter, spanByteParameter, intParameter);
Microsoft.NetCore.Analyzers\Performance\PreferLengthCountIsEmptyOverAnyAnalyzer.cs (4)
81var anyMethod = typeProvider 84.OfType<IMethodSymbol>() 93private static void OnInvocationAnalysis(OperationAnalysisContext context, INamedTypeSymbol iEnumerable, INamedTypeSymbol iEnumerableOfT, IMethodSymbol anyMethod, INamedTypeSymbol? linqExpressionType) 101var originalMethod = invocation.TargetMethod.OriginalDefinition;
Microsoft.NetCore.Analyzers\Performance\PreferReadOnlySpanOverSpan.cs (5)
62if (blockStartContext.OwningSymbol is not IMethodSymbol methodSymbol || 134IMethodSymbol containingMethod) 276.OfType<IMethodSymbol>() 280private static bool IsPropertyAccessSafe(IPropertyReferenceOperation propRef, IMethodSymbol containingMethod) 367IMethodSymbol containingMethod,
Microsoft.NetCore.Analyzers\Performance\RecommendCaseInsensitiveStringComparison.Analyzer.cs (31)
103IMethodSymbol? toLowerParameterlessMethod = stringType.GetMembers(StringToLowerMethodName).OfType<IMethodSymbol>().GetFirstOrDefaultMemberWithParameterInfos(); 109IMethodSymbol? toLowerInvariantParameterlessMethod = stringType.GetMembers(StringToLowerInvariantMethodName).OfType<IMethodSymbol>().GetFirstOrDefaultMemberWithParameterInfos(); 115IMethodSymbol? toUpperParameterlessMethod = stringType.GetMembers(StringToUpperMethodName).OfType<IMethodSymbol>().GetFirstOrDefaultMemberWithParameterInfos(); 121IMethodSymbol? toUpperInvariantParameterlessMethod = stringType.GetMembers(StringToUpperInvariantMethodName).OfType<IMethodSymbol>().GetFirstOrDefaultMemberWithParameterInfos(); 135IMethodSymbol? stringEqualsStringMethod = stringType.GetMembers(StringEqualsMethodName).OfType<IMethodSymbol>().GetFirstOrDefaultMemberWithParameterInfos(stringParameter); 144IMethodSymbol? containsStringMethod = stringType.GetMembers(StringContainsMethodName).OfType<IMethodSymbol>().GetFirstOrDefaultMemberWithParameterInfos(stringParameter); 151IMethodSymbol? startsWithStringMethod = stringType.GetMembers(StringStartsWithMethodName).OfType<IMethodSymbol>().GetFirstOrDefaultMemberWithParameterInfos(stringParameter); 157IEnumerable<IMethodSymbol> indexOfMethods = stringType.GetMembers(StringIndexOfMethodName).OfType<IMethodSymbol>(); 160IMethodSymbol? indexOfStringMethod = indexOfMethods.GetFirstOrDefaultMemberWithParameterInfos(stringParameter); 173IMethodSymbol? indexOfStringInt32Method = indexOfMethods.GetFirstOrDefaultMemberWithParameterInfos(stringInt32Parameters); 187IMethodSymbol? indexOfStringInt32Int32Method = indexOfMethods.GetFirstOrDefaultMemberWithParameterInfos(stringInt32Int32Parameters); 194IMethodSymbol? compareToStringMethod = stringType.GetMembers(StringCompareToMethodName).OfType<IMethodSymbol>().GetFirstOrDefaultMemberWithParameterInfos(stringParameter); 218IMethodSymbol? containsStringWithStringComparisonMethod 219= stringType.GetMembers(StringContainsMethodName).OfType<IMethodSymbol>().GetFirstOrDefaultMemberWithParameterInfos(stringStringComparisonParameters); 240IMethodSymbol containsStringMethod, IMethodSymbol? containsStringWithStringComparisonMethod, IMethodSymbol startsWithStringMethod, IMethodSymbol compareToStringMethod, 241IMethodSymbol indexOfStringMethod, IMethodSymbol indexOfStringInt32Method, IMethodSymbol indexOfStringInt32Int32Method) 243IMethodSymbol diagnosableMethod = invocation.TargetMethod;
Microsoft.NetCore.Analyzers\Performance\UseCompositeFormat.cs (6)
59IMethodSymbol[] formatCompositeMethods = stringType.GetMembers("Format").OfType<IMethodSymbol>() 71IMethodSymbol[] appendFormatCompositeMethods = stringBuilderType.GetMembers("AppendFormat").OfType<IMethodSymbol>() 95IMethodSymbol targetMethod = invocation.TargetMethod; 188private static bool HasAllCompositeFormatMethods(IMethodSymbol[] methods)
Microsoft.NetCore.Analyzers\Performance\UseConcreteTypeAnalyzer.Collector.cs (25)
22public ConcurrentDictionary<IFieldSymbol, PooledConcurrentSet<IMethodSymbol>> VirtualDispatchFields { get; } = new(SymbolEqualityComparer.Default); 23public ConcurrentDictionary<IPropertySymbol, PooledConcurrentSet<IMethodSymbol>> VirtualDispatchProperties { get; } = new(SymbolEqualityComparer.Default); 24public ConcurrentDictionary<ILocalSymbol, PooledConcurrentSet<IMethodSymbol>> VirtualDispatchLocals { get; } = new(SymbolEqualityComparer.Default); 25public ConcurrentDictionary<IParameterSymbol, PooledConcurrentSet<IMethodSymbol>> VirtualDispatchParameters { get; } = new(SymbolEqualityComparer.Default); 32public ConcurrentDictionary<IMethodSymbol, PooledConcurrentSet<ITypeSymbol>> MethodReturns { get; } = new(SymbolEqualityComparer.Default); 34public ConcurrentDictionary<IMethodSymbol, bool> MethodsAssignedToDelegate { get; } = new(SymbolEqualityComparer.Default); 97var targetMethod = op.Property.GetMethod ?? op.Property.SetMethod!; 399if (c is IMethodSymbol methodSym) 611foreach (var method in value) 624foreach (var method in value) 634if (parameter.ContainingSymbol is IMethodSymbol method) 639foreach (var m in value) 676if (parameter.ContainingSymbol is IMethodSymbol method) 691var method = pair.Key; 712private bool CanUpgrade(IMethodSymbol methodSym) 731var m = setter ? propSym.SetMethod! : propSym.GetMethod!; 740private void RecordVirtualDispatch(IFieldSymbol field, IMethodSymbol target) => VirtualDispatchFields.GetOrAdd(field, _ => PooledConcurrentSet<IMethodSymbol>.GetInstance(SymbolEqualityComparer.Default)).Add(target); 741private void RecordVirtualDispatch(IPropertySymbol property, IMethodSymbol target) => VirtualDispatchProperties.GetOrAdd(property, _ => PooledConcurrentSet<IMethodSymbol>.GetInstance(SymbolEqualityComparer.Default)).Add(target); 742private void RecordVirtualDispatch(ILocalSymbol local, IMethodSymbol target) => VirtualDispatchLocals.GetOrAdd(local, _ => PooledConcurrentSet<IMethodSymbol>.GetInstance(SymbolEqualityComparer.Default)).Add(target); 743private void RecordVirtualDispatch(IParameterSymbol parameter, IMethodSymbol target) => VirtualDispatchParameters.GetOrAdd(parameter, _ => PooledConcurrentSet<IMethodSymbol>.GetInstance(SymbolEqualityComparer.Default)).Add(target); 750private void RecordReturn(IMethodSymbol method, ITypeSymbol valueType) => MethodReturns.GetOrAdd(method, _ => PooledConcurrentSet<ITypeSymbol>.GetInstance(SymbolEqualityComparer.Default)).Add(valueType);
Microsoft.NetCore.Analyzers\Performance\UseConcreteTypeAnalyzer.cs (6)
221if (parameter.ContainingSymbol is IMethodSymbol method) 234var method = pair.Key; 244void Evaluate(ISymbol affectedSymbol, ITypeSymbol fromType, PooledConcurrentSet<ITypeSymbol> typesAssigned, PooledConcurrentSet<IMethodSymbol>? targets, DiagnosticDescriptor desc) 274foreach (var t in targets) 315if (m is IMethodSymbol ms) 402bool CanUpgrade(IMethodSymbol methodSym) => !coll.MethodsAssignedToDelegate.ContainsKey(methodSym);
Microsoft.NetCore.Analyzers\Performance\UseCountProperly.cs (20)
109ImmutableHashSet<IMethodSymbol>.Builder syncMethods = ImmutableHashSet.CreateBuilder<IMethodSymbol>(); 110ImmutableHashSet<IMethodSymbol>.Builder asyncMethods = ImmutableHashSet.CreateBuilder<IMethodSymbol>(); 114IEnumerable<IMethodSymbol>? methods = namedType?.GetMembers(Count).OfType<IMethodSymbol>().Where(m => m.Parameters.Length <= 2); 117methods = namedType?.GetMembers(LongCount).OfType<IMethodSymbol>().Where(m => m.Parameters.Length <= 2); 121methods = namedType?.GetMembers(Count).OfType<IMethodSymbol>().Where(m => m.Parameters.Length <= 2); 124methods = namedType?.GetMembers(LongCount).OfType<IMethodSymbol>().Where(m => m.Parameters.Length <= 2); 128methods = namedType?.GetMembers(CountAsync).OfType<IMethodSymbol>().Where(m => m.Parameters.Length <= 2); 131methods = namedType?.GetMembers(LongCountAsync).OfType<IMethodSymbol>().Where(m => m.Parameters.Length <= 2); 135methods = namedType?.GetMembers(CountAsync).OfType<IMethodSymbol>().Where(m => m.Parameters.Length <= 2); 138methods = namedType?.GetMembers(LongCountAsync).OfType<IMethodSymbol>().Where(m => m.Parameters.Length <= 2); 174static void AddIfNotNull(ImmutableHashSet<IMethodSymbol>.Builder set, IEnumerable<IMethodSymbol>? others) 186ImmutableHashSet<IMethodSymbol> syncMethods, 187ImmutableHashSet<IMethodSymbol> asyncMethods, 196IMethodSymbol originalDefinition = (invocationOperation.TargetMethod.ReducedFrom ?? invocationOperation.TargetMethod).OriginalDefinition; 555IMethodSymbol methodSymbol = invocationOperation.TargetMethod; 764return containingSymbol is IMethodSymbol methodSymbol &&
Microsoft.NetCore.Analyzers\Performance\UseSearchValues.cs (5)
65private void AnalyzeInvocation(OperationAnalysisContext context, ImmutableHashSet<IMethodSymbol> indexOfAnyMethodsToDetect, INamedTypeSymbol readOnlySpanType) 94private static ImmutableHashSet<IMethodSymbol> GetIndexOfAnyMethods(Compilation compilation) 96var methods = ImmutableHashSet.CreateBuilder<IMethodSymbol>(); 104if (member is IMethodSymbol method && 119if (member is not IMethodSymbol method ||
Microsoft.NetCore.Analyzers\Performance\UseSpanClearInsteadOfFill.cs (2)
54var spanFillMethod = spanType.GetMembers(FillMethod) 55.OfType<IMethodSymbol>()
Microsoft.NetCore.Analyzers\Performance\UseStartsWithInsteadOfIndexOfComparisonWithZero.cs (6)
53foreach (var startsWithMethod in stringType.GetMembers("StartsWith").OfType<IMethodSymbol>()) 68var indexOfMethodsBuilder = ImmutableArray.CreateBuilder<(IMethodSymbol IndexOfSymbol, string OverloadPropertyValue)>(); 69foreach (var indexOfMethod in stringType.GetMembers("IndexOf").OfType<IMethodSymbol>()) 125ImmutableArray<(IMethodSymbol Symbol, string OverloadPropertyValue)> indexOfMethods,
Microsoft.NetCore.Analyzers\Performance\UseStringContainsCharOverloadWithSingleCharactersAnalyzer.cs (2)
52var ruleIsApplicable = stringType.GetMembers("Contains").OfType<IMethodSymbol>().Any(m => 78return invocationOperation.TargetMethod is IMethodSymbol invokedMethod
Microsoft.NetCore.Analyzers\Performance\UseStringMethodCharOverloadWithSingleCharacters.cs (2)
79.OfType<IMethodSymbol>() 158if (invocationOperation.TargetMethod is IMethodSymbol invokedMethod &&
Microsoft.NetCore.Analyzers\Runtime\AttributeStringLiteralsShouldParseCorrectly.cs (3)
107var methodSymbol = (IMethodSymbol)symbol; 155var attributeConstructor = attributeData.AttributeConstructor;
Microsoft.NetCore.Analyzers\Runtime\AvoidConstArrays.cs (1)
53if (context.ContainingSymbol is IMethodSymbol method && method.MethodKind == MethodKind.StaticConstructor)
Microsoft.NetCore.Analyzers\Runtime\AvoidConstArrays.Fixer.cs (1)
60if (enclosingSymbol is IMethodSymbol method)
Microsoft.NetCore.Analyzers\Runtime\AvoidUnreliableStreamRead.cs (11)
93ImmutableArray<IMethodSymbol> streamReadMethods, 94ImmutableArray<IMethodSymbol> streamReadAsyncMethods, 114.OfType<IMethodSymbol>() 117.OfType<IMethodSymbol>() 134public bool IsAnyStreamReadMethod(IMethodSymbol method) 140public bool IsAnyStreamReadAsyncMethod(IMethodSymbol method) 151private static bool IsOverrideOf(IMethodSymbol method, IMethodSymbol baseMethod) 153var overriddenMethod = method.OverriddenMethod; 167private readonly ImmutableArray<IMethodSymbol> _streamReadMethods; 168private readonly ImmutableArray<IMethodSymbol> _streamReadAsyncMethods;
Microsoft.NetCore.Analyzers\Runtime\AvoidUnreliableStreamRead.Fixer.cs (1)
68.OfType<IMethodSymbol>()
Microsoft.NetCore.Analyzers\Runtime\AvoidZeroLengthArrayAllocations.cs (4)
59if (typeSymbol.GetMembers(ArrayEmptyMethodName).FirstOrDefault() is IMethodSymbol methodSymbol && methodSymbol.DeclaredAccessibility == Accessibility.Public && 69private void AnalyzeOperation(OperationAnalysisContext context, IMethodSymbol arrayEmptyMethodSymbol, INamedTypeSymbol? linqExpressionType) 74private static void AnalyzeOperation(OperationAnalysisContext context, IMethodSymbol arrayEmptyMethodSymbol, INamedTypeSymbol? linqExpressionType, Func<SyntaxNode, bool> isAttributeSyntax, Func<SyntaxNode, bool> isCollectionExpressionSyntax) 119var constructed = arrayEmptyMethodSymbol.Construct(elementType);
Microsoft.NetCore.Analyzers\Runtime\BufferBlockCopyLengthAnalyzer.cs (2)
59IMethodSymbol? blockCopyMethod = bufferType 61.OfType<IMethodSymbol>()
Microsoft.NetCore.Analyzers\Runtime\CallGCSuppressFinalizeCorrectly.cs (9)
77var gcSuppressFinalizeMethodSymbol = compilationContext.Compilation 80.OfType<IMethodSymbol>() 95var methodSymbol = (IMethodSymbol)operationBlockContext.OwningSymbol; 120private readonly IMethodSymbol _containingMethodSymbol; 121private readonly IMethodSymbol _gcSuppressFinalizeMethodSymbol; 126public SuppressFinalizeAnalyzer(IMethodSymbol methodSymbol, IMethodSymbol gcSuppressFinalizeMethodSymbol, Compilation compilation) 180private SuppressFinalizeUsage GetAllowedSuppressFinalizeUsage(IMethodSymbol method)
Microsoft.NetCore.Analyzers\Runtime\DetectPreviewFeatureAnalyzer.cs (7)
221protected abstract SyntaxNode? GetPreviewParameterSyntaxNodeForMethod(IMethodSymbol methodSymbol, ISymbol parameterSymbol); 450case IMethodSymbol methodSymbol: 493if (symbol is IMethodSymbol methodSymbol && methodSymbol.Arity > 0) 573if (propertyOrMethodSymbol is IMethodSymbol method) 677(symbol is IMethodSymbol method && method.AssociatedSymbol != null && SymbolIsAnnotatedAsPreview(method.AssociatedSymbol, requiresPreviewFeaturesSymbols, previewFeatureAttributeSymbol))) 686else if (symbol is IMethodSymbol or IPropertySymbol) 789if (symbol is IMethodSymbol methodSymbol && methodSymbol.IsConstructor())
Microsoft.NetCore.Analyzers\Runtime\DisposableFieldsShouldBeDisposed.cs (5)
95bool IsDisposeMethod(IMethodSymbol method) 100foreach (var method in namedType.GetMembers().OfType<IMethodSymbol>()) 112if (IsDisposeMethod((IMethodSymbol)method)) 141if (operationBlockStartContext.OwningSymbol is not IMethodSymbol containingMethod)
Microsoft.NetCore.Analyzers\Runtime\DisposableTypesShouldDeclareFinalizer.cs (1)
112IMethodSymbol method = invocation.TargetMethod;
Microsoft.NetCore.Analyzers\Runtime\DisposeMethodsShouldCallBaseClassDispose.cs (1)
54if (operationBlockStartContext.OwningSymbol is not IMethodSymbol containingMethod ||
Microsoft.NetCore.Analyzers\Runtime\DisposeObjectsBeforeLosingScope.cs (2)
90if (operationBlockContext.OwningSymbol is not IMethodSymbol containingMethod || 162bool SkipInterproceduralAnalysis(IMethodSymbol invokedMethod)
Microsoft.NetCore.Analyzers\Runtime\DoNotCallEnumerableCastOrOfTypeWithIncompatibleTypesAnalyzer.cs (2)
72.OfType<IMethodSymbol>() 92var targetMethod = (invocation.TargetMethod.ReducedFrom ?? invocation.TargetMethod).OriginalDefinition;
Microsoft.NetCore.Analyzers\Runtime\DoNotDefineFinalizersForTypesDerivedFromMemoryManager.cs (1)
65if (symbol is IMethodSymbol method && method.IsFinalizer())
Microsoft.NetCore.Analyzers\Runtime\DoNotLockOnObjectsWithWeakIdentity.cs (1)
59var method = invocationOperation.TargetMethod;
Microsoft.NetCore.Analyzers\Runtime\DoNotPassLiteralsAsLocalizedParameters.cs (5)
59if (operationBlockStartContext.OwningSymbol is not IMethodSymbol containingMethod || 74IMethodSymbol? targetMethod = null; 257var method = (IMethodSymbol)parameterSymbol.ContainingSymbol; 309ISymbol containingSymbol = symbol is IMethodSymbol { AssociatedSymbol: IPropertySymbol propertySymbol } ? propertySymbol : symbol.ContainingSymbol;
Microsoft.NetCore.Analyzers\Runtime\DoNotUseEndOfStreamInAsyncMethods.cs (1)
75if (containingSymbol is IMethodSymbol containingMethod && containingMethod.IsAsync)
Microsoft.NetCore.Analyzers\Runtime\DoNotUseEnumerableMethodsOnIndexableCollectionsInsteadUseTheCollectionDirectly.cs (2)
65var methodSymbol = invocation.TargetMethod.ReducedFrom ?? invocation.TargetMethod; 129private static bool IsSingleParameterLinqMethod(IMethodSymbol methodSymbol, ITypeSymbol enumerableType)
Microsoft.NetCore.Analyzers\Runtime\DoNotUseReferenceEqualsWithValueTypes.cs (5)
63var referenceEqualsMethodGroup = objectType.GetMembers("ReferenceEquals").OfType<IMethodSymbol>(); 64var referenceEqualsMethod = referenceEqualsMethodGroup.GetFirstOrDefaultMemberWithParameterInfos( 76IMethodSymbol? comparerEqualsMethod = null; 80var equalsMethodGroup = referenceEqualityComparer.GetMembers("Equals").OfType<IMethodSymbol>(); 88var targetMethod = invocationExpression.TargetMethod;
Microsoft.NetCore.Analyzers\Runtime\ForwardCancellationTokenToInvocations.Analyzer.cs (16)
87if (context.ContainingSymbol is not IMethodSymbol containingMethod) 128IMethodSymbol containingSymbol, 139IMethodSymbol method = invocation.TargetMethod; 150IMethodSymbol? overload = null; 175out shouldFix, out IMethodSymbol? ancestor, out ancestorTokenParameterName)) 195IMethodSymbol containingSymbol, 198[NotNullWhen(returnValue: true)] out IMethodSymbol? ancestor, 250IMethodSymbol methodDeclaration, 268IMethodSymbol method, 338IMethodSymbol method, 343[NotNullWhen(returnValue: true)] out IMethodSymbol? overload) 347.OfType<IMethodSymbol>() 359IMethodSymbol originalMethod, 360IMethodSymbol methodToCompare) 370IMethodSymbol originalMethodWithAllParameters = (originalMethod.ReducedFrom ?? originalMethod).OriginalDefinition; 371IMethodSymbol methodToCompareWithAllParameters = (methodToCompare.ReducedFrom ?? methodToCompare).OriginalDefinition;
Microsoft.NetCore.Analyzers\Runtime\InitializeStaticFieldsInline.cs (1)
57if (context.OwningSymbol is not IMethodSymbol method ||
Microsoft.NetCore.Analyzers\Runtime\InstantiateArgumentExceptionsCorrectly.cs (2)
271if (symbol is IMethodSymbol method) 290((IMethodSymbol)targetSymbol).AssociatedSymbol?.Name == stringArgument;
Microsoft.NetCore.Analyzers\Runtime\LoggerMessageDefineAnalyzer.cs (3)
125var methodSymbol = invocation.TargetMethod; 195private void AnalyzeFormatArgument(OperationAnalysisContext context, IOperation formatExpression, int paramsCount, bool argsIsArray, bool usingLoggerExtensionsTypes, IMethodSymbol methodSymbol) 327private static bool FindLogParameters(IMethodSymbol methodSymbol, [NotNullWhen(true)] out IParameterSymbol? message, out IParameterSymbol? arguments)
Microsoft.NetCore.Analyzers\Runtime\ModuleInitializerAttributeShouldNotBeUsedInLibraries.cs (2)
59var method = (IMethodSymbol)context.Symbol;
Microsoft.NetCore.Analyzers\Runtime\NormalizeStringsToUppercase.cs (10)
50var toLowerInvariant = stringType.GetMembers("ToLowerInvariant").OfType<IMethodSymbol>().FirstOrDefault(); 51var toLowerWithCultureInfo = cultureInfo != null ? 52stringType.GetMembers("ToLower").OfType<IMethodSymbol>().FirstOrDefault(m => m.Parameters.Length == 1 && Equals(m.Parameters[0].Type, cultureInfo)) : 61var toUpperInvariant = stringType.GetMembers("ToUpperInvariant").OfType<IMethodSymbol>().FirstOrDefault(); 62var toUpperWithCultureInfo = cultureInfo != null ? 63stringType.GetMembers("ToUpper").OfType<IMethodSymbol>().FirstOrDefault(m => m.Parameters.Length == 1 && Equals(m.Parameters[0].Type, cultureInfo)) : 79var method = invocation.TargetMethod; 84IMethodSymbol suggestedMethod = toUpperInvariant ?? toUpperWithCultureInfo!;
Microsoft.NetCore.Analyzers\Runtime\PreferAsSpanOverSubstring.cs (28)
95internal static ImmutableArray<IMethodSymbol> GetBestSpanBasedOverloads(in RequiredSymbols symbols, IInvocationOperation invocation, CancellationToken cancellationToken) 97var method = invocation.TargetMethod; 113return ImmutableArray<IMethodSymbol>.Empty; 117var bestCandidates = ImmutableArray.CreateBuilder<IMethodSymbol>(); 120foreach (var candidate in candidates) 146static int EvaluateCandidateQuality(in RequiredSymbols symbols, ReadOnlySpan<bool> isSubstringLookup, IInvocationOperation invocation, IMethodSymbol candidate) 148var method = invocation.TargetMethod; 173private static IEnumerable<IMethodSymbol> GetAllAccessibleOverloadsAtInvocationCallSite(IInvocationOperation invocation, CancellationToken cancellationToken) 175var method = invocation.TargetMethod; 180IEnumerable<IMethodSymbol> allOverloads; 183allOverloads = model.LookupStaticMembers(location, method.ContainingType, method.Name).OfType<IMethodSymbol>(); 189allOverloads = model.LookupSymbols(location, instance.Type, method.Name).OfType<IMethodSymbol>(); 192allOverloads = allOverloads.Union(model.LookupBaseMembers(location, method.Name).OfType<IMethodSymbol>()); 198return Enumerable.Empty<IMethodSymbol>(); 221IMethodSymbol substring1, IMethodSymbol substring2, 222IMethodSymbol asSpan1, IMethodSymbol asSpan2) 257var substringMembers = stringType.GetMembers(nameof(string.Substring)).OfType<IMethodSymbol>(); 258var substringStart = substringMembers.GetFirstOrDefaultMemberWithParameterInfos(int32ParamInfo); 259var substringStartLength = substringMembers.GetFirstOrDefaultMemberWithParameterInfos(int32ParamInfo, int32ParamInfo); 261var asSpanMembers = memoryExtensionsType.GetMembers(nameof(MemoryExtensions.AsSpan)).OfType<IMethodSymbol>(); 262var asSpanStart = asSpanMembers.GetFirstOrDefaultMemberWithParameterInfos(stringParamInfo, int32ParamInfo); 263var asSpanStartLength = asSpanMembers.GetFirstOrDefaultMemberWithParameterInfos(stringParamInfo, int32ParamInfo, int32ParamInfo); 282public IMethodSymbol SubstringStart { get; } 283public IMethodSymbol SubstringStartLength { get; } 284public IMethodSymbol AsSpanStart { get; } 285public IMethodSymbol AsSpanStartLength { get; }
Microsoft.NetCore.Analyzers\Runtime\PreferAsSpanOverSubstring.Fixer.cs (1)
51IMethodSymbol spanBasedOverload = bestCandidates[0];
Microsoft.NetCore.Analyzers\Runtime\PreferConstCharOverConstUnitStringAnalyzer.cs (2)
49IMethodSymbol appendStringMethod = stringBuilderType 51.OfType<IMethodSymbol>()
Microsoft.NetCore.Analyzers\Runtime\PreferDictionaryContainsMethods.cs (5)
106IMethodSymbol containsMethod = invocation.TargetMethod; 143IMethodSymbol? containsKeyMethod = property.ContainingType.GetMembers(ContainsKeyMethodName) 144.OfType<IMethodSymbol>() 164IMethodSymbol? containsValueMethod = property.ContainingType.GetMembers(ContainsValueMethodName) 165.OfType<IMethodSymbol>()
Microsoft.NetCore.Analyzers\Runtime\PreferJsonElementParse.cs (4)
54.OfType<IMethodSymbol>() 60!jsonDocumentType.GetMembers("Parse").Any(m => m is IMethodSymbol { IsStatic: true })) 90var jsonDocumentParseMethod = invocation.TargetMethod; 92foreach (var elementParseOverload in jsonElementParseOverloads)
Microsoft.NetCore.Analyzers\Runtime\PreferStreamAsyncMemoryOverloads.cs (21)
128IEnumerable<IMethodSymbol> readAsyncMethodGroup = streamType.GetMembers("ReadAsync").OfType<IMethodSymbol>(); 129IEnumerable<IMethodSymbol> writeAsyncMethodGroup = streamType.GetMembers("WriteAsync").OfType<IMethodSymbol>(); 132IMethodSymbol? undesiredReadAsyncMethod = readAsyncMethodGroup.GetFirstOrDefaultMemberWithParameterInfos(undesiredParameters); 138IMethodSymbol? undesiredWriteAsyncMethod = writeAsyncMethodGroup.GetFirstOrDefaultMemberWithParameterInfos(undesiredParameters); 144IMethodSymbol? undesiredReadAsyncMethodWithCancellationToken = readAsyncMethodGroup.GetFirstOrDefaultMemberWithParameterInfos(undesiredParametersWithCancellationToken); 150IMethodSymbol? undesiredWriteAsyncMethodWithCancellationToken = writeAsyncMethodGroup.GetFirstOrDefaultMemberWithParameterInfos(undesiredParametersWithCancellationToken); 157IMethodSymbol? preferredReadAsyncMethod = readAsyncMethodGroup.FirstOrDefault(x => 166IMethodSymbol? preferredWriteAsyncMethod = writeAsyncMethodGroup.FirstOrDefault(x => 190IMethodSymbol? configureAwaitMethod = taskType.GetMembers("ConfigureAwait").OfType<IMethodSymbol>().FirstOrDefault(); 196IMethodSymbol? genericConfigureAwaitMethod = genericTaskType.GetMembers("ConfigureAwait").OfType<IMethodSymbol>().FirstOrDefault(); 212out IMethodSymbol? method) && 249IMethodSymbol configureAwaitMethod, 250IMethodSymbol genericConfigureAwaitMethod, 253out IMethodSymbol? actualMethod) 265IMethodSymbol method = awaitedInvocation.TargetMethod; 287private static bool IsDefinedBy(IMethodSymbol method, INamedTypeSymbol baseType, out IMethodSymbol actualMethod)
Microsoft.NetCore.Analyzers\Runtime\PreferStringContainsOverIndexOfAnalyzer.cs (11)
53.OfType<IMethodSymbol>() 57var stringArgumentIndexOfMethod = stringIndexOfMethods.GetFirstOrDefaultMemberWithParameterInfos( 59var charArgumentIndexOfMethod = stringIndexOfMethods.GetFirstOrDefaultMemberWithParameterInfos( 61var stringAndComparisonTypeArgumentIndexOfMethod = stringIndexOfMethods.GetFirstOrDefaultMemberWithParameterInfos( 64var charAndComparisonTypeArgumentIndexOfMethod = stringIndexOfMethods.GetFirstOrDefaultMemberWithParameterInfos( 72.OfType<IMethodSymbol>() 75var stringAndComparisonTypeArgumentContainsMethod = stringContainsMethods.GetFirstOrDefaultMemberWithParameterInfos( 78var charAndComparisonTypeArgumentContainsMethod = stringContainsMethods.GetFirstOrDefaultMemberWithParameterInfos( 81var charArgumentContainsMethod = stringContainsMethods.GetFirstOrDefaultMemberWithParameterInfos( 96if (context.OwningSymbol is not IMethodSymbol method) 206bool IsDesiredTargetMethod(IMethodSymbol targetMethod) =>
Microsoft.NetCore.Analyzers\Runtime\PreferTypedStringBuilderAppendOverloads.cs (7)
55.OfType<IMethodSymbol>() 62.OfType<IMethodSymbol>() 71var appendCharIntMethod = stringBuilderType 73.OfType<IMethodSymbol>() 80var appendStringMethod = appendMethods.FirstOrDefault(s => 82var insertStringMethod = insertMethods.FirstOrDefault(s => 124IMethodSymbol? stronglyTypedAppend =
Microsoft.NetCore.Analyzers\Runtime\ProvideCorrectArgumentsToFormattingMethods.cs (8)
344private readonly ConcurrentDictionary<IMethodSymbol, Info?> _map; 348_map = new ConcurrentDictionary<IMethodSymbol, Info?>(); 366public Info? TryGet(IMethodSymbol method, OperationAnalysisContext context) 417foreach (IMethodSymbol method in type.GetMembers(methodName).OfType<IMethodSymbol>()) 423private bool TryGetFormatInfoByCompositeFormatStringSyntaxAttribute(IMethodSymbol method, [NotNullWhen(returnValue: true)] out Info? formatInfo) 429private bool TryGetFormatInfoByParameterName(IMethodSymbol method, [NotNullWhen(returnValue: true)] out Info? formatInfo) 435private bool TryGetFormatInfo(IMethodSymbol method, int formatIndex, [NotNullWhen(returnValue: true)] out Info? formatInfo)
Microsoft.NetCore.Analyzers\Runtime\ProvideStreamMemoryBasedAsyncOverrides.cs (26)
73IMethodSymbol? readAsyncArrayOverride = GetOverridingMethodSymbols(type, symbols.ReadAsyncArrayMethod).FirstOrDefault(); 74IMethodSymbol? readAsyncMemoryOverride = GetOverridingMethodSymbols(type, symbols.ReadAsyncMemoryMethod).FirstOrDefault(); 75IMethodSymbol? writeAsyncArrayOverride = GetOverridingMethodSymbols(type, symbols.WriteAsyncArrayMethod).FirstOrDefault(); 76IMethodSymbol? writeAsyncMemoryOverride = GetOverridingMethodSymbols(type, symbols.WriteAsyncMemoryMethod).FirstOrDefault(); 94static Diagnostic CreateDiagnostic(INamedTypeSymbol violatingType, IMethodSymbol arrayBasedOverride, IMethodSymbol memoryBasedMethod) 135var readAsyncArrayMethod = GetOverloads(streamType, ReadAsyncName, byteArrayType, int32Type, int32Type, cancellationTokenType).FirstOrDefault(); 136var readAsyncMemoryMethod = GetOverloads(streamType, ReadAsyncName, memoryOfByteType, cancellationTokenType).FirstOrDefault(); 137var writeAsyncArrayMethod = GetOverloads(streamType, WriteAsyncName, byteArrayType, int32Type, int32Type, cancellationTokenType).FirstOrDefault(); 138var writeAsyncMemoryMethod = GetOverloads(streamType, WriteAsyncName, readOnlyMemoryOfByteType, cancellationTokenType).FirstOrDefault(); 154private static ImmutableArray<IMethodSymbol> GetOverloads(ITypeSymbol containingType, string methodName, params ITypeSymbol[] argumentTypes) 157.OfType<IMethodSymbol>() 160static bool IsMatch(IMethodSymbol method, ITypeSymbol[] argumentTypes) 176/// If <paramref name="derivedType"/> overrides <paramref name="overriddenMethod"/> on its immediate base class, returns the <see cref="IMethodSymbol"/> 181/// <returns>The <see cref="IMethodSymbol"/> for the method that overrides <paramref name="overriddenMethod"/>, or null if 183private static ImmutableArray<IMethodSymbol> GetOverridingMethodSymbols(ITypeSymbol derivedType, IMethodSymbol overriddenMethod) 188.OfType<IMethodSymbol>() 201IMethodSymbol readAsyncArrayMethod, IMethodSymbol readAsyncMemoryMethod, 202IMethodSymbol writeAsyncArrayMethod, IMethodSymbol writeAsyncMemoryMethod) 216public IMethodSymbol ReadAsyncArrayMethod { get; } 217public IMethodSymbol ReadAsyncMemoryMethod { get; } 218public IMethodSymbol WriteAsyncArrayMethod { get; } 219public IMethodSymbol WriteAsyncMemoryMethod { get; }
Microsoft.NetCore.Analyzers\Runtime\SpecifyCultureForToLowerAndToUpper.cs (3)
39var toLower = stringType.GetMembers(ToLowerMethodName).FirstOrDefault(m => !m.IsStatic && m is IMethodSymbol method && method.Parameters.IsEmpty); 40var toUpper = stringType.GetMembers(ToUpperMethodName).FirstOrDefault(m => !m.IsStatic && m is IMethodSymbol method && method.Parameters.IsEmpty); 49IMethodSymbol methodSymbol = operation.TargetMethod;
Microsoft.NetCore.Analyzers\Runtime\SpecifyCultureInfo.cs (4)
48var targetMethod = invocationExpression.TargetMethod; 59IEnumerable<IMethodSymbol> methodsWithSameNameAsTargetMethod = targetMethod.ContainingType.GetMembers(targetMethod.Name).OfType<IMethodSymbol>().WhereMethodDoesNotContainAttribute(obsoleteAttributeType).ToList(); 69var correctOverload = correctOverloads.FirstOrDefault(overload => overload.Parameters.Last().Type.Equals(cultureInfoType)) ?? correctOverloads.FirstOrDefault();
Microsoft.NetCore.Analyzers\Runtime\SpecifyIFormatProvider.cs (29)
105var invariantToStringMethodsBuilder = ImmutableHashSet.CreateBuilder<IMethodSymbol>(); 112var dateTimeToStringFormatMethod = GetToStringWithFormatStringParameter(typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemDateTime)); 114var dateTimeOffsetToStringFormatMethod = GetToStringWithFormatStringParameter(typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemDateTimeOffset)); 116var timeSpanToStringFormatMethod = GetToStringWithFormatStringParameter(typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemTimeSpan)); 118var stringFormatMembers = stringType.GetMembers("Format").OfType<IMethodSymbol>(); 120var stringFormatMemberWithStringAndObjectParameter = stringFormatMembers.GetFirstOrDefaultMemberWithParameterInfos( 123var stringFormatMemberWithStringObjectAndObjectParameter = stringFormatMembers.GetFirstOrDefaultMemberWithParameterInfos( 127var stringFormatMemberWithStringObjectObjectAndObjectParameter = stringFormatMembers.GetFirstOrDefaultMemberWithParameterInfos( 132var stringFormatMemberWithStringAndParamsObjectParameter = stringFormatMembers.GetFirstOrDefaultMemberWithParameterInfos( 135var stringFormatMemberWithIFormatProviderStringAndParamsObjectParameter = stringFormatMembers.GetFirstOrDefaultMemberWithParameterInfos( 157ImmutableHashSet<IMethodSymbol> superfluousFormatProviderOverloads = ImmutableHashSet<IMethodSymbol>.Empty; 161.OfType<IMethodSymbol>() 166.OfType<IMethodSymbol>() 170.OfType<IMethodSymbol>() 180var targetMethod = invocationExpression.TargetMethod; 224IEnumerable<IMethodSymbol> methodsWithSameNameAsTargetMethod = type.GetMembers(targetMethod.Name).OfType<IMethodSymbol>().WhereMethodDoesNotContainAttribute(obsoleteAttributeType); 231var correctOverload = correctOverloads.FirstOrDefault(overload => overload.Parameters.Last().Type.Equals(iformatProviderType)) ?? correctOverloads.FirstOrDefault(); 309private static IMethodSymbol? GetToStringWithFormatStringParameter(INamedTypeSymbol? type) 311return type?.GetMembers("ToString").OfType<IMethodSymbol>().FirstOrDefault(s => s.Parameters is [{ Type.SpecialType: SpecialType.System_String }]); 314private static void AddValidToStringMethods(ImmutableHashSet<IMethodSymbol>.Builder validToStringMethodsBuilder, INamedTypeSymbol nullableT, INamedTypeSymbol? type) 324static IEnumerable<IMethodSymbol> GetToStringMethods(INamedTypeSymbol namedTypeSymbol) 325=> namedTypeSymbol.GetMembers("ToString").OfType<IMethodSymbol>().WhereNotNull(); 333private static bool IsValidToStringCall(IInvocationOperation invocationOperation, ImmutableHashSet<IMethodSymbol> validToStringMethods, 334IMethodSymbol? dateTimeToStringFormatMethod, IMethodSymbol? dateTimeOffsetToStringFormatMethod, IMethodSymbol? timeSpanToStringFormatMethod) 336var targetMethod = invocationOperation.TargetMethod;
Microsoft.NetCore.Analyzers\Runtime\SpecifyStringComparison.cs (23)
70var targetMethod = invocationExpression.TargetMethod; 90overloadMap.TryGetValue(targetMethod, out var overloadMethod)) 111var correctOverload = methodsWithSameNameAsTargetMethod 127static ImmutableDictionary<IMethodSymbol, IMethodSymbol> GetWellKnownStringOverloads( 135var stringCompareToNamedMethods = stringType.GetMembers("CompareTo").OfType<IMethodSymbol>(); 136var stringCompareToParameterString = stringCompareToNamedMethods.GetFirstOrDefaultMemberWithParameterInfos( 138var stringCompareToParameterObject = stringCompareToNamedMethods.GetFirstOrDefaultMemberWithParameterInfos( 141var stringCompareNamedMethods = stringType.GetMembers("Compare").OfType<IMethodSymbol>(); 142var stringCompareParameterStringStringBool = stringCompareNamedMethods.GetFirstOrDefaultMemberWithParameterInfos( 146var stringCompareParameterStringStringStringComparison = stringCompareNamedMethods.GetFirstOrDefaultMemberWithParameterInfos( 150var stringCompareParameterStringIntStringIntIntBool = stringCompareNamedMethods.GetFirstOrDefaultMemberWithParameterInfos( 157var stringCompareParameterStringIntStringIntIntComparison = stringCompareNamedMethods.GetFirstOrDefaultMemberWithParameterInfos( 165var overloadMapBuilder = ImmutableDictionary.CreateBuilder<IMethodSymbol, IMethodSymbol>(); 173var methodsWithMethodName = stringType.GetMembers(methodName).OfType<IMethodSymbol>(); 174foreach (var method in methodsWithMethodName) 180var recommendedMethod = methodsWithMethodName 199IMethodSymbol targetMethod, 200IMethodSymbol correctOverload) 215private static IEnumerable<IMethodSymbol> GetAccessibleMethodsWithSameNameAsTargetMethod( 217IMethodSymbol targetMethod) 223.OfType<IMethodSymbol>()
Microsoft.NetCore.Analyzers\Runtime\TestForEmptyStringsUsingStringLength.cs (2)
78IMethodSymbol methodSymbol = invocationOperation.TargetMethod; 131private static bool IsStringEqualsMethod(IMethodSymbol methodSymbol)
Microsoft.NetCore.Analyzers\Runtime\UseAsyncMethodInAsyncContext.cs (23)
95ImmutableArray<IMethodSymbol> semaphoreSlimWaitWithTimeoutMethods = semaphoreSlimType 97.OfType<IMethodSymbol>() 101.ToImmutableArray() ?? ImmutableArray<IMethodSymbol>.Empty; 103ImmutableArray<IMethodSymbol> excludedMethods = GetExcludedMethods(wellKnownTypeProvider); 110var methodSymbol = invocationOperation.TargetMethod; 125IEnumerable<IMethodSymbol> methodSymbols = semanticModel.LookupSymbols( 130.OfType<IMethodSymbol>(); 133if (context.ContainingSymbol is IMethodSymbol parentMethod) 138foreach (IMethodSymbol method in methodSymbols) 170private static bool IsSemaphoreSlimWaitWithZeroArgumentInvocation(IInvocationOperation invocation, IFieldSymbol? timeSpanZero, ImmutableArray<IMethodSymbol> semaphoreSlimWaitWithTimeoutMethods) 229private static ImmutableArray<IMethodSymbol> GetExcludedMethods(WellKnownTypeProvider wellKnownTypeProvider) 237var methodsBuilder = ImmutableArray.CreateBuilder<IMethodSymbol>(); 243foreach (var method in entityFrameworkType.GetMembers().OfType<IMethodSymbol>()) 255foreach (var method in dbContextFactoryType.GetMembers("CreateDbContext").OfType<IMethodSymbol>()) 272private static bool HasSupersetOfParameterTypes(IMethodSymbol candidateMethod, IMethodSymbol baselineMethod) 277private static bool HasAsyncCompatibleReturnType(IMethodSymbol methodSymbol, ConcurrentDictionary<string, INamedTypeSymbol> syncBlockingTypes) 298private static IMethodSymbol? GetParentMethodOrDelegate(OperationAnalysisContext context) 300var containingAnonymousFunction = context.Operation.TryGetContainingAnonymousFunctionOrLocalFunction(); 309if (containingSymbol is IMethodSymbol method) 324IMethodSymbol? parentMethod = GetParentMethodOrDelegate(context);
Microsoft.NetCore.Analyzers\Runtime\UseCancellationTokenThrowIfCancellationRequested.cs (7)
94IMethodSymbol? throwIfCancellationRequestedMethod = cancellationTokenType.GetMembers(nameof(CancellationToken.ThrowIfCancellationRequested)) 95.OfType<IMethodSymbol>() 107IMethodSymbol? operationCanceledExceptionDefaultCtor = operationCanceledExceptionType.InstanceConstructors 109IMethodSymbol? operationCanceledExceptionTokenCtor = operationCanceledExceptionType.InstanceConstructors 126public IMethodSymbol OperationCanceledExceptionDefaultCtor { get; init; } 127public IMethodSymbol OperationCanceledExceptionTokenCtor { get; init; } 188private bool IsDefaultOrTokenOperationCanceledExceptionCtor(IMethodSymbol method)
Microsoft.NetCore.Analyzers\Runtime\UseOrdinalStringComparison.cs (4)
53IMethodSymbol methodSymbol = operation.TargetMethod; 90private static bool IsAcceptableOverload(IMethodSymbol methodSymbol, INamedTypeSymbol stringComparisonType) 97private static bool IsAcceptableInstanceOverload(IMethodSymbol methodSymbol, INamedTypeSymbol stringComparisonType) 117private static bool IsAcceptableStaticOverload(IMethodSymbol methodSymbol, INamedTypeSymbol stringComparisonType)
Microsoft.NetCore.Analyzers\Runtime\UseOrdinalStringComparison.Fixer.cs (1)
62protected static bool CanAddStringComparison(IMethodSymbol methodSymbol, SemanticModel model)
Microsoft.NetCore.Analyzers\Runtime\UseSpanBasedStringConcat.cs (19)
181IMethodSymbol substringStart, IMethodSymbol substringStartLength, 182IMethodSymbol asSpanStart, IMethodSymbol asSpanStartLength) 215var substringMembers = stringType.GetMembers(nameof(string.Substring)).OfType<IMethodSymbol>(); 216var substringStart = substringMembers.GetFirstOrDefaultMemberWithParameterInfos(intParamInfo); 217var substringStartLength = substringMembers.GetFirstOrDefaultMemberWithParameterInfos(intParamInfo, intParamInfo); 219var asSpanMembers = memoryExtensionsType.GetMembers(nameof(MemoryExtensions.AsSpan)).OfType<IMethodSymbol>(); 220var asSpanStart = asSpanMembers.GetFirstOrDefaultMemberWithParameterInfos(stringParamInfo, intParamInfo)?.ReduceExtensionMethod(stringType); 221var asSpanStartLength = asSpanMembers.GetFirstOrDefaultMemberWithParameterInfos(stringParamInfo, intParamInfo, intParamInfo)?.ReduceExtensionMethod(stringType); 238public IMethodSymbol SubstringStart { get; } 239public IMethodSymbol SubstringStartLength { get; } 240public IMethodSymbol AsSpanStart { get; } 241public IMethodSymbol AsSpanStartLength { get; } 243public IMethodSymbol? GetAsSpanEquivalent(IMethodSymbol? substringMethod) 252public bool IsAnySubstringMethod(IMethodSymbol? method) 264public bool TryGetRoscharConcatMethodWithArity(int arity, [NotNullWhen(true)] out IMethodSymbol? concatMethod) 272.OfType<IMethodSymbol>()
Microsoft.NetCore.Analyzers\Runtime\UseSpanBasedStringConcat.Fixer.cs (1)
60if (!symbols.TryGetRoscharConcatMethodWithArity(operands.Length, out IMethodSymbol? roscharConcatMethod))
Microsoft.NetCore.Analyzers\Runtime\UseStringEqualsOverStringCompare.cs (25)
80IMethodSymbol? compareStringString, 81IMethodSymbol? compareStringStringBool, 82IMethodSymbol? compareStringStringStringComparison, 83IMethodSymbol? compareOrdinalStringString, 84IMethodSymbol? equalsStringString, 85IMethodSymbol? equalsStringStringStringComparison, 86IMethodSymbol intEquals) 115.OfType<IMethodSymbol>() 117var compareStringString = compareMethods.GetFirstOrDefaultMemberWithParameterTypes(stringType, stringType); 118var compareStringStringBool = compareMethods.GetFirstOrDefaultMemberWithParameterTypes(stringType, stringType, boolType); 119var compareStringStringStringComparison = compareMethods.GetFirstOrDefaultMemberWithParameterTypes(stringType, stringType, stringComparisonType); 122.OfType<IMethodSymbol>() 124var compareOrdinalStringString = compareOrdinalMethods.GetFirstOrDefaultMemberWithParameterTypes(stringType, stringType); 127.OfType<IMethodSymbol>() 129var equalsStringString = equalsMethods.GetFirstOrDefaultMemberWithParameterTypes(stringType, stringType); 130var equalsStringStringStringComparison = equalsMethods.GetFirstOrDefaultMemberWithParameterTypes(stringType, stringType, stringComparisonType); 134.OfType<IMethodSymbol>() 160public IMethodSymbol? CompareStringString { get; } 161public IMethodSymbol? CompareStringStringBool { get; } 162public IMethodSymbol? CompareStringStringStringComparison { get; } 163public IMethodSymbol? CompareOrdinalStringString { get; } 164public IMethodSymbol? EqualsStringString { get; } 165public IMethodSymbol? EqualsStringStringStringComparison { get; } 166public IMethodSymbol IntEquals { get; } 201internal static IInvocationOperation? GetInvocationFromEqualsCheckWithLiteralZero(IInvocationOperation? invocation, IMethodSymbol int32Equals)
Microsoft.NetCore.Analyzers\Security\DataSetDataTableInSerializableObjectGraphAnalyzer.cs (2)
154IMethodSymbol targetMethod = invocationOperation.TargetMethod; 253IMethodSymbol? constructor = objectCreationOperation.Constructor;
Microsoft.NetCore.Analyzers\Security\DataSetDataTableInWebSerializableObjectGraphAnalyzer.cs (1)
90if (memberSymbol is not IMethodSymbol methodSymbol)
Microsoft.NetCore.Analyzers\Security\DoNotAddSchemaByURL.cs (1)
54var methodSymbol = invocationOperation.TargetMethod;
Microsoft.NetCore.Analyzers\Security\DoNotAlwaysSkipTokenValidationInDelegates.cs (4)
71Func<IMethodSymbol, bool> isCorrectFunction; 103var methodSymbol = methodReferenceOperation.Method; 139IMethodSymbol methodSymbol, 167IMethodSymbol methodSymbol,
Microsoft.NetCore.Analyzers\Security\DoNotCallDangerousMethodsInDeserialization.cs (5)
71var dangerousMethodSymbolsBuilder = ImmutableHashSet.CreateBuilder<IMethodSymbol>(); 86.OfType<IMethodSymbol>() 132if (owningSymbol is IMethodSymbol methodSymbol || 201foreach (var methodSymbol in callGraph.Keys.OfType<IMethodSymbol>())
Microsoft.NetCore.Analyzers\Security\DoNotDisableCertificateValidation.cs (2)
90var methodSymbol = methodReferenceOperation.Method; 126private static bool IsCertificateValidationFunction(IMethodSymbol methodSymbol, INamedTypeSymbol obj, INamedTypeSymbol x509Certificate, INamedTypeSymbol x509Chain, INamedTypeSymbol sslPolicyErrors)
Microsoft.NetCore.Analyzers\Security\DoNotDisableHttpClientCRLCheck.cs (4)
67(IMethodSymbol constructorMethod, IReadOnlyList<PointsToAbstractValue> argumentPointsToAbstractValues) => 94(IMethodSymbol methodSymbol, PropertySetAbstractValue abstractValue) => 185PooledDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult>? allResults = null; 217foreach (KeyValuePair<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult> kvp
Microsoft.NetCore.Analyzers\Security\DoNotInstallRootCert.cs (4)
61private static HazardousUsageEvaluationResult HazardousUsageCallback(IMethodSymbol methodSymbol, PropertySetAbstractValue propertySetAbstractValue) 100(IMethodSymbol constructorMethod, IReadOnlyList<ValueContentAbstractValue> argumentValueContentAbstractValues, 174PooledDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult>? allResults = null; 206foreach (KeyValuePair<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult> kvp
Microsoft.NetCore.Analyzers\Security\DoNotSetSwitch.cs (3)
81var setSwitchMemberWithStringAndBoolParameter = 82appContextTypeSymbol.GetMembers("SetSwitch").OfType<IMethodSymbol>().FirstOrDefault( 97var methodSymbol = invocationOperation.TargetMethod;
Microsoft.NetCore.Analyzers\Security\DoNotUseAccountSAS.cs (1)
54var methodSymbol = invocationOperation.TargetMethod;
Microsoft.NetCore.Analyzers\Security\DoNotUseCreateEncryptorWithNonDefaultIV.cs (5)
55(IMethodSymbol constructorMethod, IReadOnlyList<PointsToAbstractValue> argumentPointsToAbstractValues) => 71(IMethodSymbol methodSymbol, PropertySetAbstractValue abstractValue) => 124var methodSymbol = invocationOperation.TargetMethod; 150PooledDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult>? allResults = null; 182foreach (KeyValuePair<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult> kvp
Microsoft.NetCore.Analyzers\Security\DoNotUseDSA.cs (1)
116var methodSymbol = invocationOperation.TargetMethod;
Microsoft.NetCore.Analyzers\Security\DoNotUseInsecureCryptographicAlgorithms.cs (1)
70IMethodSymbol method;
Microsoft.NetCore.Analyzers\Security\DoNotUseInsecureDeserializerJavascriptSerializerWithSimpleTypeResolver.cs (4)
63private static HazardousUsageEvaluationResult HazardousUsageCallback(IMethodSymbol methodSymbol, PropertySetAbstractValue propertySetAbstractValue) 97(IMethodSymbol constructorMethod, IReadOnlyList<PointsToAbstractValue> argumentPointsToAbstractValues) => 210PooledDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult>? allResults = null; 241foreach (KeyValuePair<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult> kvp
Microsoft.NetCore.Analyzers\Security\DoNotUseInsecureDeserializerJsonNetWithoutBinder.cs (3)
71(IMethodSymbol constructorMethod, IReadOnlyList<PointsToAbstractValue> argumentPointsToAbstractValues) => 190PooledDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult>? allResults = null; 221foreach (KeyValuePair<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult> kvp
Microsoft.NetCore.Analyzers\Security\DoNotUseInsecureDeserializerWithoutBinderBase.cs (2)
174PooledDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult>? allResults = null; 205foreach (KeyValuePair<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult> kvp
Microsoft.NetCore.Analyzers\Security\DoNotUseInsecureSettingsForJsonNet.cs (3)
70(IMethodSymbol constructorMethod, IReadOnlyList<PointsToAbstractValue> argumentPointsToAbstractValues) => 217PooledDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult>? allResults = null; 248foreach (KeyValuePair<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult> kvp
Microsoft.NetCore.Analyzers\Security\DoNotUseObsoleteKDFAlgorithm.cs (1)
61var methodSymbol = invocationOperation.TargetMethod;
Microsoft.NetCore.Analyzers\Security\DoNotUseWeakKDFInsufficientIterationCount.cs (4)
59private static HazardousUsageEvaluationResult HazardousUsageCallback(IMethodSymbol methodSymbol, PropertySetAbstractValue propertySetAbstractValue) 98(IMethodSymbol constructorMethod, IReadOnlyList<ValueContentAbstractValue> argumentValueContentAbstractValues, 170PooledDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult>? allResults = null; 202foreach (KeyValuePair<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult> kvp
Microsoft.NetCore.Analyzers\Security\Helpers\SecurityHelpers.cs (1)
176operationAnalysisContext.ContainingSymbol is IMethodSymbol methodSymbol
Microsoft.NetCore.Analyzers\Security\SetHttpOnlyForHttpCookie.cs (3)
43(IMethodSymbol constructorMethod, 148PooledDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult>? allResults = null; 180foreach (KeyValuePair<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult> kvp
Microsoft.NetCore.Analyzers\Security\SetViewStateUserKey.cs (2)
61var methods = classSymbol.GetMembers().OfType<IMethodSymbol>(); 82bool SetViewStateUserKeyCorrectly(IMethodSymbol methodSymbol)
Microsoft.NetCore.Analyzers\Security\UseAutoValidateAntiforgeryToken.cs (13)
113ConcurrentDictionary<IMethodSymbol, bool> onAuthorizationMethodSymbols = new ConcurrentDictionary<IMethodSymbol, bool>(); 114var actionMethodSymbols = new ConcurrentDictionary<(IMethodSymbol, string), bool>(); 115var actionMethodNeedAddingHttpVerbAttributeSymbols = new ConcurrentDictionary<IMethodSymbol, bool>(); 178var methodSymbol = invocationOperation.TargetMethod; 204IMethodSymbol? onAuthorizationAsyncMethodSymbol = 208.OfType<IMethodSymbol>() 226IMethodSymbol? onAuthorizationMethodSymbol = 230.OfType<IMethodSymbol>() 275foreach (var actionMethodSymbol in derivedControllerTypeSymbol.GetMembers().OfType<IMethodSymbol>()) 363foreach (var methodSymbol in actionMethodNeedAddingHttpVerbAttributeSymbols.Keys) 395if (child is IMethodSymbol childMethodSymbol &&
Microsoft.NetCore.Analyzers\Security\UseContainerLevelAccessPolicy.cs (1)
107var methodSymbol = invocationOperation.TargetMethod;
Microsoft.NetCore.Analyzers\Security\UseDefaultDllImportSearchPathsAttribute.cs (2)
97var symbol = (IMethodSymbol)symbolAnalysisContext.Symbol;
Microsoft.NetCore.Analyzers\Security\UseRSAWithSufficientKeySize.cs (1)
105var methodSymbol = invocationOperation.TargetMethod;
Microsoft.NetCore.Analyzers\Security\UseSecureCookiesASPNetCore.cs (4)
66private static HazardousUsageEvaluationResult HazardousUsageCallback(IMethodSymbol methodSymbol, PropertySetAbstractValue propertySetAbstractValue) 126var methodSymbol = invocationOperation.TargetMethod; 168PooledDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult>? allResults = null; 200foreach (KeyValuePair<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult> kvp
Microsoft.NetCore.Analyzers\Security\UseSharedAccessProtocolHttpsOnly.cs (1)
94var methodSymbol = invocationOperation.TargetMethod;
Microsoft.NetCore.Analyzers\Security\UseXmlReaderBase.cs (1)
59IMethodSymbol? methodSymbol = null;
Microsoft.NetCore.Analyzers\Tasks\DoNotConfigureAwaitWithSuppressThrowing.cs (2)
47.OfType<IMethodSymbol>() 49.FirstOrDefault() is not IMethodSymbol configureAwait ||
Microsoft.NetCore.Analyzers\Tasks\DoNotCreateTaskCompletionSourceWithWrongArguments.cs (1)
71IConversionOperation? MatchInvalidContinuationOptions(IMethodSymbol? targetMethod, ImmutableArray<IArgumentOperation> arguments) =>
Microsoft.NetCore.Analyzers\Tasks\DoNotCreateTasksWithoutPassingATaskScheduler.cs (1)
76private static bool IsMethodOfInterest(IMethodSymbol methodSymbol, INamedTypeSymbol taskType, INamedTypeSymbol taskFactoryType)
Microsoft.NetCore.Analyzers\Tasks\DoNotUseNonCancelableTaskDelayWithWhenAny.cs (2)
55var method = invocation.TargetMethod; 133var method = invocation.TargetMethod;
Microsoft.NetCore.Analyzers\Tasks\DoNotUseWhenAllOrWaitAllWithSingleArgument.cs (1)
84private static bool IsWhenOrWaitAllMethod(IMethodSymbol targetMethod, INamedTypeSymbol taskType)
Microsoft.NetCore.Analyzers\Usage\DoNotPassNonNullableValueToArgumentNullExceptionThrowIfNull.cs (2)
50.OfType<IMethodSymbol>() 61private static void AnalyzeInvocation(OperationAnalysisContext context, IMethodSymbol throwIfNullMethod)
Microsoft.NetCore.Analyzers\Usage\PreferGenericOverloads.cs (11)
52var genericInvocation = invocationContext.Method.ContainingType 54.OfType<IMethodSymbol>() 77bool IsApplicableGenericOverload(IMethodSymbol method) 92var genericMethod = method.Construct(invocationContext.TypeArguments.ToArray()); 108if (speculativeSymbolInfo?.Symbol is not IMethodSymbol boundMethod) 124static bool AreNullabilityConstraintsViolated(IMethodSymbol method) 191public IMethodSymbol Method => Invocation.TargetMethod; 195public IMethodSymbol ReduceExtensionMethodOrOriginal(IMethodSymbol method, Compilation compilation, CancellationToken cancellationToken) 210public bool IsReturnTypeCompatible(IMethodSymbol method, Compilation compilation) 221public bool AreOtherArgumentsCompatible(IMethodSymbol method, Compilation compilation)
Microsoft.NetCore.Analyzers\Usage\UseVolatileReadWrite.Fixer.cs (7)
40var obsoleteMethodsBuilder = ImmutableArray.CreateBuilder<IMethodSymbol>(); 41obsoleteMethodsBuilder.AddRange(threadType.GetMembers(ThreadVolatileReadMethodName).OfType<IMethodSymbol>()); 42obsoleteMethodsBuilder.AddRange(threadType.GetMembers(ThreadVolatileWriteMethodName).OfType<IMethodSymbol>()); 45var volatileReadMethod = volatileType.GetMembers(VolatileReadMethodName).OfType<IMethodSymbol>().FirstOrDefault(); 46var volatileWriteMethod = volatileType.GetMembers(VolatileWriteMethodName).OfType<IMethodSymbol>().FirstOrDefault();
Microsoft.NetFramework.Analyzers\DoNotCatchCorruptedStateExceptions.cs (1)
37protected override Diagnostic CreateDiagnostic(IMethodSymbol containingMethod, SyntaxToken catchKeyword)
Microsoft.NetFramework.Analyzers\DoNotUseInsecureDtdProcessing.cs (1)
251private void AnalyzeMethodOverloads(OperationAnalysisContext context, IMethodSymbol method, ImmutableArray<IArgumentOperation> arguments, SyntaxNode expressionSyntax)
Microsoft.NetFramework.Analyzers\DoNotUseInsecureDtdProcessingInApiDesign.cs (6)
115if (context.OwningSymbol is not IMethodSymbol methodSymbol 171if (context.OwningSymbol is not IMethodSymbol methodSymbol 210if (context.OwningSymbol is not IMethodSymbol methodSymbol 287if (context.OwningSymbol is not IMethodSymbol methodSymbol 414IMethodSymbol constructor = typeSymbol.Constructors[0]; 454IMethodSymbol constructor = typeSymbol.Constructors[0];
Microsoft.NetFramework.Analyzers\DoNotUseInsecureXSLTScriptExecution.cs (2)
113public void AnalyzeNodeForXslCompiledTransformLoad<TContext>(IMethodSymbol? methodSymbol, 212IMethodSymbol? rhsMethodSymbol = rhs.Kind switch
Microsoft.NetFramework.Analyzers\Helpers\SecurityDiagnosticHelpers.cs (12)
16public static bool IsXslCompiledTransformLoad([NotNullWhen(returnValue: true)] this IMethodSymbol? method, CompilationSecurityTypes xmlTypes) 21public static bool IsXmlDocumentCtorDerived([NotNullWhen(returnValue: true)] this IMethodSymbol? method, CompilationSecurityTypes xmlTypes) 33public static bool IsXmlTextReaderCtorDerived([NotNullWhen(returnValue: true)] this IMethodSymbol? method, CompilationSecurityTypes xmlTypes) 60public static bool IsXmlReaderSettingsCtor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, CompilationSecurityTypes xmlTypes) 82public static bool IsXsltSettingsCtor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, CompilationSecurityTypes xmlTypes) 119public static int GetXmlResolverParameterIndex(this IMethodSymbol? method, CompilationSecurityTypes xmlTypes) 122public static int GetXsltSettingsParameterIndex(this IMethodSymbol? method, CompilationSecurityTypes xmlTypes) 125public static int GetXmlReaderSettingsParameterIndex(this IMethodSymbol? method, CompilationSecurityTypes xmlTypes) 136public static int HasXmlReaderParameter(IMethodSymbol? method, CompilationSecurityTypes xmlTypes) 182private static int GetSpecifiedParameterIndex(IMethodSymbol? method, CompilationSecurityTypes xmlTypes, Func<ITypeSymbol, CompilationSecurityTypes, bool> func) 238case IMethodSymbol method: 260case IMethodSymbol method:
Microsoft.NetFramework.Analyzers\MarkVerbHandlersWithValidateAntiforgeryTokenAnalyzer.cs (2)
100var methodSymbol = (IMethodSymbol)symbolContext.Symbol;
src\0437c1690f5501bd\CopyAnalysis.CopyDataFlowOperationVisitor.cs (1)
573IMethodSymbol invokedMethod,
src\11b41c7305441175\HazardousUsageEvaluator.cs (1)
22public delegate HazardousUsageEvaluationResult InvocationEvaluationCallback(IMethodSymbol methodSymbol, PropertySetAbstractValue propertySetAbstractValue);
src\11b41c7305441175\PropertySetAnalysis.PropertySetDataFlowOperationVisitor.cs (14)
35private readonly ImmutableDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult>.Builder _hazardousUsageBuilder; 37private readonly ImmutableHashSet<IMethodSymbol>.Builder _visitedLocalFunctions; 59this._hazardousUsageBuilder = ImmutableDictionary.CreateBuilder<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult>(); 61this._visitedLocalFunctions = ImmutableHashSet.CreateBuilder<IMethodSymbol>(); 83public ImmutableDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult> HazardousUsages => this._hazardousUsageBuilder.ToImmutable(); 85public ImmutableHashSet<IMethodSymbol> VisitedLocalFunctions => this._visitedLocalFunctions.ToImmutable(); 453public override PropertySetAbstractValue VisitInvocation_NonLambdaOrDelegateOrLocalFunction(IMethodSymbol method, IOperation? visitedInstance, ImmutableArray<IArgumentOperation> visitedArguments, bool invokedAsDelegate, IOperation originalOperation, PropertySetAbstractValue defaultValue) 510IMethodSymbol method, 593IMethodSymbol? methodSymbol, 615IMethodSymbol? methodSymbol, 620(Location, IMethodSymbol?) key = (operationSyntax.GetLocation(), methodSymbol); 632public override PropertySetAbstractValue VisitInvocation_LocalFunction(IMethodSymbol localFunction, ImmutableArray<IArgumentOperation> visitedArguments, IOperation originalOperation, PropertySetAbstractValue defaultValue) 672foreach (KeyValuePair<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult> kvp in subResult.HazardousUsages) 684foreach (IMethodSymbol localFunctionSymbol in subResult.VisitedLocalFunctions)
src\11b41c7305441175\PropertySetAnalysisContext.cs (1)
107IMethodSymbol invokedMethod,
src\11b41c7305441175\PropertySetAnalysisResult.cs (4)
18ImmutableDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult> hazardousUsages, 19ImmutableHashSet<IMethodSymbol> visitedLocalFunctions, 29public ImmutableDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult> HazardousUsages { get; } 31public ImmutableHashSet<IMethodSymbol> VisitedLocalFunctions { get; }
src\40daf5e1cab76dff\TaintedDataAnalysis.TaintedDataOperationVisitor.cs (6)
260IMethodSymbol method, 421public override TaintedDataAbstractValue VisitInvocation_LocalFunction(IMethodSymbol localFunction, ImmutableArray<IArgumentOperation> visitedArguments, IOperation originalOperation, TaintedDataAbstractValue defaultValue) 557IMethodSymbol targetMethod, 628IMethodSymbol method, 662private bool IsSanitizingInstanceMethod(IMethodSymbol method) 681private static bool IsMethodArgumentASink(IMethodSymbol method, IEnumerable<SinkInfo> infosForType, IArgumentOperation taintedArgument, [NotNullWhen(returnValue: true)] out HashSet<SinkKind>? sinkKinds)
src\40daf5e1cab76dff\TaintedDataAnalysisContext.cs (1)
102IMethodSymbol invokedMethod,
src\40daf5e1cab76dff\TaintedDataSymbolMapExtensions.cs (2)
35IMethodSymbol method, 183IMethodSymbol method,
src\440320f3f10733a8\ValueContentAnalysis.ValueContentDataFlowOperationVisitor.cs (1)
270IMethodSymbol method,
src\440320f3f10733a8\ValueContentAnalysisContext.cs (1)
74IMethodSymbol invokedMethod,
src\47c588c5b8785708\ParameterValidationAnalysis.ParameterValidationDataFlowOperationVisitor.cs (4)
249IMethodSymbol method, 273IMethodSymbol localFunction, 283private void ProcessRegularInvocationOrCreation(IMethodSymbol? targetMethod, ImmutableArray<IArgumentOperation> arguments, IOperation operation) 354private void ProcessLambdaOrLocalFunctionInvocation(IMethodSymbol targetMethod, IOperation invocation)
src\47c588c5b8785708\ParameterValidationAnalysisContext.cs (2)
68IMethodSymbol invokedMethod, 99public bool IsNullCheckValidationMethod(IMethodSymbol method)
src\8ce1f4f68b646e6d\GlobalFlowStateAnalysisContext.cs (1)
73IMethodSymbol invokedMethod,
src\8ce1f4f68b646e6d\GlobalFlowStateDataFlowOperationVisitor.cs (1)
145IMethodSymbol invokedMethod,
src\8ce1f4f68b646e6d\GlobalFlowStateValueSetFlowOperationVisitor.cs (1)
108IMethodSymbol method,
src\9382845807600969\AbstractDataFlowAnalysisContext.cs (2)
96IMethodSymbol invokedMethod, 103public ControlFlowGraph? GetLocalFunctionControlFlowGraph(IMethodSymbol localFunction)
src\9382845807600969\AnalysisEntityDataFlowOperationVisitor.cs (1)
464IMethodSymbol invokedMethod,
src\9382845807600969\InterproceduralAnalysisPredicate.cs (5)
13private readonly Func<IMethodSymbol, bool>? _skipAnalysisForInvokedMethodPredicate; 14private readonly Func<IMethodSymbol, bool>? _skipAnalysisForInvokedLambdaOrLocalFunctionPredicate; 18Func<IMethodSymbol, bool>? skipAnalysisForInvokedMethodPredicate, 19Func<IMethodSymbol, bool>? skipAnalysisForInvokedLambdaOrLocalFunctionPredicate, 34public bool SkipInterproceduralAnalysis(IMethodSymbol invokedMethod, bool isLambdaOrLocalFunction)
src\9382845807600969\LambdaAndLocalFunctionAnalysisInfo.cs (4)
17public ImmutableHashSet<IMethodSymbol> EscapedLocalFunctions { get; } 22public ImmutableHashSet<IMethodSymbol> AnalyzedLocalFunctions { get; } 35ImmutableHashSet<IMethodSymbol>.Builder escapedLocalFunctions, 36ImmutableHashSet<IMethodSymbol>.Builder analyzedLocalFunctions,
src\afc74d572e54ec72\DisposeAnalysis.DisposeDataFlowOperationVisitor.cs (2)
249private static bool IsDisposableCreationSpecialCase(IMethodSymbol targetMethod) 255IMethodSymbol method,
src\ffd9070534249528\PointsToAnalysis.PointsToDataFlowOperationVisitor.cs (5)
606IMethodSymbol invokedMethod, 938IMethodSymbol method, 968private static bool IsSpecialMethodReturningNonNullValue(IMethodSymbol method, WellKnownTypeProvider wellKnownTypeProvider) 977private static bool IsSpecialFactoryMethodReturningNonNullValue(IMethodSymbol method, WellKnownTypeProvider wellKnownTypeProvider) 1024IMethodSymbol localFunction,
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.cs (2)
274SymbolKind.Method => MethodMetricData.Compute((IMethodSymbol)symbol, context), 312SymbolKind.Method => MethodMetricData.Compute((IMethodSymbol)symbol, context),
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.EventMetricData.cs (1)
56private static IEnumerable<IMethodSymbol> GetAccessors(IEventSymbol @event)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.MethodMetricData.cs (2)
16IMethodSymbol symbol, 28internal static MethodMetricData Compute(IMethodSymbol method, CodeMetricsAnalysisContext context)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.NamedTypeMetricData.cs (1)
60members = members.Where(m => m.Kind != SymbolKind.Method || ((IMethodSymbol)m).AssociatedSymbol == null);
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.PropertyMetricData.cs (1)
57private static IEnumerable<IMethodSymbol> GetAccessors(IPropertySymbol property)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
223if (symbol is IMethodSymbol methodSymbol) 415SymbolKind.Method => ((IMethodSymbol)member).Parameters,
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\DoNotCatchGeneralUnlessRethrown.cs (4)
34protected abstract Diagnostic CreateDiagnostic(IMethodSymbol containingMethod, SyntaxToken catchKeyword); 35protected virtual bool IsConfiguredDisallowedExceptionType(INamedTypeSymbol namedTypeSymbol, IMethodSymbol containingMethod, Compilation compilation, AnalyzerOptions analyzerOptions, CancellationToken cancellationToken) 62var method = (IMethodSymbol)operationBlockAnalysisContext.OwningSymbol;
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\Extensions\IEnumerableOfIMethodSymbolExtensions.cs (25)
15/// <param name="methods">List of <see cref="IMethodSymbol"/> to filter.</param> 18public static IEnumerable<IMethodSymbol> WhereMethodDoesNotContainAttribute( 19this IEnumerable<IMethodSymbol> methods, 35/// <param name="methods">List of <see cref="IMethodSymbol"/> to scan for possible overloads</param> 36/// <param name="selectedOverload"><see cref="IMethodSymbol"/> that is currently picked by the user</param> 39public static IEnumerable<IMethodSymbol> GetMethodOverloadsWithDesiredParameterAtLeadingOrTrailing( 40this IEnumerable<IMethodSymbol> methods, 41IMethodSymbol selectedOverload, 92/// <param name="methods">List of <see cref="IMethodSymbol"/> to scan for possible overloads</param> 93/// <param name="selectedOverload"><see cref="IMethodSymbol"/> that is currently picked by the user</param> 95public static IEnumerable<IMethodSymbol> GetMethodOverloadsWithDesiredParameterAtTrailing( 96this IEnumerable<IMethodSymbol> methods, 97IMethodSymbol selectedOverload, 104/// Gets the <see cref="IMethodSymbol"/> in the sequence who's parameters match <paramref name="expectedParameterTypesInOrder"/>. 106/// <param name="members">The sequence of <see cref="IMethodSymbol"/>s to search.</param> 109/// The first <see cref="IMethodSymbol"/> in the sequence who's parameters match <paramref name="expectedParameterTypesInOrder"/>, or <langword>null</langword> if 112public static IMethodSymbol? GetFirstOrDefaultMemberWithParameterTypes(this IEnumerable<IMethodSymbol>? members, params ITypeSymbol[] expectedParameterTypesInOrder) 138public static IMethodSymbol? GetFirstOrDefaultMemberWithParameterInfos(this IEnumerable<IMethodSymbol>? members, params ParameterInfo[] expectedParameterTypesInOrder) 180/// Given an <see cref="IEnumerable{IMethodSymbol}"/>, returns the <see cref="IMethodSymbol"/> whose parameter list 189public static IMethodSymbol? GetFirstOrDefaultMemberWithParameterTypes(this IEnumerable<IMethodSymbol>? members, IReadOnlyList<ITypeSymbol> expectedParameterTypesInOrder) 194foreach (var member in members) 202bool Predicate(IMethodSymbol member)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (66)
27public static bool IsObjectEqualsOverride(this IMethodSymbol method) 41public static bool IsObjectEquals(this IMethodSymbol method) 55public static bool IsStaticObjectEqualsOrReferenceEquals(this IMethodSymbol method) 70public static bool IsGetHashCodeOverride(this IMethodSymbol method) 83public static bool IsToStringOverride(this IMethodSymbol method) 96private static bool IsObjectMethodOverride(IMethodSymbol method) 98IMethodSymbol overriddenMethod = method.OverriddenMethod; 115public static bool IsFinalizer(this IMethodSymbol method) 127IMethodSymbol overridden = method.OverriddenMethod; 140for (IMethodSymbol o = overridden.OverriddenMethod; o != null; o = o.OverriddenMethod) 152public static bool IsImplementationOfInterfaceMethod(this IMethodSymbol method, ITypeSymbol? typeArgument, [NotNullWhen(returnValue: true)] INamedTypeSymbol? interfaceType, string interfaceMethodName) 156return constructedInterface?.GetMembers(interfaceMethodName).FirstOrDefault() is IMethodSymbol interfaceMethod && 163public static bool IsDisposeImplementation(this IMethodSymbol method, Compilation compilation) 172public static bool IsAsyncDisposeImplementation(this IMethodSymbol method, Compilation compilation) 182public static bool IsDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iDisposable) 204public static bool IsAsyncDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iAsyncDisposable, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTaskType) 226private static bool HasDisposeMethodSignature(this IMethodSymbol method) 235public static bool HasDisposeSignatureByConvention(this IMethodSymbol method) 245public static bool HasDisposeBoolMethodSignature(this IMethodSymbol method) 262private static bool HasDisposeCloseMethodSignature(this IMethodSymbol method) 271private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 278private static bool HasDisposeAsyncMethodSignature(this IMethodSymbol method, 294private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 307private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 319public static DisposeMethodKind GetDisposeMethodKind(this IMethodSymbol method, Compilation compilation) 334this IMethodSymbol method, 387public static bool IsOnDeserializationImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iDeserializationCallback) 407public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 413public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 423public static bool IsPropertyGetter(this IMethodSymbol method) 432public static bool IsIndexerGetter(this IMethodSymbol method) 441public static bool IsPropertyAccessor(this IMethodSymbol method) 450public static bool IsEventAccessor(this IMethodSymbol method) 457public static bool IsOperator(this IMethodSymbol methodSymbol) 462public static bool HasOptionalParameters(this IMethodSymbol methodSymbol) 467public static IEnumerable<IMethodSymbol> GetOverloads(this IMethodSymbol? method) 469var methods = method?.ContainingType?.GetMembers(method.Name).OfType<IMethodSymbol>(); 472foreach (var member in methods) 502public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 523public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 532public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 544public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 559private static readonly BoundedCache<Compilation, ConcurrentDictionary<IMethodSymbol, IBlockOperation?>> s_methodToTopmostOperationBlockCache 565public static IBlockOperation? GetTopmostOperationBlock(this IMethodSymbol method, Compilation compilation, CancellationToken cancellationToken = default) 571IBlockOperation? ComputeTopmostOperationBlock(IMethodSymbol unused) 605public static bool IsLambdaOrLocalFunctionOrDelegate(this IMethodSymbol method) 614public static bool IsLambdaOrLocalFunction(this IMethodSymbol method) 623public static int GetParameterIndex(this IMethodSymbol methodSymbol, IParameterSymbol parameterSymbol) 642public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 652public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 662public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 674public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 688public static bool HasParameterWithDelegateType(this IMethodSymbol methodSymbol) 697public static bool IsOverrideOrVirtualMethodOf([NotNullWhen(returnValue: true)] this IMethodSymbol? methodSymbol, [NotNullWhen(returnValue: true)] INamedTypeSymbol? typeSymbol) 721public static bool IsArgumentNullCheckMethod(this IMethodSymbol method) 730public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 744public static bool IsAutoPropertyAccessor(this IMethodSymbol methodSymbol) 752public static bool IsTopLevelStatementsEntryPointMethod([NotNullWhen(true)] this IMethodSymbol? methodSymbol) 760public static bool IsGetAwaiterFromAwaitablePattern([NotNullWhen(true)] this IMethodSymbol? method, 782[NotNullWhen(true)] this IMethodSymbol? method, 803public static ImmutableArray<IMethodSymbol> GetOriginalDefinitions(this IMethodSymbol methodSymbol) 805ImmutableArray<IMethodSymbol>.Builder originalDefinitionsBuilder = ImmutableArray.CreateBuilder<IMethodSymbol>(); 822.OfType<IMethodSymbol>()
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (5)
87return symbol.GetMembers(op).OfType<IMethodSymbol>().Any(m => m.MethodKind == MethodKind.UserDefinedOperator); 110return symbol.GetMembers(WellKnownMemberNames.ObjectEquals).OfType<IMethodSymbol>().Any(m => m.IsObjectEqualsOverride()); 116return symbol.GetMembers(WellKnownMemberNames.ObjectGetHashCode).OfType<IMethodSymbol>().Any(m => m.IsGetHashCodeOverride()); 122.Any(m => m is IMethodSymbol method && method.IsFinalizer()); 295typeSymbol.GetMembers().OfType<IMethodSymbol>().Any(m => m.IsTopLevelStatementsEntryPointMethod());
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\Extensions\IOperationExtensions.cs (5)
502public static PooledHashSet<ISymbol> GetCaptures(this IOperation operation, IMethodSymbol lambdaOrLocalFunction) 510using var nestedLambdasAndLocalFunctions = PooledHashSet<IMethodSymbol>.GetInstance(); 1118var containingMethod = TryGetContainingAnonymousFunctionOrLocalFunction(operation) ?? (containingSymbol as IMethodSymbol); 1122public static IMethodSymbol? TryGetContainingAnonymousFunctionOrLocalFunction(this IOperation? operation)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\Extensions\ISymbolExtensions.cs (28)
26return symbol is IMethodSymbol accessorSymbol && 30public static IEnumerable<IMethodSymbol> GetAccessors(this ISymbol symbol) 98return symbol is IMethodSymbol { MethodKind: MethodKind.Constructor }; 103return (symbol as IMethodSymbol)?.IsFinalizer() ?? false; 157return symbol is IMethodSymbol { MethodKind: MethodKind.UserDefinedOperator }; 162return symbol is IMethodSymbol { MethodKind: MethodKind.Conversion }; 174IMethodSymbol m => m.Parameters, 238public static bool MatchMethodDerivedByName([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol type, string name) 320public static bool HasOverloadWithParameterOfType(this IEnumerable<IMethodSymbol> overloads, IMethodSymbol self, INamedTypeSymbol type, CancellationToken cancellationToken) 322foreach (var overload in overloads) 343public static IEnumerable<int> GetParameterIndices(this IMethodSymbol method, IEnumerable<IParameterSymbol> parameters, CancellationToken cancellationToken) 360public static bool ParametersAreSame(this IMethodSymbol method1, IMethodSymbol method2) 381public static bool ParameterTypesAreSame(this IMethodSymbol method1, IMethodSymbol method2, IEnumerable<int> parameterIndices, CancellationToken cancellationToken) 416public static bool ReturnTypeAndParametersAreSame(this IMethodSymbol method, IMethodSymbol otherMethod) 432public static IMethodSymbol? GetMatchingOverload(this IMethodSymbol method, IEnumerable<IMethodSymbol> overloads, int parameterIndex, INamedTypeSymbol type, CancellationToken cancellationToken) 434foreach (IMethodSymbol overload in overloads) 557IMethodSymbol methodSymbol => methodSymbol.OverriddenMethod, 572if (symbol is IMethodSymbol methodSymbol && !methodSymbol.ExplicitInterfaceImplementations.IsEmpty) 610IMethodSymbol methodSymbol => methodSymbol.ReturnType, 778public static bool HasDerivedMethodAttribute(this IMethodSymbol symbol, [NotNullWhen(returnValue: true)] INamedTypeSymbol? attribute) 836=> (symbol as IMethodSymbol)?.IsLambdaOrLocalFunction() == true; 865IMethodSymbol method => method.IsReadOnly,
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (1)
162return type.GetMembers("Dispose").OfType<IMethodSymbol>()
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\Lightup\IFunctionPointerInvocationOperationWrapper.cs (4)
25private static readonly Func<IOperation, IMethodSymbol> GetFunctionPointerSignatureAccessor = CreateFunctionPointerSignatureAccessor(WrappedType); 27private static Func<IOperation, IMethodSymbol> CreateFunctionPointerSignatureAccessor(Type? wrappedType) 43return Expression.Lambda<Func<IOperation, IMethodSymbol>>(Expression.Call(targetMethod, Expression.Convert(operation, wrappedType)), operation).Compile(); 56public IMethodSymbol GetFunctionPointerSignature() => GetFunctionPointerSignatureAccessor(WrappedOperation);
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\Options\SymbolModifiers.cs (1)
80if (symbol is IMethodSymbol method &&
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Analysis\CopyAnalysis\CopyAnalysisContext.cs (1)
60IMethodSymbol invokedMethod,
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysisContext.cs (1)
91IMethodSymbol invokedMethod,
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysisHelper.cs (5)
123IMethodSymbol containingMethod, 153private bool HasDisposableOwnershipTransferForConstructorParameter(IMethodSymbol containingMethod) => 162public bool HasAnyDisposableCreationDescendant(ImmutableArray<IOperation> operationBlocks, IMethodSymbol containingMethod) 207public bool IsDisposableCreationOrDisposeOwnershipTransfer(AbstractLocation location, IMethodSymbol containingMethod) 221public DisposeMethodKind GetDisposeMethodKind(IMethodSymbol method)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PointsToAnalysis\PointsToAnalysisContext.cs (1)
68IMethodSymbol invokedMethod,
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\ConstructorMapper.cs (2)
28IMethodSymbol constructorMethodSymbol, 39IMethodSymbol constructorMethodSymbol,
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAnalysis.cs (8)
149/// <returns>Dictionary of <see cref="Location"/> and <see cref="IMethodSymbol"/> pairs mapping to the kind of hazardous usage (Flagged or MaybeFlagged). The method in the key is null for return/initialization statements.</returns> 151public static PooledDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult>? BatchGetOrComputeHazardousUsages( 185/// <returns>Dictionary of <see cref="Location"/> and <see cref="IMethodSymbol"/> pairs mapping to the kind of hazardous usage (Flagged or MaybeFlagged). The method in the key is null for return/initialization statements.</returns> 187public static PooledDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult>? BatchGetOrComputeHazardousUsages( 198PooledDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult>? allResults = null; 218foreach (IMethodSymbol localFunctionSymbol in enclosingControlFlowGraph.LocalFunctions) 263allResults ??= PooledDictionary<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult>.GetInstance(); 265foreach (KeyValuePair<(Location Location, IMethodSymbol? Method), HazardousUsageEvaluationResult> kvp
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetCallbacks.cs (2)
150IMethodSymbol methodSymbol, 167IMethodSymbol methodSymbol,
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\WebInputSources.cs (1)
84if (parameter.ContainingSymbol is not IMethodSymbol methodSymbol
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowAnalysisResult.cs (3)
28private readonly ImmutableDictionary<IMethodSymbol, IDataFlowAnalysisResult<TAbstractAnalysisValue>> _standaloneLocalFunctionAnalysisResultsMap; 38ImmutableDictionary<IMethodSymbol, IDataFlowAnalysisResult<TAbstractAnalysisValue>> standaloneLocalFunctionAnalysisResultsMap, 156internal DataFlowAnalysisResult<TBlockAnalysisResult, TAbstractAnalysisValue>? TryGetStandaloneLocalFunctionAnalysisResult(IMethodSymbol localFunction)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowAnalysisResultBuilder.cs (1)
49ImmutableDictionary<IMethodSymbol, IDataFlowAnalysisResult<TAbstractAnalysisValue>> standaloneLocalFunctionAnalysisResultsMap,
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (49)
52private ImmutableHashSet<IMethodSymbol>? _lazyContractCheckMethods; 62private readonly ImmutableHashSet<IMethodSymbol>.Builder _escapedLocalFunctions; 67private readonly ImmutableHashSet<IMethodSymbol>.Builder _analyzedLocalFunctions; 120private readonly ImmutableDictionary<IMethodSymbol, IDataFlowAnalysisResult<TAbstractAnalysisValue>>.Builder _standaloneLocalFunctionAnalysisResultsBuilder; 125private readonly Dictionary<IMethodSymbol, ControlFlowGraph?>? _interproceduralMethodToCfgMap; 150public ImmutableDictionary<IMethodSymbol, IDataFlowAnalysisResult<TAbstractAnalysisValue>> StandaloneLocalFunctionAnalysisResultsMap => _standaloneLocalFunctionAnalysisResultsBuilder.ToImmutable(); 269.OfType<IMethodSymbol>().FirstOrDefault(HasDebugAssertSignature); 278_returnValueOperations = OwningSymbol is IMethodSymbol method && !method.ReturnsVoid ? new HashSet<IOperation>() : null; 280_standaloneLocalFunctionAnalysisResultsBuilder = ImmutableDictionary.CreateBuilder<IMethodSymbol, IDataFlowAnalysisResult<TAbstractAnalysisValue>>(); 281_escapedLocalFunctions = ImmutableHashSet.CreateBuilder<IMethodSymbol>(); 282_analyzedLocalFunctions = ImmutableHashSet.CreateBuilder<IMethodSymbol>(); 304_interproceduralMethodToCfgMap = new Dictionary<IMethodSymbol, ControlFlowGraph?>(); 342static bool HasDebugAssertSignature(IMethodSymbol method) 362if (OwningSymbol is IMethodSymbol method && 551OwningSymbol is IMethodSymbol method && 611foreach (var localFunction in DataFlowAnalysisContext.ControlFlowGraph.LocalFunctions) 629private bool IsStandaloneAnalysisRequiredForLocalFunction(IMethodSymbol localFunction) 834if (OwningSymbol is IMethodSymbol method && 979private bool IsContractCheckMethod(IMethodSymbol method) 990var validationMethods = requiresMethods.Concat(assumeMethods).Concat(assertMethods).OfType<IMethodSymbol>().Where(m => m.IsStatic && m.ReturnsVoid && !m.Parameters.IsEmpty && (m.Parameters[0].Type.SpecialType == SpecialType.System_Boolean)); 1005private bool IsAnyDebugAssertMethod(IMethodSymbol method) => 1011protected bool IsAnyAssertMethod(IMethodSymbol method) 1763bool IsOverrideOrImplementationOfEquatableEquals(IMethodSymbol methodSymbol) 1774var equalsMember = interfaceType.GetMembers("Equals").OfType<IMethodSymbol>().FirstOrDefault(); 2124IMethodSymbol invokedMethod, 2200IMethodSymbol invokedMethod, 2238int currentMethodCallCount = currentMethodsBeingAnalyzed.Count(m => !(m.OwningSymbol is IMethodSymbol ms && ms.IsLambdaOrLocalFunctionOrDelegate())); 2549if (argumentOperation.Parameter!.ContainingSymbol is IMethodSymbol method && 2593IMethodSymbol invokedMethod, 2630private void PerformStandaloneLocalFunctionInterproceduralAnalysis(IMethodSymbol localFunction) 2731IMethodSymbol invokedMethod) 3159var method = operation.Constructor!; 3178foreach ((IMethodSymbol method, _) in resolvedMethodTargetsOpt) 3224void PostVisitInvocation(IMethodSymbol targetMethod, ImmutableArray<IArgumentOperation> arguments) 3249void ProcessInterlockedOperation(IMethodSymbol targetMethod, ImmutableArray<IArgumentOperation> arguments, INamedTypeSymbol interlockedType) 3284using var methodTargetsOptBuilder = PooledHashSet<(IMethodSymbol method, IOperation? instance)>.GetInstance(); 3309PooledHashSet<(IMethodSymbol method, IOperation? instance)> methodTargetsOptBuilder, 3315PooledHashSet<(IMethodSymbol method, IOperation? instance)> methodTargetsOptBuilder, 3322PooledHashSet<(IMethodSymbol method, IOperation? instance)> methodTargetsOptBuilder, 3333var targetMethod = invocation.TargetMethod; 3376void AddMethodTarget(IMethodSymbol method, IOperation? instance) 3435out ImmutableHashSet<(IMethodSymbol method, IOperation? instance)>? resolvedMethodTargets) 3439using var methodTargetsOptBuilder = PooledHashSet<(IMethodSymbol method, IOperation? instance)>.GetInstance(); 3531IMethodSymbol method, 3544private ControlFlowGraph? GetInterproceduralControlFlowGraph(IMethodSymbol method) 3574IMethodSymbol localFunction, 4193private IMethodSymbol? DebugAssertMethod { get; } 4222private protected DisposeMethodKind GetDisposeMethodKind(IMethodSymbol method)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\IDataFlowAnalysisContext.cs (1)
14ControlFlowGraph? GetLocalFunctionControlFlowGraph(IMethodSymbol localFunction);
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\InterproceduralAnalysisData.cs (2)
38Func<IMethodSymbol, ControlFlowGraph?> getInterproceduralControlFlowGraph, 65public Func<IMethodSymbol, ControlFlowGraph?> GetInterproceduralControlFlowGraph { get; }
Microsoft.CodeAnalysis.Razor.Compiler (24)
CSharp\CompilationExtensions.cs (2)
56if (member is IMethodSymbol 97private static bool IsAccessibleFromGeneratedSubclass(IMethodSymbol method, Compilation compilation)
Language\TagHelpers\Producers\ComponentTagHelperProducer.cs (6)
303var methodSymbol = ((INamedTypeSymbol)prop.Type).DelegateInvokeMethod.AssumeNotNull(); 312if (candidate is not IMethodSymbol method || !string.Equals(candidate.Name, "GetAwaiter", StringComparison.Ordinal)) 327static bool VerifyGetAwaiter(IMethodSymbol getAwaiter) 348if (!(foundOnCompleted && foundGetResult) && member is IMethodSymbol method) 378static bool IsMethod_OnCompleted(IMethodSymbol method) 388static bool IsMethod_GetResult(IMethodSymbol method)
Mvc.Version1_X\ViewComponentTagHelperDescriptorFactory.cs (4)
69if (TryFindInvokeMethod(type, out var method, out var diagnostic)) 89private bool TryFindInvokeMethod(INamedTypeSymbol type, out IMethodSymbol method, out RazorDiagnostic diagnostic) 92.OfType<IMethodSymbol>() 112var selectedMethod = methods[0];
Mvc.Version2_X\ViewComponentTagHelperDescriptorFactory.cs (6)
69if (TryFindInvokeMethod(type, out var method, out var diagnostic)) 89private bool TryFindInvokeMethod(INamedTypeSymbol type, out IMethodSymbol method, out RazorDiagnostic diagnostic) 106var selectedMethod = methods[0]; 154private static IReadOnlyList<IMethodSymbol> GetInvokeMethods(INamedTypeSymbol type) 156var methods = new List<IMethodSymbol>(); 160.OfType<IMethodSymbol>()
Mvc\ViewComponentTagHelperDescriptorFactory.cs (6)
69if (TryFindInvokeMethod(type, out var method, out var diagnostic)) 89private bool TryFindInvokeMethod(INamedTypeSymbol type, out IMethodSymbol method, out RazorDiagnostic diagnostic) 106var selectedMethod = methods[0]; 154private static IReadOnlyList<IMethodSymbol> GetInvokeMethods(INamedTypeSymbol type) 156var methods = new List<IMethodSymbol>(); 160.OfType<IMethodSymbol>()
Microsoft.CodeAnalysis.Rebuild (3)
CompilationFactory.cs (3)
113var debugEntryPoint = getDebugEntryPoint(); 175IMethodSymbol? getDebugEntryPoint() 184.OfType<IMethodSymbol>();
Microsoft.CodeAnalysis.ResxSourceGenerator (303)
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.cs (2)
30IMethodSymbol lambdaOrLocalFunction, 52IMethodSymbol localFunctionOrLambda,
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (12)
36private readonly Func<IMethodSymbol, ControlFlowGraph, AnalysisData, CancellationToken, BasicBlockAnalysisData> _analyzeLocalFunctionOrLambdaInvocation; 55private readonly PooledDictionary<IMethodSymbol, ControlFlowGraph> _localFunctionTargetsToAccessingCfgMap; 79PooledHashSet<IMethodSymbol> lambdaOrLocalFunctionsBeingAnalyzed, 80Func<IMethodSymbol, ControlFlowGraph, AnalysisData, CancellationToken, BasicBlockAnalysisData> analyzeLocalFunctionOrLambdaInvocation, 82PooledDictionary<IMethodSymbol, ControlFlowGraph> localFunctionTargetsToAccessingCfgMap, 112protected override PooledHashSet<IMethodSymbol> LambdaOrLocalFunctionsBeingAnalyzed { get; } 119Func<IMethodSymbol, ControlFlowGraph, AnalysisData, CancellationToken, BasicBlockAnalysisData> analyzeLocalFunctionOrLambdaInvocation) 133lambdaOrLocalFunctionsBeingAnalyzed: PooledHashSet<IMethodSymbol>.GetInstance(), 136localFunctionTargetsToAccessingCfgMap: PooledDictionary<IMethodSymbol, ControlFlowGraph>.GetInstance(), 157IMethodSymbol lambdaOrLocalFunction, 336ControlFlowGraph TryGetLocalFunctionControlFlowGraphInScope(IMethodSymbol localFunction) 501protected override BasicBlockAnalysisData AnalyzeLocalFunctionInvocationCore(IMethodSymbol localFunction, CancellationToken cancellationToken)
src\b310f676f7308b7f\SymbolUsageAnalysis.OperationTreeAnalysisData.cs (7)
18private readonly Func<IMethodSymbol, BasicBlockAnalysisData> _analyzeLocalFunction; 23PooledHashSet<IMethodSymbol> lambdaOrLocalFunctionsBeingAnalyzed, 24Func<IMethodSymbol, BasicBlockAnalysisData> analyzeLocalFunction) 36protected override PooledHashSet<IMethodSymbol> LambdaOrLocalFunctionsBeingAnalyzed { get; } 40Func<IMethodSymbol, BasicBlockAnalysisData> analyzeLocalFunction) 45lambdaOrLocalFunctionsBeingAnalyzed: PooledHashSet<IMethodSymbol>.GetInstance(), 49protected override BasicBlockAnalysisData AnalyzeLocalFunctionInvocationCore(IMethodSymbol localFunction, CancellationToken cancellationToken)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.cs (2)
273SymbolKind.Method => MethodMetricData.Compute((IMethodSymbol)symbol, context), 311SymbolKind.Method => MethodMetricData.Compute((IMethodSymbol)symbol, context),
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.EventMetricData.cs (1)
55private static IEnumerable<IMethodSymbol> GetAccessors(IEventSymbol @event)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.MethodMetricData.cs (2)
15IMethodSymbol symbol, 27internal static MethodMetricData Compute(IMethodSymbol method, CodeMetricsAnalysisContext context)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.NamedTypeMetricData.cs (1)
59members = members.Where(m => m.Kind != SymbolKind.Method || ((IMethodSymbol)m).AssociatedSymbol == null);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.PropertyMetricData.cs (1)
56private static IEnumerable<IMethodSymbol> GetAccessors(IPropertySymbol property)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
221if (symbol is IMethodSymbol methodSymbol) 413SymbolKind.Method => ((IMethodSymbol)member).Parameters,
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\DoNotCatchGeneralUnlessRethrown.cs (4)
34protected abstract Diagnostic CreateDiagnostic(IMethodSymbol containingMethod, SyntaxToken catchKeyword); 35protected virtual bool IsConfiguredDisallowedExceptionType(INamedTypeSymbol namedTypeSymbol, IMethodSymbol containingMethod, Compilation compilation, AnalyzerOptions analyzerOptions, CancellationToken cancellationToken) 62var method = (IMethodSymbol)operationBlockAnalysisContext.OwningSymbol;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (48)
26public static bool IsObjectEqualsOverride(this IMethodSymbol method) 40public static bool IsObjectEquals(this IMethodSymbol method) 54public static bool IsStaticObjectEqualsOrReferenceEquals(this IMethodSymbol method) 69private static bool IsObjectMethodOverride(IMethodSymbol method) 71IMethodSymbol overriddenMethod = method.OverriddenMethod; 89public static bool IsImplementationOfInterfaceMethod(this IMethodSymbol method, ITypeSymbol? typeArgument, [NotNullWhen(returnValue: true)] INamedTypeSymbol? interfaceType, string interfaceMethodName) 93return constructedInterface?.GetMembers(interfaceMethodName).FirstOrDefault() is IMethodSymbol interfaceMethod && 100public static bool IsDisposeImplementation(this IMethodSymbol method, Compilation compilation) 109public static bool IsAsyncDisposeImplementation(this IMethodSymbol method, Compilation compilation) 119public static bool IsDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iDisposable) 141public static bool IsAsyncDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iAsyncDisposable, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTaskType) 163private static bool HasDisposeMethodSignature(this IMethodSymbol method) 171public static bool HasDisposeSignatureByConvention(this IMethodSymbol method) 181public static bool HasDisposeBoolMethodSignature(this IMethodSymbol method) 192private static bool HasDisposeCloseMethodSignature(this IMethodSymbol method) 200private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 207private static bool HasDisposeAsyncMethodSignature(this IMethodSymbol method, 223private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 236private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 248public static DisposeMethodKind GetDisposeMethodKind(this IMethodSymbol method, Compilation compilation) 263this IMethodSymbol method, 311public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 317public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 324public static bool HasOptionalParameters(this IMethodSymbol methodSymbol) 329public static IEnumerable<IMethodSymbol> GetOverloads(this IMethodSymbol? method) 331var methods = method?.ContainingType?.GetMembers(method.Name).OfType<IMethodSymbol>(); 334foreach (var member in methods) 364public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 385public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 394public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 406public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 420private static readonly BoundedCache<Compilation, ConcurrentDictionary<IMethodSymbol, IBlockOperation?>> s_methodToTopmostOperationBlockCache 426public static IBlockOperation? GetTopmostOperationBlock(this IMethodSymbol method, Compilation compilation, CancellationToken cancellationToken = default) 432IBlockOperation? ComputeTopmostOperationBlock(IMethodSymbol unused) 465public static bool IsLambdaOrLocalFunctionOrDelegate(this IMethodSymbol method) 474public static bool IsLambdaOrLocalFunction(this IMethodSymbol method) 483public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 493public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 505public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 519public static bool HasParameterWithDelegateType(this IMethodSymbol methodSymbol) 527public static bool IsArgumentNullCheckMethod(this IMethodSymbol method) 536public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 547public static ImmutableArray<IMethodSymbol> GetOriginalDefinitions(this IMethodSymbol methodSymbol) 549ImmutableArray<IMethodSymbol>.Builder originalDefinitionsBuilder = ImmutableArray.CreateBuilder<IMethodSymbol>(); 566.OfType<IMethodSymbol>()
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (1)
69return symbol.GetMembers(WellKnownMemberNames.ObjectEquals).OfType<IMethodSymbol>().Any(m => m.IsObjectEqualsOverride());
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (2)
331this IOperation operation, IMethodSymbol lambdaOrLocalFunction, out PooledHashSet<ISymbol> builder) 339using var _ = PooledHashSet<IMethodSymbol>.GetInstance(out var nestedLambdasAndLocalFunctions);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ISymbolExtensions.cs (10)
72public static bool ParametersAreSame(this IMethodSymbol method1, IMethodSymbol method2) 93public static bool ParameterTypesAreSame(this IMethodSymbol method1, IMethodSymbol method2, IEnumerable<int> parameterIndices, CancellationToken cancellationToken) 128public static bool ReturnTypeAndParametersAreSame(this IMethodSymbol method, IMethodSymbol otherMethod) 198if (symbol is IMethodSymbol methodSymbol && !methodSymbol.ExplicitInterfaceImplementations.IsEmpty) 331public static bool HasDerivedMethodAttribute(this IMethodSymbol symbol, [NotNullWhen(returnValue: true)] INamedTypeSymbol? attribute) 357=> (symbol as IMethodSymbol)?.IsLambdaOrLocalFunction() == true; 376IMethodSymbol method => method.IsReadOnly,
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (1)
132return type.GetMembers("Dispose").OfType<IMethodSymbol>()
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Options\SymbolModifiers.cs (1)
81if (symbol is IMethodSymbol method &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\CollectionExpressionUtilities.cs (9)
98var capacityConstructor = GetAccessibleInstanceConstructor(constructors, c => c.Parameters is [{ Name: "capacity", Type.SpecialType: SpecialType.System_Int32 }]); 102var noArgConstructor = 122IMethodSymbol? GetAccessibleInstanceConstructor(ImmutableArray<IMethodSymbol> constructors, Func<IMethodSymbol, bool> predicate) 124var constructor = constructors.FirstOrDefault(c => !c.IsStatic && predicate(c)); 136/// <item>their <see cref="IMethodSymbol.Arity"/> must match that of <paramref 145public static ImmutableArray<IMethodSymbol>? TryGetCollectionBuilderFactoryMethods( 164.OfType<IMethodSymbol>()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (3)
235var containingMethod = TryGetContainingAnonymousFunctionOrLocalFunction(operation) ?? (containingSymbol as IMethodSymbol); 239public static IMethodSymbol? TryGetContainingAnonymousFunctionOrLocalFunction(this IOperation? operation)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.AnalysisData.cs (3)
72protected abstract PooledHashSet<IMethodSymbol> LambdaOrLocalFunctionsBeingAnalyzed { get; } 91public BasicBlockAnalysisData AnalyzeLocalFunctionInvocation(IMethodSymbol localFunction, CancellationToken cancellationToken) 126protected abstract BasicBlockAnalysisData AnalyzeLocalFunctionInvocationCore(IMethodSymbol localFunction, CancellationToken cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.cs (1)
44BasicBlockAnalysisData AnalyzeLocalFunction(IMethodSymbol localFunction)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (1)
344private void AnalyzeLocalFunctionInvocation(IMethodSymbol localFunction)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (1)
44if (symbol is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (3)
167switch (((IMethodSymbol)currentSymbol).MethodKind) 363SymbolCategory.Method => symbol is IMethodSymbol method && method.MethodKind == (MethodKind)_kind, 507if (Modifiers.HasFlag(Modifiers.Async) && kind == SymbolKind.Method && ((IMethodSymbol)symbol).IsAsync)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ForEachSymbols.cs (6)
8IMethodSymbol? getEnumeratorMethod, 9IMethodSymbol? moveNextMethod, 11IMethodSymbol? disposeMethod, 14public readonly IMethodSymbol? GetEnumeratorMethod = getEnumeratorMethod; 15public readonly IMethodSymbol? MoveNextMethod = moveNextMethod; 17public readonly IMethodSymbol? DisposeMethod = disposeMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (5)
83IMethodSymbol? GetGetAwaiterMethod(SemanticModel semanticModel, SyntaxNode node); 85ImmutableArray<IMethodSymbol> GetDeconstructionAssignmentMethods(SemanticModel semanticModel, SyntaxNode node); 87ImmutableArray<IMethodSymbol> GetDeconstructionForEachMethods(SemanticModel semanticModel, SyntaxNode node); 106ImmutableArray<IMethodSymbol> GetLocalFunctionSymbols(Compilation compilation, ISymbol symbol, CancellationToken cancellationToken); 123bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFactsExtensions.cs (1)
112=> symbol is IMethodSymbol methodSymbol &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
63if (isAnonymousDelegateType && symbol is IMethodSymbol methodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.BuiltinOperatorSymbolKey.cs (6)
11private sealed class BuiltinOperatorSymbolKey : AbstractSymbolKey<IMethodSymbol> 15public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 23SymbolKeyReader reader, IMethodSymbol? contextualSymbol, out string? failureReason) 28using var parameterTypes = reader.ReadSymbolKeyArray<IMethodSymbol, ITypeSymbol>( 54var unaryOperator = reader.Compilation.CreateBuiltinOperator(name, returnTypeSymbol, parameterTypes[0]); 58var binaryOperator = reader.Compilation.CreateBuiltinOperator(name, returnTypeSymbol, parameterTypes[0], parameterTypes[1]);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (5)
33/// <item>Two <see cref="IMethodSymbol"/>s are the "same" if they have 36/// equal <see cref="IMethodSymbol.Arity"/>, 37/// the "same" <see cref="IMethodSymbol.TypeArguments"/>, and have 76/// cref="IRangeVariableSymbol"/> and <see cref="MethodKind.LocalFunction"/> <see cref="IMethodSymbol"/>s can also 323IMethodSymbol { MethodKind: MethodKind.LocalFunction } => true,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.MethodSymbolKey.cs (22)
11private sealed class ReducedExtensionMethodSymbolKey : AbstractSymbolKey<IMethodSymbol> 15public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 24SymbolKeyReader reader, IMethodSymbol? contextualMethod, out string? failureReason) 41using var result = PooledArrayBuilder<IMethodSymbol>.GetInstance(); 42foreach (var reducedFrom in reducedFromResolution.OfType<IMethodSymbol>()) 55private sealed class ConstructedMethodSymbolKey : AbstractSymbolKey<IMethodSymbol> 59public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 66SymbolKeyReader reader, IMethodSymbol? contextualMethod, out string? failureReason) 70using var typeArguments = reader.ReadSymbolKeyArray<IMethodSymbol, ITypeSymbol>( 101using var result = PooledArrayBuilder<IMethodSymbol>.GetInstance(); 102foreach (var method in constructedFrom.OfType<IMethodSymbol>()) 123private sealed class MethodSymbolKey : AbstractSymbolKey<IMethodSymbol> 127public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 160SymbolKeyReader reader, IMethodSymbol? contextualSymbol, out string? failureReason) 179using var methods = GetMembersOfNamedType<IMethodSymbol>(containingType, metadataName: null); 180IMethodSymbol? method = null; 181foreach (var candidate in methods) 223_ = reader.ReadSymbolKeyArray<IMethodSymbol, ITypeSymbol>( 243private static IMethodSymbol? Resolve( 244SymbolKeyReader reader, bool isPartialImplementationPart, IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (2)
45case IMethodSymbol method: 64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyReader.cs (5)
331private readonly List<IMethodSymbol?> _methodSymbolStack = []; 409public MethodPopper PushMethod(IMethodSymbol? method) 415private void PopMethod(IMethodSymbol? method) 422public IMethodSymbol? ResolveMethod(int index) 441public readonly ref struct MethodPopper(SymbolKeyReader reader, IMethodSymbol? method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyWriter.cs (5)
69private readonly List<IMethodSymbol> _methodSymbolStack = []; 362public override void VisitMethod(IMethodSymbol methodSymbol) 499var method = _methodSymbolStack[i]; 512public void PushMethod(IMethodSymbol method) 515public void PopMethod(IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.TypeParameterOrdinalSymbolKey.cs (1)
22var method = reader.ResolveMethod(methodIndex);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (14)
112SemanticModel model, TForEachStatementSyntax forEach, out IMethodSymbol getEnumeratorMethod, out ITypeSymbol elementType, out ImmutableArray<ILocalSymbol> localVariables); 379symbol = ((IMethodSymbol)symbol).GetConstructedReducedFrom()!; 384newSymbol = ((IMethodSymbol)newSymbol).GetConstructedReducedFrom()!; 404if (symbol is IMethodSymbol methodSymbol && newSymbol is IMethodSymbol newMethodSymbol) 478if (symbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction } methodSymbol && 479newSymbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction } newMethodSymbol) 757return symbol is IMethodSymbol { ContainingType.SpecialType: SpecialType.System_Object } 778GetForEachSymbols(this.OriginalSemanticModel, forEachStatement, out var originalGetEnumerator, out var originalElementType, out var originalLocalVariables); 779GetForEachSymbols(this.SpeculativeSemanticModel, newForEachStatement, out var newGetEnumerator, out var newElementType, out var newLocalVariables); 806private bool ReplacementBreaksForEachGetEnumerator(IMethodSymbol getEnumerator, IMethodSymbol newGetEnumerator, TExpressionSyntax newForEachStatementExpression) 875=> symbol is IMethodSymbol { MethodKind: MethodKind.DelegateInvoke }; 1048return receiverSymbol is IMethodSymbol or IPropertySymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\LightweightOverloadResolution.cs (12)
31public IMethodSymbol? RefineOverload(SymbolInfo symbolInfo, ImmutableArray<IMethodSymbol> candidates) 34public (IMethodSymbol? method, int parameterIndex) RefineOverloadAndPickParameter(SymbolInfo symbolInfo, ImmutableArray<IMethodSymbol> candidates) 38return symbolInfo.Symbol is IMethodSymbol method 43public int FindParameterIndexIfCompatibleMethod(IMethodSymbol method) 52private (IMethodSymbol? symbol, int parameterIndex) GuessCurrentSymbolAndParameter(ImmutableArray<IMethodSymbol> methodGroup) 56foreach (var method in methodGroup) 73private (IMethodSymbol? method, int parameterIndex) TryFindParameterIndexIfCompatibleMethod(IMethodSymbol method) 185private bool TryPrepareArgumentToParameterMap(IMethodSymbol method, ref TemporaryArray<int> argumentToParameterMap)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (2)
371public static IMethodSymbol? GetTopLevelStatementsMethod(this Compilation compilation) 377if (candidateMember is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (11)
19internal static IMethodSymbol? TryGetCorrespondingExtensionBlockMethod(this IMethodSymbol methodSymbol) 33if (member is IMethodSymbol method && 49public static ImmutableArray<IMethodSymbol> GetAllMethodSymbolsOfPartialParts(this IMethodSymbol method) 72public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 77public static bool TryGetPredefinedComparisonOperator(this IMethodSymbol symbol, out PredefinedOperator op) 101public static PredefinedOperator GetPredefinedOperator(this IMethodSymbol symbol) 131public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 142public static bool IsAsyncReturningVoidTask(this IMethodSymbol method, Compilation compilation) 160public static bool IsPrimaryConstructor(this IMethodSymbol constructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (9)
136static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 184IMethodSymbol method => method.ExplicitInterfaceImplementations.Length > 0, 235static bool IsNonPublicImplementableAccessor(IMethodSymbol? accessor) 242if (member is IMethodSymbol { IsStatic: true, IsAbstract: true, MethodKind: MethodKind.UserDefinedOperator } method) 335private static bool IsInaccessibleImplementableAccessor(IMethodSymbol? accessor, ISymbol within) 439case IMethodSymbol method: 651IMethodSymbol { MethodKind: MethodKind.Ordinary, CanBeReferencedByName: true } => true, 652IMethodSymbol { MethodKind: MethodKind.UserDefinedOperator } => true, 671return member is IMethodSymbol
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IParameterSymbolExtensions.cs (2)
31ContainingSymbol: IMethodSymbol 63ContainingSymbol: IMethodSymbol
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions_Accessibility.cs (2)
107var funcPtrSignature = ((IFunctionPointerTypeSymbol)symbol).Signature; 156if (symbol is IMethodSymbol { MethodKind: MethodKind.BuiltinOperator })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (43)
87IMethodSymbol method => method.OverriddenMethod, 110IMethodSymbol? bestMethod = null; 128else if (member is IMethodSymbol method) 145IMethodSymbol method => ImmutableArray<ISymbol>.CastUp(method.ExplicitInterfaceImplementations), 199if (symbol is IMethodSymbol 241=> symbol is IMethodSymbol { MethodKind: MethodKind.AnonymousFunction }; 268=> symbol is IMethodSymbol { MethodKind: MethodKind.ReducedExtension }; 273/// <inheritdoc cref="IMethodSymbol.IsExtensionMethod"/> 275=> symbol is IMethodSymbol { IsExtensionMethod: true }; 278=> symbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction }; 287=> symbol is IMethodSymbol { MethodKind: MethodKind.Constructor }; 290=> symbol is IMethodSymbol { MethodKind: MethodKind.StaticConstructor }; 293=> symbol is IMethodSymbol { MethodKind: MethodKind.Destructor }; 296=> symbol is IMethodSymbol { MethodKind: MethodKind.UserDefinedOperator }; 299=> symbol is IMethodSymbol { MethodKind: MethodKind.Conversion }; 302=> symbol is IMethodSymbol { MethodKind: MethodKind.Ordinary }; 305=> symbol is IMethodSymbol { MethodKind: MethodKind.Ordinary or MethodKind.LocalFunction }; 344IMethodSymbol methodSymbol => methodSymbol.ReturnType, 355SymbolKind.Method => ((IMethodSymbol)symbol).Arity, 370symbol = ((IMethodSymbol)symbol).GetConstructedReducedFrom(); 375if (symbol.ContainingSymbol is IMethodSymbol method) 393var method = parameter.ContainingSymbol as IMethodSymbol; 426IMethodSymbol m => m.Parameters, 434IMethodSymbol m => m.TypeParameters, 455IMethodSymbol m => m.TypeArguments, 500if (symbol is IMethodSymbol method && method.Parameters.All(p => p.RefKind == RefKind.None)) 656=> (symbol as IMethodSymbol)?.MethodKind.IsPropertyAccessor() == true; 659=> symbol is IMethodSymbol { MethodKind: MethodKind.EventAdd or MethodKind.EventRaise or MethodKind.EventRemove }; 685var methodSymbol = symbol as IMethodSymbol; 709var getAwaiters = potentialGetAwaiters.OfType<IMethodSymbol>().Where(x => !x.Parameters.Any()); 713public static bool IsValidGetAwaiter(this IMethodSymbol symbol) 717private static bool VerifyGetAwaiter(IMethodSymbol getAwaiter) 731var methods = returnType.GetMembers().OfType<IMethodSymbol>(); 747public static bool IsValidGetEnumerator(this IMethodSymbol symbol) 751private static bool VerifyGetEnumerator(IMethodSymbol getEnumerator) 771if (!members.OfType<IMethodSymbol>().Any(x => 787public static bool IsValidGetAsyncEnumerator(this IMethodSymbol symbol) 791private static bool VerifyGetAsyncEnumerator(IMethodSymbol getAsyncEnumerator) 814if (!members.OfType<IMethodSymbol>().Any(x => x.Name == WellKnownMemberNames.MoveNextAsyncMethodName)) 896[NotNullWhen(true)] out IMethodSymbol? classicExtensionMethod) 898if (symbol is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
108public override bool VisitMethod(IMethodSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.cs (2)
412.SelectAccessibleMembers<IMethodSymbol>(WellKnownMemberNames.CollectionInitializerAddMethodName, within ?? typeSymbol) 413.OfType<IMethodSymbol>()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SignatureComparer.cs (12)
43SymbolKind.Method => HaveSameSignature((IMethodSymbol)symbol1, (IMethodSymbol)symbol2, caseSensitive), 67public static bool BadPropertyAccessor(IMethodSymbol? method1, IMethodSymbol? method2) 73public bool HaveSameSignature(IMethodSymbol method1, 74IMethodSymbol method2, 162var method1 = (IMethodSymbol)symbol1; 163var method2 = (IMethodSymbol)symbol2; 208private bool HaveSameSignatureAndConstraintsAndReturnType(IMethodSymbol method1, IMethodSymbol method2)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (6)
149public bool ReturnTypeEquals(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 194private static bool IsConstructedFromSelf(IMethodSymbol symbol) 200private static bool CheckContainingType(IMethodSymbol x) 231private static bool IsPartialMethodDefinitionPart(IMethodSymbol symbol) 234private static bool IsPartialMethodImplementationPart(IMethodSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (8)
124SymbolKind.Method => MethodsAreEquivalent((IMethodSymbol)x, (IMethodSymbol)y, equivalentTypesWithDifferingAssemblies), 170private bool MethodsAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, bool considerReturnRefKinds = false) 186var rx = x.ReducedFrom; 187var ry = y.ReducedFrom; 486internal bool ReturnTypesAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (2)
68SymbolKind.Method => CombineHashCodes((IMethodSymbol)x, currentHash), 112private int CombineHashCodes(IMethodSymbol x, int currentHash)
Microsoft.CodeAnalysis.Scripting (2)
ScriptBuilder.cs (2)
128var entryPoint = compilation.GetEntryPoint(cancellationToken); 186internal static MethodInfo GetEntryPointRuntimeMethod(IMethodSymbol entryPoint, Assembly assembly)
Microsoft.CodeAnalysis.VisualBasic (130)
Analysis\FlowAnalysis\VisualBasicDataFlowAnalysis.vb (2)
289Public Overrides ReadOnly Property UsedLocalFunctions As ImmutableArray(Of IMethodSymbol) 291Return ImmutableArray(Of IMethodSymbol).Empty
Compilation\AwaitExpressionInfo.vb (6)
19Friend Sub New(getAwaiter As IMethodSymbol, isCompleted As IPropertySymbol, getResult As IMethodSymbol) 25Private ReadOnly _getAwaiter As IMethodSymbol 27Private ReadOnly _getResult As IMethodSymbol 32Public ReadOnly Property GetAwaiterMethod As IMethodSymbol 41Public ReadOnly Property GetResultMethod As IMethodSymbol
Compilation\ForEachStatementInfo.vb (6)
14Public ReadOnly Property GetEnumeratorMethod As IMethodSymbol 19Public ReadOnly Property MoveNextMethod As IMethodSymbol 29Public ReadOnly Property DisposeMethod As IMethodSymbol 63Friend Sub New(getEnumeratorMethod As IMethodSymbol, 64moveNextMethod As IMethodSymbol, 66disposeMethod As IMethodSymbol,
Compilation\SemanticModel.vb (6)
2627Public Overloads Function GetDeclaredSymbol(declarationSyntax As SubNewStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As IMethodSymbol 2636Public Overloads Function GetDeclaredSymbol(declarationSyntax As MethodStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As IMethodSymbol 2645Public Overloads Function GetDeclaredSymbol(declarationSyntax As DeclareStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As IMethodSymbol 2654Public Overloads Function GetDeclaredSymbol(declarationSyntax As OperatorStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As IMethodSymbol 2663Public Overloads Function GetDeclaredSymbol(declarationSyntax As MethodBlockBaseSyntax, Optional cancellationToken As CancellationToken = Nothing) As IMethodSymbol 2724Public Overloads Function GetDeclaredSymbol(declarationSyntax As AccessorStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As IMethodSymbol
Compilation\VisualBasicCompilation.vb (6)
478Friend Overrides Sub ValidateDebugEntryPoint(debugEntryPoint As IMethodSymbol, diagnostics As DiagnosticBag) 2374debugEntryPoint As IMethodSymbol, 2396debugEntryPoint As IMethodSymbol, 2971rightType As ITypeSymbol) As IMethodSymbol 3054operandType As ITypeSymbol) As IMethodSymbol 3115Protected Overrides Function CommonGetEntryPoint(cancellationToken As CancellationToken) As IMethodSymbol
Operations\VisualBasicOperationFactory.vb (7)
431Dim symbol As IMethodSymbol = boundLambda.LambdaSymbol 439Dim targetMethod As IMethodSymbol = boundCall.Method 501Dim operatorMethod As IMethodSymbol = Nothing 514Dim operatorMethod As IMethodSymbol = TryGetOperatorMethod(boundUserDefinedUnaryOperator) 635Dim unaryOperatorMethod As IMethodSymbol = Nothing 760Dim method As IMethodSymbol = boundDelegateCreationExpression.Method 820Dim constructor As IMethodSymbol = boundObjectCreationExpression.ConstructorOpt
Semantics\Conversions.vb (1)
209Public ReadOnly Property MethodSymbol As IMethodSymbol
SymbolDisplay\SymbolDisplayVisitor.Members.vb (11)
163Public Overrides Sub VisitMethod(symbol As IMethodSymbol) 194Private Sub AddMethodKind(symbol As IMethodSymbol) 289Private Sub AddMethodName(symbol As IMethodSymbol) 380Private Shared Function TryGetOperatorTokenKind(symbol As IMethodSymbol) As SyntaxKind 408Private Shared Function TryGetConversionTokenKind(symbol As IMethodSymbol) As SyntaxKind 418Private Sub AddMethodGenericParameters(method As IMethodSymbol) 424Private Sub AddMethodParameters(method As IMethodSymbol) 433Private Sub AddMethodReturnType(method As IMethodSymbol) 451Private Sub VisitDeclareMethod(method As IMethodSymbol) 685Private Function IsDeclareMethod(method As IMethodSymbol) As Boolean 701DirectCast(symbol, IMethodSymbol).MethodKind = MethodKind.AnonymousFunction OrElse
Symbols\Attributes\AttributeData.vb (2)
156''' Gets the constructor used in this application of the attribute as an <see cref="IMethodSymbol"/>. 158Protected Overrides ReadOnly Property CommonAttributeConstructor As IMethodSymbol
Symbols\EventSymbol.vb (3)
291Private ReadOnly Property IEventSymbol_AddMethod As IMethodSymbol Implements IEventSymbol.AddMethod 297Private ReadOnly Property IEventSymbol_RemoveMethod As IMethodSymbol Implements IEventSymbol.RemoveMethod 303Private ReadOnly Property IEventSymbol_RaiseMethod As IMethodSymbol Implements IEventSymbol.RaiseMethod
Symbols\LabelSymbol.vb (1)
111Friend ReadOnly Property ILabelSymbol_ContainingMethod As IMethodSymbol Implements ILabelSymbol.ContainingMethod
Symbols\MethodSymbol.vb (60)
38Public MustOverride ReadOnly Property IsVararg As Boolean Implements IMethodSymbol.IsVararg 43Public Overridable ReadOnly Property IsCheckedBuiltin As Boolean Implements IMethodSymbol.IsCheckedBuiltin 109Private ReadOnly Property IMethodSymbol_IsReadOnly As Boolean Implements IMethodSymbol.IsReadOnly 115Private ReadOnly Property IMethodSymbol_IsInitOnly As Boolean Implements IMethodSymbol.IsInitOnly 136Public MustOverride ReadOnly Property IsIterator As Boolean Implements IMethodSymbol.IsIterator 260Public ReadOnly Property IsConditional As Boolean Implements IMethodSymbol.IsConditional 379Public MustOverride Function GetDllImportData() As DllImportData Implements IMethodSymbol.GetDllImportData 829Public Function ReduceExtensionMember(receiverType As ITypeSymbol) As IMethodSymbol Implements IMethodSymbol.ReduceExtensionMember 927Private ReadOnly Property IMethodSymbol_Arity As Integer Implements IMethodSymbol.Arity 933Private ReadOnly Property IMethodSymbol_ConstructedFrom As IMethodSymbol Implements IMethodSymbol.ConstructedFrom 939Private ReadOnly Property IMethodSymbol_ExplicitInterfaceImplementations As ImmutableArray(Of IMethodSymbol) Implements IMethodSymbol.ExplicitInterfaceImplementations 941Return ImmutableArrayExtensions.Cast(Of MethodSymbol, IMethodSymbol)(Me.ExplicitInterfaceImplementations) 945Private ReadOnly Property IMethodSymbol_MethodImplementationFlags As System.Reflection.MethodImplAttributes Implements IMethodSymbol.MethodImplementationFlags 951Private ReadOnly Property IMethodSymbol_IsExtensionMethod As Boolean Implements IMethodSymbol.IsExtensionMethod 957Private ReadOnly Property IMethodSymbol_MethodKind As MethodKind Implements IMethodSymbol.MethodKind 963Private ReadOnly Property IMethodSymbol_OriginalDefinition As IMethodSymbol Implements IMethodSymbol.OriginalDefinition 969Private ReadOnly Property IMethodSymbol_OverriddenMethod As IMethodSymbol Implements IMethodSymbol.OverriddenMethod 975Private ReadOnly Property IMethodSymbol_ReceiverType As ITypeSymbol Implements IMethodSymbol.ReceiverType 981Private ReadOnly Property IMethodSymbol_ReceiverNullableAnnotation As NullableAnnotation Implements IMethodSymbol.ReceiverNullableAnnotation 987Private Function IMethodSymbol_GetTypeInferredDuringReduction(reducedFromTypeParameter As ITypeParameterSymbol) As ITypeSymbol Implements IMethodSymbol.GetTypeInferredDuringReduction 991Private ReadOnly Property IMethodSymbol_ReducedFrom As IMethodSymbol Implements IMethodSymbol.ReducedFrom 997Private Function IMethodSymbol_ReduceExtensionMethod(receiverType As ITypeSymbol) As IMethodSymbol Implements IMethodSymbol.ReduceExtensionMethod 1005Private ReadOnly Property IMethodSymbol_Parameters As ImmutableArray(Of IParameterSymbol) Implements IMethodSymbol.Parameters 1048Private ReadOnly Property IMethodSymbol_PartialDefinitionPart As IMethodSymbol Implements IMethodSymbol.PartialDefinitionPart 1054Private ReadOnly Property IMethodSymbol_PartialImplementationPart As IMethodSymbol Implements IMethodSymbol.PartialImplementationPart 1060Private ReadOnly Property IMethodSymbol_IsPartialDefinition As Boolean Implements IMethodSymbol.IsPartialDefinition 1066Private ReadOnly Property IMethodSymbol_ReturnsVoid As Boolean Implements IMethodSymbol.ReturnsVoid, IMethodSymbolInternal.ReturnsVoid 1072Private ReadOnly Property IMethodSymbol_ReturnsByRef As Boolean Implements IMethodSymbol.ReturnsByRef 1078Private ReadOnly Property IMethodSymbol_ReturnsByReadonlyRef As Boolean Implements IMethodSymbol.ReturnsByRefReadonly 1084Private ReadOnly Property IMethodSymbol_RefKind As RefKind Implements IMethodSymbol.RefKind 1090Private ReadOnly Property IMethodSymbol_ReturnType As ITypeSymbol Implements IMethodSymbol.ReturnType 1096Private ReadOnly Property IMethodSymbol_ReturnNullableAnnotation As NullableAnnotation Implements IMethodSymbol.ReturnNullableAnnotation 1102Private ReadOnly Property IMethodSymbol_CallingConvention As Reflection.Metadata.SignatureCallingConvention Implements IMethodSymbol.CallingConvention 1108Private ReadOnly Property IMethodSymbol_UnmanagedCallingConventionTypes As ImmutableArray(Of INamedTypeSymbol) Implements IMethodSymbol.UnmanagedCallingConventionTypes 1114Private ReadOnly Property IMethodSymbol_TypeArguments As ImmutableArray(Of ITypeSymbol) Implements IMethodSymbol.TypeArguments 1120Private ReadOnly Property IMethodSymbol_TypeArgumentsNullableAnnotation As ImmutableArray(Of NullableAnnotation) Implements IMethodSymbol.TypeArgumentNullableAnnotations 1126Private ReadOnly Property IMethodSymbol_TypeParameters As ImmutableArray(Of ITypeParameterSymbol) Implements IMethodSymbol.TypeParameters 1132Private ReadOnly Property IMethodSymbol_AssociatedSymbol As ISymbol Implements IMethodSymbol.AssociatedSymbol 1138Private ReadOnly Property IMethodSymbol_IsGenericMethod As Boolean Implements IMethodSymbol.IsGenericMethod 1144Private ReadOnly Property IMethodSymbol_IsAsync As Boolean Implements IMethodSymbol.IsAsync, IMethodSymbolInternal.IsAsync 1150Private ReadOnly Property IMethodSymbol_HidesBaseMethodsByName As Boolean Implements IMethodSymbol.HidesBaseMethodsByName 1156Private ReadOnly Property IMethodSymbol_RefCustomModifiers As ImmutableArray(Of CustomModifier) Implements IMethodSymbol.RefCustomModifiers 1162Private ReadOnly Property IMethodSymbol_ReturnTypeCustomModifiers As ImmutableArray(Of CustomModifier) Implements IMethodSymbol.ReturnTypeCustomModifiers 1168Private Function IMethodSymbol_GetReturnTypeAttributes() As ImmutableArray(Of AttributeData) Implements IMethodSymbol.GetReturnTypeAttributes 1172Private Function IMethodSymbol_Construct(ParamArray typeArguments() As ITypeSymbol) As IMethodSymbol Implements IMethodSymbol.Construct 1180Private Function IMethodSymbol_Construct(typeArguments As ImmutableArray(Of ITypeSymbol), typeArgumentNullableAnnotations As ImmutableArray(Of CodeAnalysis.NullableAnnotation)) As IMethodSymbol Implements IMethodSymbol.Construct 1184Private ReadOnly Property IMethodSymbol_AssociatedAnonymousDelegate As INamedTypeSymbol Implements IMethodSymbol.AssociatedAnonymousDelegate 1243Public ReadOnly Property AssociatedExtensionImplementation As IMethodSymbol Implements IMethodSymbol.AssociatedExtensionImplementation
Symbols\NamedTypeSymbol.vb (8)
408Private Function GetConstructors(Of TMethodSymbol As {IMethodSymbol, Class})(includeInstance As Boolean, includeShared As Boolean) As ImmutableArray(Of TMethodSymbol) 1329Private ReadOnly Property INamedTypeSymbol_DelegateInvokeMethod As IMethodSymbol Implements INamedTypeSymbol.DelegateInvokeMethod 1419Private ReadOnly Property INamedTypeSymbol_InstanceConstructors As ImmutableArray(Of IMethodSymbol) Implements INamedTypeSymbol.InstanceConstructors 1421Return GetConstructors(Of IMethodSymbol)(includeInstance:=True, includeShared:=False) 1425Private ReadOnly Property INamedTypeSymbol_StaticConstructors As ImmutableArray(Of IMethodSymbol) Implements INamedTypeSymbol.StaticConstructors 1427Return GetConstructors(Of IMethodSymbol)(includeInstance:=False, includeShared:=True) 1431Private ReadOnly Property INamedTypeSymbol_Constructors As ImmutableArray(Of IMethodSymbol) Implements INamedTypeSymbol.Constructors 1433Return GetConstructors(Of IMethodSymbol)(includeInstance:=True, includeShared:=True)
Symbols\PropertySymbol.vb (2)
561Private ReadOnly Property IPropertySymbol_GetMethod As IMethodSymbol Implements IPropertySymbol.GetMethod 585Private ReadOnly Property IPropertySymbol_SetMethod As IMethodSymbol Implements IPropertySymbol.SetMethod
Symbols\TypeParameterSymbol.vb (1)
375Private ReadOnly Property ITypeParameterSymbol_DeclaringMethod As IMethodSymbol Implements ITypeParameterSymbol.DeclaringMethod
VisualBasicExtensions.vb (8)
553Public Function IsOverloads(methodSymbol As IMethodSymbol) As Boolean 571Public Function HandledEvents(methodSymbol As IMethodSymbol) As ImmutableArray(Of HandledEvent) 1084Public Function GetDeclaredSymbol(semanticModel As SemanticModel, declarationSyntax As SubNewStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As IMethodSymbol 1097Public Function GetDeclaredSymbol(semanticModel As SemanticModel, declarationSyntax As MethodStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As IMethodSymbol 1110Public Function GetDeclaredSymbol(semanticModel As SemanticModel, declarationSyntax As DeclareStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As IMethodSymbol 1123Public Function GetDeclaredSymbol(semanticModel As SemanticModel, declarationSyntax As OperatorStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As IMethodSymbol 1136Public Function GetDeclaredSymbol(semanticModel As SemanticModel, declarationSyntax As MethodBlockBaseSyntax, Optional cancellationToken As CancellationToken = Nothing) As IMethodSymbol 1214Public Function GetDeclaredSymbol(semanticModel As SemanticModel, declarationSyntax As AccessorStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As IMethodSymbol
Microsoft.CodeAnalysis.VisualBasic.CodeStyle (21)
src\8ea48114eea10243\VisualBasicRemoveUnusedParametersAndValuesDiagnosticAnalyzer.vb (1)
39Protected Overrides Function MethodHasHandlesClause(method As IMethodSymbol) As Boolean
src\roslyn\src\Analyzers\VisualBasic\Analyzers\RemoveUnusedMembers\VisualBasicRemoveUnusedMembersDiagnosticAnalyzer.vb (1)
27For Each method In DirectCast(context.Symbol, INamedTypeSymbol).GetMembers().OfType(Of IMethodSymbol)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\UseAutoProperty\VisualBasicUseAutoPropertyAnalyzer.vb (3)
86Protected Overrides Function GetGetterExpression(getMethod As IMethodSymbol, cancellationToken As CancellationToken) As ExpressionSyntax 109Protected Overrides Function GetSetterExpression(semanticModel As SemanticModel, setMethod As IMethodSymbol, cancellationToken As CancellationToken) As ExpressionSyntax 142Protected Overrides Sub AddAccessedFields(semanticModel As SemanticModel, accessor As IMethodSymbol, fieldNames As HashSet(Of String), result As HashSet(Of IFieldSymbol), cancellationToken As CancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\ExpressionSyntaxExtensions.vb (5)
154Dim methodSymbol = TryCast(symbolInfo.GetAnySymbol(), IMethodSymbol) 299If TypeOf symbol Is IMethodSymbol Then 300Dim method = DirectCast(symbol, IMethodSymbol) 395Dim method = TryCast(semanticModel.GetSymbolInfo(memberAccess, cancellationToken).Symbol, IMethodSymbol) 512Return Not symbolInfo.GetBestOrAllSymbols().OfType(Of IMethodSymbol)().Any() AndAlso
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\SemanticModelExtensions.vb (1)
244Dim member = TryCast(semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken).Symbol, IMethodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\SyntaxNodeExtensions.vb (1)
1085Dim method = TryCast(symbol, IMethodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Services\SemanticFacts\VisualBasicSemanticFacts.vb (8)
200Public Function GetGetAwaiterMethod(model As SemanticModel, node As SyntaxNode) As IMethodSymbol Implements ISemanticFacts.GetGetAwaiterMethod 210Public Function GetDeconstructionAssignmentMethods(model As SemanticModel, deconstruction As SyntaxNode) As ImmutableArray(Of IMethodSymbol) Implements ISemanticFacts.GetDeconstructionAssignmentMethods 211Return ImmutableArray(Of IMethodSymbol).Empty 214Public Function GetDeconstructionForEachMethods(model As SemanticModel, deconstruction As SyntaxNode) As ImmutableArray(Of IMethodSymbol) Implements ISemanticFacts.GetDeconstructionForEachMethods 215Return ImmutableArray(Of IMethodSymbol).Empty 278Public Function GetLocalFunctionSymbols(compilation As Compilation, symbol As ISymbol, cancellationToken As CancellationToken) As ImmutableArray(Of IMethodSymbol) Implements ISemanticFacts.GetLocalFunctionSymbols 279Return ImmutableArray(Of IMethodSymbol).Empty 338Public Function TryGetPrimaryConstructor(typeSymbol As INamedTypeSymbol, <NotNullWhen(True)> ByRef primaryConstructor As IMethodSymbol) As Boolean Implements ISemanticFacts.TryGetPrimaryConstructor
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Utilities\SpeculationAnalyzer.vb (1)
599ByRef getEnumeratorMethod As IMethodSymbol,
Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes (57)
src\f388afcd21099bcf\VisualBasicInitializeParameterService.vb (1)
23Protected Overrides Function GetAccessorBody(accessor As IMethodSymbol, cancellationToken As CancellationToken) As SyntaxNode
src\f736901a33c2b55b\VisualBasicTypeInferenceService.TypeInferrer.vb (7)
337Dim methods = symbols.OfType(Of IMethodSymbol)() 368Dim methods = symbols.OfType(Of IMethodSymbol)() 712Return lambdaTypes.Where(Function(t) t.InferredType.TypeKind = TypeKind.Delegate).SelectMany(Function(t) t.InferredType.GetMembers(WellKnownMemberNames.DelegateInvokeName).OfType(Of IMethodSymbol)().Select(Function(m) New TypeInferenceInfo(m.ReturnType))) 738Dim memberMethod = TryCast(memberSymbol, IMethodSymbol) 769Dim memberType = If(TryCast(memberSymbol, IMethodSymbol)?.ReturnType, 1037Dim expressionAddMethodSymbols = SemanticModel.GetCollectionInitializerSymbolInfo(expression).GetAllSymbols().OfType(Of IMethodSymbol) 1049Dim initializerAddMethodSymbols = SemanticModel.GetCollectionInitializerSymbolInfo(collectionInitializer).GetAllSymbols().OfType(Of IMethodSymbol)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\AddExplicitCast\VisualBasicAddExplicitCastCodeFixProvider.vb (1)
179For Each candidateSymbol In candidateSymbols.OfType(Of IMethodSymbol)()
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\ConvertToAsync\VisualBasicConvertToAsyncFunctionCodeFixProvider.vb (1)
62Dim methodSymbol = TryCast(semanticModel.GetSymbolInfo(oldNode, cancellationToken).Symbol, IMethodSymbol)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\GenerateConstructor\VisualBasicGenerateConstructorService.vb (4)
168Protected Overrides Function GetCurrentConstructor(semanticModel As SemanticModel, token As SyntaxToken, cancellationToken As CancellationToken) As IMethodSymbol 173Protected Overrides Function GetDelegatedConstructor(semanticModel As SemanticModel, constructor As IMethodSymbol, cancellationToken As CancellationToken) As IMethodSymbol 182Dim methodSymbol = TryCast(semanticModel.GetSymbolInfo(expressionStatement.Expression, cancellationToken).Symbol, IMethodSymbol)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\GenerateParameterizedMember\VisualBasicGenerateConversionService.vb (6)
55Protected Overrides Function TryInitializeExplicitConversionState(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef identifierToken As SyntaxToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 69Protected Overrides Function TryInitializeImplicitConversionState(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef identifierToken As SyntaxToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 83Private Shared Function TryGetConversionMethodAndTypeToGenerateIn(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 113Private Shared Function TryGetExplicitConversionMethodAndTypeToGenerateIn(document As SemanticDocument, castExpression As CastExpressionSyntax, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 129Private Shared Function TryGetImplicitConversionMethodAndTypeToGenerateIn(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 145Private Shared Function GenerateMethodSymbol(typeToGenerateIn As INamedTypeSymbol, parameterSymbol As INamedTypeSymbol) As IMethodSymbol
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\GenerateParameterizedMember\VisualBasicGenerateMethodService.vb (2)
45ByRef methodSymbol As IMethodSymbol, 59methodSymbol = DirectCast(semanticModel.GetDeclaredSymbol(methodStatement, cancellationToken), IMethodSymbol)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\ImplementInterface\VisualBasicImplementInterfaceService.vb (1)
30Protected Overrides Function ToDisplayString(disposeImplMethod As IMethodSymbol, format As SymbolDisplayFormat) As String
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\Iterator\VisualBasicConvertToIteratorCodeFixProvider.vb (1)
63Dim method = TryCast(symbol, IMethodSymbol)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\MakeMethodAsynchronous\VisualBasicMakeMethodAsynchronousCodeFixProvider.vb (2)
67methodSymbolOpt As IMethodSymbol, 91Private Shared Function FixFunctionBlock(methodSymbol As IMethodSymbol, node As MethodBlockSyntax, knownTypes As KnownTaskTypes) As SyntaxNode
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\MakeMethodSynchronous\VisualBasicMakeMethodSynchronousCodeFixProvider.vb (2)
38Protected Overrides Function RemoveAsyncTokenAndFixReturnType(methodSymbolOpt As IMethodSymbol, node As SyntaxNode, knownTypes As KnownTaskTypes) As SyntaxNode 54Private Shared Function FixFunctionBlock(methodSymbol As IMethodSymbol, node As MethodBlockSyntax, knownTypes As KnownTaskTypes) As SyntaxNode
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\ConstructorGenerator.vb (5)
18constructor As IMethodSymbol, 30Friend Function GenerateConstructorDeclaration(constructor As IMethodSymbol, 58Private Function GenerateStatements(constructor As IMethodSymbol) As SyntaxList(Of StatementSyntax) 82Private Function GenerateModifiers(constructor As IMethodSymbol, destination As CodeGenerationDestination, options As CodeGenerationContextInfo) As SyntaxTokenList 95Private Function CreateBaseConstructorCall(constructor As IMethodSymbol) As StatementSyntax
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\ConversionGenerator.vb (3)
13method As IMethodSymbol, 24Public Function GenerateConversionDeclaration(method As IMethodSymbol, 38Private Function GenerateConversionDeclarationWorker(method As IMethodSymbol,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\MethodGenerator.vb (8)
14method As IMethodSymbol, 27method As IMethodSymbol, 40method As IMethodSymbol, 52Public Shared Function GenerateMethodDeclaration(method As IMethodSymbol, 67Private Shared Function GenerateMethodDeclarationWorker(method As IMethodSymbol, 103Private Shared Function GenerateAsClause(method As IMethodSymbol, isSub As Boolean, options As CodeGenerationContextInfo) As SimpleAsClauseSyntax 137Private Overloads Shared Function GenerateTypeParameterList(method As IMethodSymbol) As TypeParameterListSyntax 141Private Shared Function GenerateModifiers(method As IMethodSymbol,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\OperatorGenerator.vb (3)
13method As IMethodSymbol, 24Public Function GenerateOperatorDeclaration(method As IMethodSymbol, 38Private Function GenerateOperatorDeclarationWorker(method As IMethodSymbol,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\PropertyGenerator.vb (3)
120accessor As IMethodSymbol, 147Private Function GenerateAccessorStatements(accessor As IMethodSymbol) As SyntaxList(Of StatementSyntax) 157accessor As IMethodSymbol,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\StatementGenerator.vb (1)
15Friend Function GenerateStatements(method As IMethodSymbol) As SyntaxList(Of StatementSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\VisualBasicCodeGenerationService.vb (2)
134method As IMethodSymbol, 526Public Overrides Function CreateMethodDeclaration(method As IMethodSymbol,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Editing\VisualBasicImportAdder.vb (2)
107Dim method = TryCast(member, IMethodSymbol) 219Dim method = TryCast(_model.GetSymbolInfo(node.Name, cancellationToken).GetAnySymbol(), IMethodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\IMethodSymbolExtensions.vb (1)
14Public Function IsAggregateFunction(symbol As IMethodSymbol) As Boolean
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\VisualBasicSemanticFactsService.vb (1)
134Public Function TryGetDisposeMethod(semanticModel As SemanticModel, node As SyntaxNode, cancellationToken As CancellationToken) As IMethodSymbol Implements ISemanticFactsService.TryGetDisposeMethod
Microsoft.CodeAnalysis.VisualBasic.Features (100)
ChangeSignature\VisualBasicChangeSignatureService.vb (5)
358Dim methodSymbol = TryCast(symbolInfo.Symbol, IMethodSymbol) 398Dim methodSymbol = TryCast(symbolInfo.Symbol, IMethodSymbol) 417Dim methodSymbol = TryCast(symbolInfo.Symbol, IMethodSymbol) 683method As IMethodSymbol, 788Protected Overrides Function TryGetRecordPrimaryConstructor(typeSymbol As INamedTypeSymbol, ByRef primaryConstructor As IMethodSymbol) As Boolean
CodeFixes\GenerateEvent\GenerateEventCodeFixProvider.vb (4)
81Dim delegateSymbol As IMethodSymbol = Nothing 122delegateSymbol As IMethodSymbol, 169Private Shared Function TryGetDelegateSymbol(handlerExpression As ExpressionSyntax, semanticModel As SemanticModel, ByRef delegateSymbol As IMethodSymbol, cancellationToken As CancellationToken) As Boolean 170delegateSymbol = TryCast(semanticModel.GetSymbolInfo(handlerExpression, cancellationToken).GetAnySymbol(), IMethodSymbol)
CodeFixes\IncorrectExitContinue\IncorrectExitContinueCodeFixProvider.vb (1)
162Dim methodSymbol = TryCast(enclosingDeclaration, IMethodSymbol)
CodeLens\VisualBasicDisplayInfoService.vb (1)
98Dim methodSymbol = TryCast(symbol, IMethodSymbol) ' its really a SourcePropertyAccessorSymbol but it Is Not accessible
Completion\CompletionProviders\ImplementsClauseCompletionProvider.vb (1)
120Dim method = TryCast(symbol, IMethodSymbol)
Completion\CompletionProviders\NamedParameterCompletionProvider.vb (1)
182Dim methodParameters = accessibleMembers.OfType(Of IMethodSymbol).Select(Function(m) m.Parameters.As(Of ISymbol)())
Completion\CompletionProviders\OverrideCompletionProvider.vb (4)
158Dim finalizeMethod = members.OfType(Of IMethodSymbol)().Where(Function(x) x.Name = "Finalize" AndAlso OverridesObjectMethod(x)).SingleOrDefault() 165Dim filteredMembers = members.OfType(Of IMethodSymbol)().Where(Function(m) Not m.ReturnsVoid) 177Dim filteredMembers = members.OfType(Of IMethodSymbol)().Where(Function(m) m.ReturnsVoid) 186Private Shared Function OverridesObjectMethod(method As IMethodSymbol) As Boolean
Debugging\BreakpointResolver.vb (1)
30Protected Overrides Function HasMethodBody(method As IMethodSymbol, cancellationToken As CancellationToken) As Boolean
EditAndContinue\VisualBasicEditAndContinueAnalyzer.vb (9)
515Dim parameter = DirectCast(symbol, IMethodSymbol).Parameters.First() 618Dim method = TryCast(symbol, IMethodSymbol) 988Friend Overrides Function GetLambdaExpressionSymbol(model As SemanticModel, lambdaExpression As SyntaxNode, cancellationToken As CancellationToken) As IMethodSymbol 992Return DirectCast(model.GetEnclosingSymbol(lambdaExpressionSyntax.SubOrFunctionHeader.Span.End, cancellationToken), IMethodSymbol) 1427Friend Overrides Function GetDisplayName(symbol As IMethodSymbol) As String 1958Protected Overrides Function AreHandledEventsEqual(oldMethod As IMethodSymbol, newMethod As IMethodSymbol) As Boolean 1984Dim method = DirectCast(newSymbol, IMethodSymbol) 2019Dim method = DirectCast(newSymbol, IMethodSymbol)
EncapsulateField\VisualBasicEncapsulateFieldService.vb (1)
134SelectMany(Function(c As IMethodSymbol) c.DeclaringSyntaxReferences.Select(Function(d) d.GetSyntax().Parent)).
ExtractMethod\Extensions.vb (1)
140Dim methodSymbols = model.GetSymbolInfo(invocation, cancellationToken).GetAllSymbols().Where(Function(s) s.Kind = SymbolKind.Method).Cast(Of IMethodSymbol)()
ExtractMethod\VisualBasicMethodExtractor.VisualBasicCodeGenerator.vb (2)
68Protected Overrides Function UpdateMethodAfterGenerationAsync(originalDocument As SemanticDocument, methodSymbol As IMethodSymbol, cancellationToken As CancellationToken) As Task(Of SemanticDocument) 76Protected Overrides Function GenerateMethodDefinition(insertionPointNode As SyntaxNode, cancellationToken As CancellationToken) As IMethodSymbol
ExtractMethod\VisualBasicSelectionResult.vb (1)
141Return DirectCast(symbol, IMethodSymbol).ReturnType
GenerateType\VisualBasicGenerateTypeService.vb (4)
289generateTypeServiceStateOptions.DelegateCreationMethodSymbol = TryCast(semanticModel.GetSymbolInfo(simpleArgumentExpression, cancellationToken).Symbol, IMethodSymbol) 331generateTypeServiceStateOptions.DelegateCreationMethodSymbol = DirectCast(symbol, IMethodSymbol) 351Private Shared Function GetMemberGroupIfPresent(semanticModel As SemanticModel, expression As ExpressionSyntax, cancellationToken As CancellationToken) As IMethodSymbol 358Return If(memberGroup.ElementAt(0).IsKind(SymbolKind.Method), DirectCast(memberGroup.ElementAt(0), IMethodSymbol), Nothing)
IntroduceParameter\VisualBasicIntroduceParameterCodeRefactoringProvider.vb (1)
34Protected Overrides Function IsDestructor(methodSymbol As IMethodSymbol) As Boolean
LanguageServices\VisualBasicSymbolDisplayService.SymbolDescriptionBuilder.vb (1)
168Dim method = TryCast(symbol, IMethodSymbol)
NavigationBar\VisualBasicNavigationBarItemService.vb (8)
270Dim method = DirectCast(symbol, IMethodSymbol) 323Dim methodsImplementingEvents = containingType.GetMembers().OfType(Of IMethodSymbol) _ 326Dim eventToImplementingMethods As New Dictionary(Of IEventSymbol, List(Of IMethodSymbol)) 330Dim list As List(Of IMethodSymbol) = Nothing 333list = New List(Of IMethodSymbol) 343Dim methods As List(Of IMethodSymbol) = Nothing 411Dim method = TryCast(member, IMethodSymbol) 450Private Shared Function IsUnimplementedPartial(method As IMethodSymbol) As Boolean
ReplacePropertyWithMethods\VisualBasicReplacePropertyWithMethods.vb (6)
84getMethod As IMethodSymbol, 117setMethod As IMethodSymbol, 144method As IMethodSymbol, 145desiredName As String) As IMethodSymbol 171explicitInterfaceImplMethod As IMethodSymbol, 172desiredName As String) As IMethodSymbol
SignatureHelp\AbstractOrdinaryMethodSignatureHelpProvider.vb (2)
56If TypeOf symbol Is IMethodSymbol Then 57Dim method = DirectCast(symbol, IMethodSymbol)
SignatureHelp\AttributeSignatureHelpProvider.vb (3)
103Private Overloads Shared Function Convert(constructor As IMethodSymbol, 129Private Shared Function GetParameters(constructor As IMethodSymbol, 178Private Shared Function GetPreambleParts(method As IMethodSymbol, semanticModel As SemanticModel, position As Integer) As IList(Of SymbolDisplayPart)
SignatureHelp\FunctionAggregationSignatureHelpProvider.vb (5)
66includeReducedExtensionMethods:=True).OfType(Of IMethodSymbol). 93Private Overloads Shared Function Convert(method As IMethodSymbol, 111Private Shared Function GetPreambleParts(method As IMethodSymbol) As IList(Of SymbolDisplayPart) 119Private Shared Function GetPostambleParts(method As IMethodSymbol, 135Private Shared Function GetParameterParts(method As IMethodSymbol, semanticModel As SemanticModel, position As Integer,
SignatureHelp\GenericNameSignatureHelpProvider.Method.vb (3)
9Private Shared Function GetPreambleParts(method As IMethodSymbol, semanticModel As SemanticModel, position As Integer) As IList(Of SymbolDisplayPart) 28Private Shared Function GetContainingType(method As IMethodSymbol) As ITypeSymbol 38Private Shared Function GetPostambleParts(method As IMethodSymbol, semanticModel As SemanticModel, position As Integer) As IList(Of SymbolDisplayPart)
SignatureHelp\GenericNameSignatureHelpProvider.vb (2)
96WhereAsArray(Function(s) TypeOf s Is INamedTypeSymbol OrElse TypeOf s Is IMethodSymbol). 129Dim method = DirectCast(symbol, IMethodSymbol)
SignatureHelp\InvocationExpressionSignatureHelpProvider.DelegateInvoke.vb (3)
40Private Shared Function GetDelegateInvokePreambleParts(invokeMethod As IMethodSymbol, semanticModel As SemanticModel, position As Integer) As IList(Of SymbolDisplayPart) 53Private Shared Function GetDelegateInvokeParameters(invokeMethod As IMethodSymbol, semanticModel As SemanticModel, position As Integer, documentationCommentFormattingService As IDocumentationCommentFormattingService, cancellationToken As CancellationToken) As IList(Of SignatureHelpSymbolParameter) 67Private Shared Function GetDelegateInvokePostambleParts(invokeMethod As IMethodSymbol,
SignatureHelp\InvocationExpressionSignatureHelpProvider.vb (1)
86Dim matchedMethodSymbol = TryCast(symbolInfo.Symbol, IMethodSymbol)
SignatureHelp\ObjectCreationExpressionSignatureHelpProvider.DelegateType.vb (2)
39Private Shared Function GetDelegateTypePreambleParts(invokeMethod As IMethodSymbol, semanticModel As SemanticModel, position As Integer) As IList(Of SymbolDisplayPart) 46Private Shared Function GetDelegateTypeParameters(invokeMethod As IMethodSymbol, semanticModel As SemanticModel, position As Integer) As IList(Of SignatureHelpSymbolParameter)
SignatureHelp\ObjectCreationExpressionSignatureHelpProvider.NormalType.vb (2)
45Private Shared Function ConvertNormalTypeConstructor(constructor As IMethodSymbol, objectCreationExpression As ObjectCreationExpressionSyntax, semanticModel As SemanticModel, 60Private Shared Function GetNormalTypePreambleParts(method As IMethodSymbol, semanticModel As SemanticModel, position As Integer) As IList(Of SymbolDisplayPart)
src\8ea48114eea10243\VisualBasicRemoveUnusedParametersAndValuesDiagnosticAnalyzer.vb (1)
39Protected Overrides Function MethodHasHandlesClause(method As IMethodSymbol) As Boolean
src\roslyn\src\Analyzers\VisualBasic\Analyzers\RemoveUnusedMembers\VisualBasicRemoveUnusedMembersDiagnosticAnalyzer.vb (1)
27For Each method In DirectCast(context.Symbol, INamedTypeSymbol).GetMembers().OfType(Of IMethodSymbol)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\UseAutoProperty\VisualBasicUseAutoPropertyAnalyzer.vb (3)
86Protected Overrides Function GetGetterExpression(getMethod As IMethodSymbol, cancellationToken As CancellationToken) As ExpressionSyntax 109Protected Overrides Function GetSetterExpression(semanticModel As SemanticModel, setMethod As IMethodSymbol, cancellationToken As CancellationToken) As ExpressionSyntax 142Protected Overrides Sub AddAccessedFields(semanticModel As SemanticModel, accessor As IMethodSymbol, fieldNames As HashSet(Of String), result As HashSet(Of IFieldSymbol), cancellationToken As CancellationToken)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\AddExplicitCast\VisualBasicAddExplicitCastCodeFixProvider.vb (1)
179For Each candidateSymbol In candidateSymbols.OfType(Of IMethodSymbol)()
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\ConvertToAsync\VisualBasicConvertToAsyncFunctionCodeFixProvider.vb (1)
62Dim methodSymbol = TryCast(semanticModel.GetSymbolInfo(oldNode, cancellationToken).Symbol, IMethodSymbol)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\GenerateConstructor\VisualBasicGenerateConstructorService.vb (4)
168Protected Overrides Function GetCurrentConstructor(semanticModel As SemanticModel, token As SyntaxToken, cancellationToken As CancellationToken) As IMethodSymbol 173Protected Overrides Function GetDelegatedConstructor(semanticModel As SemanticModel, constructor As IMethodSymbol, cancellationToken As CancellationToken) As IMethodSymbol 182Dim methodSymbol = TryCast(semanticModel.GetSymbolInfo(expressionStatement.Expression, cancellationToken).Symbol, IMethodSymbol)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\GenerateParameterizedMember\VisualBasicGenerateConversionService.vb (6)
55Protected Overrides Function TryInitializeExplicitConversionState(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef identifierToken As SyntaxToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 69Protected Overrides Function TryInitializeImplicitConversionState(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef identifierToken As SyntaxToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 83Private Shared Function TryGetConversionMethodAndTypeToGenerateIn(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 113Private Shared Function TryGetExplicitConversionMethodAndTypeToGenerateIn(document As SemanticDocument, castExpression As CastExpressionSyntax, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 129Private Shared Function TryGetImplicitConversionMethodAndTypeToGenerateIn(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 145Private Shared Function GenerateMethodSymbol(typeToGenerateIn As INamedTypeSymbol, parameterSymbol As INamedTypeSymbol) As IMethodSymbol
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\GenerateParameterizedMember\VisualBasicGenerateMethodService.vb (2)
45ByRef methodSymbol As IMethodSymbol, 59methodSymbol = DirectCast(semanticModel.GetDeclaredSymbol(methodStatement, cancellationToken), IMethodSymbol)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\ImplementInterface\VisualBasicImplementInterfaceService.vb (1)
30Protected Overrides Function ToDisplayString(disposeImplMethod As IMethodSymbol, format As SymbolDisplayFormat) As String
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\Iterator\VisualBasicConvertToIteratorCodeFixProvider.vb (1)
63Dim method = TryCast(symbol, IMethodSymbol)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\MakeMethodAsynchronous\VisualBasicMakeMethodAsynchronousCodeFixProvider.vb (2)
67methodSymbolOpt As IMethodSymbol, 91Private Shared Function FixFunctionBlock(methodSymbol As IMethodSymbol, node As MethodBlockSyntax, knownTypes As KnownTaskTypes) As SyntaxNode
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\MakeMethodSynchronous\VisualBasicMakeMethodSynchronousCodeFixProvider.vb (2)
38Protected Overrides Function RemoveAsyncTokenAndFixReturnType(methodSymbolOpt As IMethodSymbol, node As SyntaxNode, knownTypes As KnownTaskTypes) As SyntaxNode 54Private Shared Function FixFunctionBlock(methodSymbol As IMethodSymbol, node As MethodBlockSyntax, knownTypes As KnownTaskTypes) As SyntaxNode
Microsoft.CodeAnalysis.VisualBasic.NetAnalyzers (4)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\BasicOverrideEqualsOnOverloadingOperatorEquals.vb (1)
54If Not type.GetMembers(WellKnownMemberNames.EqualityOperatorName).OfType(Of IMethodSymbol).Any(Function(m) m.MethodKind = MethodKind.UserDefinedOperator) Then
Microsoft.NetCore.Analyzers\Runtime\BasicDetectPreviewFeatureAnalyzer.vb (1)
289Protected Overrides Function GetPreviewParameterSyntaxNodeForMethod(methodSymbol As IMethodSymbol, parameterSymbol As ISymbol) As SyntaxNode
Microsoft.NetCore.Analyzers\Runtime\BasicSpecifyCultureForToLowerAndToUpper.Fixer.vb (1)
38Dim methodSymbol = TryCast(symbolInfo, IMethodSymbol)
Microsoft.NetCore.Analyzers\Runtime\BasicUseOrdinalStringComparison.Fixer.vb (1)
48Dim methodSymbol = TryCast(model.GetSymbolInfo(identifier, cancellationToken).Symbol, IMethodSymbol)
Microsoft.CodeAnalysis.VisualBasic.Workspaces (83)
CaseCorrection\VisualBasicCaseCorrectionService.Rewriter.vb (5)
96Dim definitionPart As IMethodSymbol = Nothing 108Dim definitionPart As IMethodSymbol = Nothing 169(symbol.IsKind(SymbolKind.Method) AndAlso DirectCast(symbol, IMethodSymbol).MethodKind = MethodKind.Constructor) 202Private Function GetOtherPartOfPartialMethod(methodDeclaration As MethodStatementSyntax, <Out> ByRef definitionPart As IMethodSymbol) As IMethodSymbol
Classification\SyntaxClassification\NameSyntaxClassifier.vb (2)
110Dim classification = GetClassificationForMethod(node, DirectCast(symbol, IMethodSymbol)) 210Private Shared Function GetClassificationForMethod(node As NameSyntax, methodSymbol As IMethodSymbol) As String
Classification\SyntaxClassification\OperatorOverloadSyntaxClassifier.vb (2)
41If TypeOf symbolInfo.Symbol Is IMethodSymbol AndAlso 42DirectCast(symbolInfo.Symbol, IMethodSymbol).MethodKind = MethodKind.UserDefinedOperator Then
CodeCleanup\Providers\AddMissingTokensCodeCleanupProvider.vb (1)
125Function(s) If(TryCast(s, IMethodSymbol)?.MethodKind = MethodKind.Ordinary, False))
CodeGeneration\VisualBasicSyntaxGenerator.vb (1)
1175Private Protected Overrides Function DestructorDeclaration(destructorMethod As IMethodSymbol) As SyntaxNode
Recommendations\VisualBasicRecommendationServiceRunner.vb (4)
106symbols.OfType(Of IMethodSymbol)(). 343symbols = symbols.WhereAsArray(Function(s) s.Kind <> SymbolKind.Method OrElse DirectCast(s, IMethodSymbol).MethodKind <> MethodKind.UserDefinedOperator) 377Private Function GetEnclosingCtor(node As MemberAccessExpressionSyntax) As IMethodSymbol 381Dim method = TryCast(symbol, IMethodSymbol)
Rename\VisualBasicRenameRewriterLanguageService.vb (6)
720Dim methodSymbol = DirectCast(renamedSymbol.ContainingSymbol, IMethodSymbol) 767DeclarationConflictHelpers.GetMembersWithConflictingSignatures(DirectCast(renamedSymbol, IMethodSymbol), trimOptionalParameters:=True, distinguishRefKind:=False) _ 920If TypeOf renamedSymbol Is IMethodSymbol Then 921If DirectCast(renamedSymbol, IMethodSymbol).IsOverloads AndAlso 923DirectCast(renamedSymbol, IMethodSymbol).Parameters.Length <> 0) Then 951Dim method = DirectCast(symbol, IMethodSymbol)
Simplification\Reducers\VisualBasicEscapingReducer.vb (1)
102If symbol IsNot Nothing AndAlso symbol.Kind = SymbolKind.Method AndAlso Not DirectCast(symbol, IMethodSymbol).IsConstructor Then
Simplification\Reducers\VisualBasicExtensionMethodReducer.vb (2)
40Dim targetMethodSymbol = DirectCast(targetSymbol.Symbol, IMethodSymbol) 62If newSymbol.Kind = SymbolKind.Method And oldSymbol.Equals(DirectCast(newSymbol, IMethodSymbol).GetConstructedReducedFrom()) Then
Simplification\Simplifiers\ExpressionSimplifier.vb (1)
246If isInCref AndAlso TypeOf rightSymbol Is IMethodSymbol AndAlso Not containingType.SpecialType = SpecialType.None Then
Simplification\VisualBasicSimplificationService.Expander.vb (5)
212newInvocationExpression = RewriteExtensionMethodInvocation(node, newInvocationExpression, memberAccess.Expression, DirectCast(newInvocationExpression.Expression, MemberAccessExpressionSyntax).Expression, DirectCast(targetSymbol, IMethodSymbol)) 224reducedExtensionMethod As IMethodSymbol) As InvocationExpressionSyntax 250reducedExtensionMethod As IMethodSymbol, 686If DirectCast(symbol, IMethodSymbol).TypeArguments.Length <> 0 Then 687Dim typeArguments = DirectCast(symbol, IMethodSymbol).TypeArguments
src\f388afcd21099bcf\VisualBasicInitializeParameterService.vb (1)
23Protected Overrides Function GetAccessorBody(accessor As IMethodSymbol, cancellationToken As CancellationToken) As SyntaxNode
src\f736901a33c2b55b\VisualBasicTypeInferenceService.TypeInferrer.vb (7)
337Dim methods = symbols.OfType(Of IMethodSymbol)() 368Dim methods = symbols.OfType(Of IMethodSymbol)() 712Return lambdaTypes.Where(Function(t) t.InferredType.TypeKind = TypeKind.Delegate).SelectMany(Function(t) t.InferredType.GetMembers(WellKnownMemberNames.DelegateInvokeName).OfType(Of IMethodSymbol)().Select(Function(m) New TypeInferenceInfo(m.ReturnType))) 738Dim memberMethod = TryCast(memberSymbol, IMethodSymbol) 769Dim memberType = If(TryCast(memberSymbol, IMethodSymbol)?.ReturnType, 1037Dim expressionAddMethodSymbols = SemanticModel.GetCollectionInitializerSymbolInfo(expression).GetAllSymbols().OfType(Of IMethodSymbol) 1049Dim initializerAddMethodSymbols = SemanticModel.GetCollectionInitializerSymbolInfo(collectionInitializer).GetAllSymbols().OfType(Of IMethodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\ExpressionSyntaxExtensions.vb (5)
154Dim methodSymbol = TryCast(symbolInfo.GetAnySymbol(), IMethodSymbol) 299If TypeOf symbol Is IMethodSymbol Then 300Dim method = DirectCast(symbol, IMethodSymbol) 395Dim method = TryCast(semanticModel.GetSymbolInfo(memberAccess, cancellationToken).Symbol, IMethodSymbol) 512Return Not symbolInfo.GetBestOrAllSymbols().OfType(Of IMethodSymbol)().Any() AndAlso
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\SemanticModelExtensions.vb (1)
244Dim member = TryCast(semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken).Symbol, IMethodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\SyntaxNodeExtensions.vb (1)
1085Dim method = TryCast(symbol, IMethodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Services\SemanticFacts\VisualBasicSemanticFacts.vb (8)
200Public Function GetGetAwaiterMethod(model As SemanticModel, node As SyntaxNode) As IMethodSymbol Implements ISemanticFacts.GetGetAwaiterMethod 210Public Function GetDeconstructionAssignmentMethods(model As SemanticModel, deconstruction As SyntaxNode) As ImmutableArray(Of IMethodSymbol) Implements ISemanticFacts.GetDeconstructionAssignmentMethods 211Return ImmutableArray(Of IMethodSymbol).Empty 214Public Function GetDeconstructionForEachMethods(model As SemanticModel, deconstruction As SyntaxNode) As ImmutableArray(Of IMethodSymbol) Implements ISemanticFacts.GetDeconstructionForEachMethods 215Return ImmutableArray(Of IMethodSymbol).Empty 278Public Function GetLocalFunctionSymbols(compilation As Compilation, symbol As ISymbol, cancellationToken As CancellationToken) As ImmutableArray(Of IMethodSymbol) Implements ISemanticFacts.GetLocalFunctionSymbols 279Return ImmutableArray(Of IMethodSymbol).Empty 338Public Function TryGetPrimaryConstructor(typeSymbol As INamedTypeSymbol, <NotNullWhen(True)> ByRef primaryConstructor As IMethodSymbol) As Boolean Implements ISemanticFacts.TryGetPrimaryConstructor
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Utilities\SpeculationAnalyzer.vb (1)
599ByRef getEnumeratorMethod As IMethodSymbol,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\ConstructorGenerator.vb (5)
18constructor As IMethodSymbol, 30Friend Function GenerateConstructorDeclaration(constructor As IMethodSymbol, 58Private Function GenerateStatements(constructor As IMethodSymbol) As SyntaxList(Of StatementSyntax) 82Private Function GenerateModifiers(constructor As IMethodSymbol, destination As CodeGenerationDestination, options As CodeGenerationContextInfo) As SyntaxTokenList 95Private Function CreateBaseConstructorCall(constructor As IMethodSymbol) As StatementSyntax
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\ConversionGenerator.vb (3)
13method As IMethodSymbol, 24Public Function GenerateConversionDeclaration(method As IMethodSymbol, 38Private Function GenerateConversionDeclarationWorker(method As IMethodSymbol,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\MethodGenerator.vb (8)
14method As IMethodSymbol, 27method As IMethodSymbol, 40method As IMethodSymbol, 52Public Shared Function GenerateMethodDeclaration(method As IMethodSymbol, 67Private Shared Function GenerateMethodDeclarationWorker(method As IMethodSymbol, 103Private Shared Function GenerateAsClause(method As IMethodSymbol, isSub As Boolean, options As CodeGenerationContextInfo) As SimpleAsClauseSyntax 137Private Overloads Shared Function GenerateTypeParameterList(method As IMethodSymbol) As TypeParameterListSyntax 141Private Shared Function GenerateModifiers(method As IMethodSymbol,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\OperatorGenerator.vb (3)
13method As IMethodSymbol, 24Public Function GenerateOperatorDeclaration(method As IMethodSymbol, 38Private Function GenerateOperatorDeclarationWorker(method As IMethodSymbol,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\PropertyGenerator.vb (3)
120accessor As IMethodSymbol, 147Private Function GenerateAccessorStatements(accessor As IMethodSymbol) As SyntaxList(Of StatementSyntax) 157accessor As IMethodSymbol,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\StatementGenerator.vb (1)
15Friend Function GenerateStatements(method As IMethodSymbol) As SyntaxList(Of StatementSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\VisualBasicCodeGenerationService.vb (2)
134method As IMethodSymbol, 526Public Overrides Function CreateMethodDeclaration(method As IMethodSymbol,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Editing\VisualBasicImportAdder.vb (2)
107Dim method = TryCast(member, IMethodSymbol) 219Dim method = TryCast(_model.GetSymbolInfo(node.Name, cancellationToken).GetAnySymbol(), IMethodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\IMethodSymbolExtensions.vb (1)
14Public Function IsAggregateFunction(symbol As IMethodSymbol) As Boolean
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\VisualBasicSemanticFactsService.vb (1)
134Public Function TryGetDisposeMethod(semanticModel As SemanticModel, node As SyntaxNode, cancellationToken As CancellationToken) As IMethodSymbol Implements ISemanticFactsService.TryGetDisposeMethod
Microsoft.CodeAnalysis.Workspaces (552)
Editing\DeclarationModifiers.cs (3)
69or IMethodSymbol 74var method = symbol as IMethodSymbol;
Editing\SyntaxGenerator.cs (19)
187public SyntaxNode MethodDeclaration(IMethodSymbol method, IEnumerable<SyntaxNode>? statements = null) 190internal SyntaxNode MethodDeclaration(IMethodSymbol method, string name, IEnumerable<SyntaxNode>? statements = null) 241bool HasNullableAnnotation(ITypeParameterSymbol typeParameter, IMethodSymbol method) 279public SyntaxNode OperatorDeclaration(IMethodSymbol method, IEnumerable<SyntaxNode>? statements = null) 330isExtension: symbol is { Ordinal: 0, ContainingSymbol: IMethodSymbol { IsExtensionMethod: true } }, 370var getMethodSymbol = property.GetMethod; 371var setMethodSymbol = property.SetMethod; 528var invoke = symbol.Type.GetMembers("Invoke").FirstOrDefault(m => m.Kind == SymbolKind.Method) as IMethodSymbol; 556IMethodSymbol constructorMethod, 569private protected abstract SyntaxNode DestructorDeclaration(IMethodSymbol destructorMethod); 742var method = (IMethodSymbol)symbol; 799TypeKind.Delegate => type.GetMembers(WellKnownMemberNames.DelegateInvokeName) is [IMethodSymbol invoke, ..] 826using var _ = PooledHashSet<IMethodSymbol>.GetInstance(out var implementationsToHide); 833if (extensionMember is IMethodSymbol { AssociatedExtensionImplementation: { } toShadow }) 850if (member is not IMethodSymbol method || 880var method = (IMethodSymbol)symbol;
FindSymbols\FindReferences\Finders\AbstractMemberScopedReferenceFinder.cs (1)
92if (current is IMethodSymbol)
FindSymbols\FindReferences\Finders\AbstractMethodOrPropertyOrEventSymbolReferenceFinder.cs (2)
15protected static ImmutableArray<IMethodSymbol> GetReferencedAccessorSymbols( 36using var _ = ArrayBuilder<IMethodSymbol>.GetInstance(out var result);
FindSymbols\FindReferences\Finders\AbstractReferenceFinder.cs (2)
475IMethodSymbol symbol, 564var awaitExpressionMethod = state.SemanticFacts.GetGetAwaiterMethod(state.SemanticModel, node);
FindSymbols\FindReferences\Finders\ConstructorSymbolReferenceFinder.cs (16)
17internal sealed class ConstructorSymbolReferenceFinder : AbstractReferenceFinder<IMethodSymbol> 25protected override bool CanFind(IMethodSymbol symbol) 28protected override async ValueTask<ImmutableArray<ISymbol>> DetermineCascadedSymbolsAsync(IMethodSymbol symbol, Solution solution, FindReferencesSearchOptions options, CancellationToken cancellationToken) 36private static ImmutableArray<ISymbol> GetOtherPartsOfPartial(IMethodSymbol symbol) 47protected override Task<ImmutableArray<string>> DetermineGlobalAliasesAsync(IMethodSymbol symbol, Project project, CancellationToken cancellationToken) 54IMethodSymbol symbol, 94private bool IsCollectionConstructor(IMethodSymbol symbol) 98symbol.ContainingType.GetBaseTypesAndThis().Any(t => t.GetMembers(nameof(IList<>.Add)).Any(m => m is IMethodSymbol { IsStatic: false, Parameters.Length: 1 })); 123IMethodSymbol methodSymbol, 162IMethodSymbol methodSymbol, FindReferencesDocumentState state, Action<FinderLocation, TData> processResult, TData processResultData, string name, string alias, CancellationToken cancellationToken) 179IMethodSymbol symbol, 193IMethodSymbol symbol, 205IMethodSymbol symbol, 225IMethodSymbol symbol, 237IMethodSymbol symbol, 298IMethodSymbol symbol,
FindSymbols\FindReferences\Finders\DestructorSymbolReferenceFinder.cs (4)
13internal sealed class DestructorSymbolReferenceFinder : AbstractReferenceFinder<IMethodSymbol> 15protected override bool CanFind(IMethodSymbol symbol) 19IMethodSymbol symbol, 31IMethodSymbol methodSymbol,
FindSymbols\FindReferences\Finders\ExplicitConstructorInitializerSymbolReferenceFinder.cs (1)
60IMethodSymbol methodSymbol,
FindSymbols\FindReferences\Finders\ExplicitConversionSymbolReferenceFinder.cs (4)
17internal sealed partial class ExplicitConversionSymbolReferenceFinder : AbstractMethodOrPropertyOrEventSymbolReferenceFinder<IMethodSymbol> 19protected override bool CanFind(IMethodSymbol symbol) 27IMethodSymbol symbol, 63IMethodSymbol symbol,
FindSymbols\FindReferences\Finders\ExplicitInterfaceMethodReferenceFinder.cs (4)
13internal sealed class ExplicitInterfaceMethodReferenceFinder : AbstractReferenceFinder<IMethodSymbol> 15protected override bool CanFind(IMethodSymbol symbol) 19IMethodSymbol symbol, 32IMethodSymbol symbol,
FindSymbols\FindReferences\Finders\ExplicitOrImplicitConstructorInitializerSymbolReferenceFinder.cs (3)
13internal abstract class ExplicitOrImplicitConstructorInitializerSymbolReferenceFinder : AbstractReferenceFinder<IMethodSymbol> 17protected override bool CanFind(IMethodSymbol symbol) 21IMethodSymbol symbol,
FindSymbols\FindReferences\Finders\ImplicitConstructorInitializerSymbolReferenceFinder.cs (3)
30protected override bool CanFind(IMethodSymbol symbol) 53IMethodSymbol methodSymbol, 69if (state.SemanticModel.GetDeclaredSymbol(constructorNode, cancellationToken) is IMethodSymbol constructor &&
FindSymbols\FindReferences\Finders\MethodTypeParameterSymbolReferenceFinder.cs (3)
32var method = (IMethodSymbol)symbol.ContainingSymbol; 75ContainingSymbol: IMethodSymbol { MethodKind: MethodKind.LocalFunction },
FindSymbols\FindReferences\Finders\OperatorSymbolReferenceFinder.cs (5)
16internal sealed class OperatorSymbolReferenceFinder : AbstractMethodOrPropertyOrEventSymbolReferenceFinder<IMethodSymbol> 18protected override bool CanFind(IMethodSymbol symbol) 22IMethodSymbol symbol, 52IMethodSymbol symbol, 81IMethodSymbol symbol,
FindSymbols\FindReferences\Finders\OrdinaryMethodReferenceFinder.cs (15)
15internal sealed class OrdinaryMethodReferenceFinder : AbstractMethodOrPropertyOrEventSymbolReferenceFinder<IMethodSymbol> 23protected override bool CanFind(IMethodSymbol symbol) 31IMethodSymbol symbol, 49if (symbol.TryGetCorrespondingExtensionBlockMethod() is IMethodSymbol method) 55private static ImmutableArray<ISymbol> GetOtherPartsOfPartial(IMethodSymbol symbol) 68IMethodSymbol methodSymbol, 122private static bool IsForEachMethod(IMethodSymbol methodSymbol) 126private static bool IsDeconstructMethod(IMethodSymbol methodSymbol) 129private static bool IsGetAwaiterMethod(IMethodSymbol methodSymbol) 132private static bool IsAddMethod(IMethodSymbol methodSymbol) 135private static bool IsDisposeMethod(IMethodSymbol methodSymbol) 138private static bool IsCollectionBuilderFactoryMethod(IMethodSymbol methodSymbol) 163IMethodSymbol symbol, 196IMethodSymbol symbol, 211var disposeMethod = state.SemanticFacts.TryGetDisposeMethod(state.SemanticModel, node, cancellationToken);
FindSymbols\FindReferences\Finders\ParameterSymbolReferenceFinder.cs (11)
76if (parameter.ContainingSymbol is IMethodSymbol { AssociatedAnonymousDelegate.DelegateInvokeMethod: { } invokeMethod } && 146ParameterNamesMatch(syntaxFacts, (IMethodSymbol)parameter.ContainingSymbol, (IMethodSymbol)symbol.ContainingSymbol)) 158private static bool ParameterNamesMatch(ISyntaxFactsService syntaxFacts, IMethodSymbol methodSymbol1, IMethodSymbol methodSymbol2) 175if (declaredSymbol is IMethodSymbol { MethodKind: not MethodKind.AnonymousFunction }) 188if (containingSymbol is IMethodSymbol containingMethod) 208if (parameter.ContainingSymbol is IMethodSymbol containingMethod) 216var beginInvokeMethod = containingType.GetMembers(WellKnownMemberNames.DelegateBeginInvokeName) 217.OfType<IMethodSymbol>() 245if (parameter.ContainingSymbol is IMethodSymbol method)
FindSymbols\FindReferences\Finders\PropertyAccessorSymbolReferenceFinder.cs (5)
15internal sealed class PropertyAccessorSymbolReferenceFinder : AbstractMethodOrPropertyOrEventSymbolReferenceFinder<IMethodSymbol> 17protected override bool CanFind(IMethodSymbol symbol) 21IMethodSymbol symbol, 40IMethodSymbol symbol, 71IMethodSymbol symbol,
FindSymbols\FindReferences\Finders\PropertySymbolReferenceFinder.cs (1)
85foreach (var constructor in containingType.Constructors)
FindSymbols\FindReferences\FindReferencesSearchEngine.cs (1)
369=> symbol is IMethodSymbol or IPropertySymbol or IEventSymbol;
FindSymbols\ReferenceLocationExtensions.cs (1)
92if (current is IMethodSymbol method)
FindSymbols\SymbolFinder_Hierarchy.cs (2)
123if (symbol is IMethodSymbol or IPropertySymbol or IEventSymbol) 159? ((IMethodSymbol)symbol).AssociatedSymbol?.Name
ReassignedVariable\AbstractReassignedVariableService.cs (2)
184if (methodOrProperty is IMethodSymbol { MethodKind: MethodKind.PropertyGet or MethodKind.PropertySet } method) 187if (methodOrProperty is not IMethodSymbol and not IPropertySymbol)
Recommendations\AbstractRecommendationService.cs (1)
84switch (((IMethodSymbol)symbol).MethodKind)
Recommendations\AbstractRecommendationServiceRunner.cs (4)
68if (parameter.ContainingSymbol is not IMethodSymbol { MethodKind: MethodKind.AnonymousFunction } owningMethod) 197if (candidateSymbol is IMethodSymbol method) 237private bool TryGetMatchingParameterTypeForArgument(IMethodSymbol method, string argumentName, int ordinalInInvocation, out ITypeSymbol parameterType) 424if (originalMember is IMethodSymbol { Parameters: [{ Type: ITypeParameterSymbol parameterType }, ..] })
Rename\ConflictEngine\ConflictResolver.cs (2)
247.Where(s => s is not IMethodSymbol and not IPropertySymbol || 248renamedSymbol is not IMethodSymbol and not IPropertySymbol);
Rename\ConflictEngine\DeclarationConflictHelpers.cs (5)
15public static ImmutableArray<Location> GetMembersWithConflictingSignatures(IMethodSymbol renamedMethod, bool trimOptionalParameters, bool distinguishRefKind) 19.OfType<IMethodSymbol>() 23method => GetAllSignatures(((IMethodSymbol)method).Parameters, trimOptionalParameters, distinguishRefKind)); 61if (isMethod && conflictingSymbol is IMethodSymbol conflictingMethod && renamedMember is IMethodSymbol renamedMethod)
Rename\RenameUtilities.cs (6)
232if (symbol is IMethodSymbol) 239if (string.Equals(member.MetadataName, symbol.MetadataName, StringComparison.Ordinal) && member is IMethodSymbol && !member.Equals(symbol)) 252return ((IMethodSymbol)symbol).AssociatedSymbol; 353if (symbol is IMethodSymbol { MethodKind: MethodKind.Conversion } && 383if (symbol is IParameterSymbol { ContainingSymbol: IMethodSymbol { AssociatedSymbol: IPropertySymbol associatedParameterProperty } containingMethod }) 395if (symbol is IMethodSymbol { MethodKind: MethodKind.Constructor or MethodKind.StaticConstructor or MethodKind.Destructor })
Rename\SymbolicRenameLocations.ReferenceProcessing.cs (3)
206foreach (var method in namedType.GetMembers().OfType<IMethodSymbol>()) 297var referencedSymbolName = referencedSymbol is IMethodSymbol { MethodKind: MethodKind.Constructor } constructorSymbol
Shared\Extensions\IMethodSymbolExtensions.cs (4)
15public static bool CompatibleSignatureToDelegate(this IMethodSymbol method, INamedTypeSymbol delegateType) 19var invoke = delegateType.DelegateInvokeMethod; 53public static bool? IsMoreSpecificThan(this IMethodSymbol method1, IMethodSymbol method2)
Shared\Extensions\ISymbolExtensions_2.cs (1)
15if (symbol.ContainingSymbol is IMethodSymbol method)
Shared\Extensions\ISymbolExtensions.cs (9)
128ImmutableArray<AttributeData> attributes, bool hideAdvancedMembers, IMethodSymbol? constructor) 151ImmutableArray<AttributeData> attributes, ImmutableArray<IMethodSymbol> constructors) 160ImmutableArray<AttributeData> attributes, ImmutableArray<IMethodSymbol> constructors) 169ImmutableArray<AttributeData> attributes, ImmutableArray<IMethodSymbol> constructors) 182ImmutableArray<AttributeData> attributes, ImmutableArray<IMethodSymbol> attributeConstructors, int hiddenFlag) 188foreach (var constructor in attributeConstructors) 472if (memberSymbol is IMethodSymbol methodSymbol) 509static bool IsSameSignature(IMethodSymbol left, IMethodSymbol right)
Shared\Extensions\ITypeSymbolExtensions.cs (1)
131IMethodSymbol methodSymbol => typeSymbol.FindImplementations(methodSymbol, services),
Shared\Extensions\SemanticModelExtensions.cs (4)
36symbol.ContainingSymbol is IMethodSymbol method) 52if (symbol is IMethodSymbol methodSymbol && 61var mapped = containingType.GetMembers(methodSymbol.Name) 62.OfType<IMethodSymbol>()
Shared\Extensions\SyntaxGeneratorExtensions.cs (7)
18public static IMethodSymbol CreateBaseDelegatingConstructor( 20IMethodSymbol constructor, 141IMethodSymbol? accessorGet = null; 152IMethodSymbol? accessorSet = null; 203if (symbol is IMethodSymbol method) 229private static async Task<IMethodSymbol> OverrideMethodAsync( 231IMethodSymbol overriddenMethod,
Shared\Utilities\EditorBrowsableHelpers.cs (9)
18public IMethodSymbol? EditorBrowsableAttributeConstructor { get; } = GetSpecialEditorBrowsableAttributeConstructor(compilation); 19public ImmutableArray<IMethodSymbol> TypeLibTypeAttributeConstructors { get; } = GetSpecialTypeLibTypeAttributeConstructors(compilation); 20public ImmutableArray<IMethodSymbol> TypeLibFuncAttributeConstructors { get; } = GetSpecialTypeLibFuncAttributeConstructors(compilation); 21public ImmutableArray<IMethodSymbol> TypeLibVarAttributeConstructors { get; } = GetSpecialTypeLibVarAttributeConstructors(compilation); 32public static IMethodSymbol? GetSpecialEditorBrowsableAttributeConstructor(Compilation compilation) 62public static ImmutableArray<IMethodSymbol> GetSpecialTypeLibTypeAttributeConstructors(Compilation compilation) 70public static ImmutableArray<IMethodSymbol> GetSpecialTypeLibFuncAttributeConstructors(Compilation compilation) 78public static ImmutableArray<IMethodSymbol> GetSpecialTypeLibVarAttributeConstructors(Compilation compilation) 93private static ImmutableArray<IMethodSymbol> GetSpecialTypeLibAttributeConstructorsWorker(
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.cs (2)
30IMethodSymbol lambdaOrLocalFunction, 52IMethodSymbol localFunctionOrLambda,
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (12)
36private readonly Func<IMethodSymbol, ControlFlowGraph, AnalysisData, CancellationToken, BasicBlockAnalysisData> _analyzeLocalFunctionOrLambdaInvocation; 55private readonly PooledDictionary<IMethodSymbol, ControlFlowGraph> _localFunctionTargetsToAccessingCfgMap; 79PooledHashSet<IMethodSymbol> lambdaOrLocalFunctionsBeingAnalyzed, 80Func<IMethodSymbol, ControlFlowGraph, AnalysisData, CancellationToken, BasicBlockAnalysisData> analyzeLocalFunctionOrLambdaInvocation, 82PooledDictionary<IMethodSymbol, ControlFlowGraph> localFunctionTargetsToAccessingCfgMap, 112protected override PooledHashSet<IMethodSymbol> LambdaOrLocalFunctionsBeingAnalyzed { get; } 119Func<IMethodSymbol, ControlFlowGraph, AnalysisData, CancellationToken, BasicBlockAnalysisData> analyzeLocalFunctionOrLambdaInvocation) 133lambdaOrLocalFunctionsBeingAnalyzed: PooledHashSet<IMethodSymbol>.GetInstance(), 136localFunctionTargetsToAccessingCfgMap: PooledDictionary<IMethodSymbol, ControlFlowGraph>.GetInstance(), 157IMethodSymbol lambdaOrLocalFunction, 336ControlFlowGraph TryGetLocalFunctionControlFlowGraphInScope(IMethodSymbol localFunction) 501protected override BasicBlockAnalysisData AnalyzeLocalFunctionInvocationCore(IMethodSymbol localFunction, CancellationToken cancellationToken)
src\b310f676f7308b7f\SymbolUsageAnalysis.OperationTreeAnalysisData.cs (7)
18private readonly Func<IMethodSymbol, BasicBlockAnalysisData> _analyzeLocalFunction; 23PooledHashSet<IMethodSymbol> lambdaOrLocalFunctionsBeingAnalyzed, 24Func<IMethodSymbol, BasicBlockAnalysisData> analyzeLocalFunction) 36protected override PooledHashSet<IMethodSymbol> LambdaOrLocalFunctionsBeingAnalyzed { get; } 40Func<IMethodSymbol, BasicBlockAnalysisData> analyzeLocalFunction) 45lambdaOrLocalFunctionsBeingAnalyzed: PooledHashSet<IMethodSymbol>.GetInstance(), 49protected override BasicBlockAnalysisData AnalyzeLocalFunctionInvocationCore(IMethodSymbol localFunction, CancellationToken cancellationToken)
src\ce8c1e82c1124a2b\AbstractInitializerParameterService.cs (1)
24protected abstract SyntaxNode? GetAccessorBody(IMethodSymbol accessor, CancellationToken cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\CollectionExpressionUtilities.cs (9)
98var capacityConstructor = GetAccessibleInstanceConstructor(constructors, c => c.Parameters is [{ Name: "capacity", Type.SpecialType: SpecialType.System_Int32 }]); 102var noArgConstructor = 122IMethodSymbol? GetAccessibleInstanceConstructor(ImmutableArray<IMethodSymbol> constructors, Func<IMethodSymbol, bool> predicate) 124var constructor = constructors.FirstOrDefault(c => !c.IsStatic && predicate(c)); 136/// <item>their <see cref="IMethodSymbol.Arity"/> must match that of <paramref 145public static ImmutableArray<IMethodSymbol>? TryGetCollectionBuilderFactoryMethods( 164.OfType<IMethodSymbol>()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (3)
235var containingMethod = TryGetContainingAnonymousFunctionOrLocalFunction(operation) ?? (containingSymbol as IMethodSymbol); 239public static IMethodSymbol? TryGetContainingAnonymousFunctionOrLocalFunction(this IOperation? operation)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.AnalysisData.cs (3)
72protected abstract PooledHashSet<IMethodSymbol> LambdaOrLocalFunctionsBeingAnalyzed { get; } 91public BasicBlockAnalysisData AnalyzeLocalFunctionInvocation(IMethodSymbol localFunction, CancellationToken cancellationToken) 126protected abstract BasicBlockAnalysisData AnalyzeLocalFunctionInvocationCore(IMethodSymbol localFunction, CancellationToken cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.cs (1)
44BasicBlockAnalysisData AnalyzeLocalFunction(IMethodSymbol localFunction)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (1)
344private void AnalyzeLocalFunctionInvocation(IMethodSymbol localFunction)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (1)
44if (symbol is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (3)
167switch (((IMethodSymbol)currentSymbol).MethodKind) 363SymbolCategory.Method => symbol is IMethodSymbol method && method.MethodKind == (MethodKind)_kind, 507if (Modifiers.HasFlag(Modifiers.Async) && kind == SymbolKind.Method && ((IMethodSymbol)symbol).IsAsync)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ForEachSymbols.cs (6)
8IMethodSymbol? getEnumeratorMethod, 9IMethodSymbol? moveNextMethod, 11IMethodSymbol? disposeMethod, 14public readonly IMethodSymbol? GetEnumeratorMethod = getEnumeratorMethod; 15public readonly IMethodSymbol? MoveNextMethod = moveNextMethod; 17public readonly IMethodSymbol? DisposeMethod = disposeMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (5)
83IMethodSymbol? GetGetAwaiterMethod(SemanticModel semanticModel, SyntaxNode node); 85ImmutableArray<IMethodSymbol> GetDeconstructionAssignmentMethods(SemanticModel semanticModel, SyntaxNode node); 87ImmutableArray<IMethodSymbol> GetDeconstructionForEachMethods(SemanticModel semanticModel, SyntaxNode node); 106ImmutableArray<IMethodSymbol> GetLocalFunctionSymbols(Compilation compilation, ISymbol symbol, CancellationToken cancellationToken); 123bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFactsExtensions.cs (1)
112=> symbol is IMethodSymbol methodSymbol &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
63if (isAnonymousDelegateType && symbol is IMethodSymbol methodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.BuiltinOperatorSymbolKey.cs (6)
11private sealed class BuiltinOperatorSymbolKey : AbstractSymbolKey<IMethodSymbol> 15public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 23SymbolKeyReader reader, IMethodSymbol? contextualSymbol, out string? failureReason) 28using var parameterTypes = reader.ReadSymbolKeyArray<IMethodSymbol, ITypeSymbol>( 54var unaryOperator = reader.Compilation.CreateBuiltinOperator(name, returnTypeSymbol, parameterTypes[0]); 58var binaryOperator = reader.Compilation.CreateBuiltinOperator(name, returnTypeSymbol, parameterTypes[0], parameterTypes[1]);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (5)
33/// <item>Two <see cref="IMethodSymbol"/>s are the "same" if they have 36/// equal <see cref="IMethodSymbol.Arity"/>, 37/// the "same" <see cref="IMethodSymbol.TypeArguments"/>, and have 76/// cref="IRangeVariableSymbol"/> and <see cref="MethodKind.LocalFunction"/> <see cref="IMethodSymbol"/>s can also 323IMethodSymbol { MethodKind: MethodKind.LocalFunction } => true,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.MethodSymbolKey.cs (22)
11private sealed class ReducedExtensionMethodSymbolKey : AbstractSymbolKey<IMethodSymbol> 15public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 24SymbolKeyReader reader, IMethodSymbol? contextualMethod, out string? failureReason) 41using var result = PooledArrayBuilder<IMethodSymbol>.GetInstance(); 42foreach (var reducedFrom in reducedFromResolution.OfType<IMethodSymbol>()) 55private sealed class ConstructedMethodSymbolKey : AbstractSymbolKey<IMethodSymbol> 59public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 66SymbolKeyReader reader, IMethodSymbol? contextualMethod, out string? failureReason) 70using var typeArguments = reader.ReadSymbolKeyArray<IMethodSymbol, ITypeSymbol>( 101using var result = PooledArrayBuilder<IMethodSymbol>.GetInstance(); 102foreach (var method in constructedFrom.OfType<IMethodSymbol>()) 123private sealed class MethodSymbolKey : AbstractSymbolKey<IMethodSymbol> 127public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 160SymbolKeyReader reader, IMethodSymbol? contextualSymbol, out string? failureReason) 179using var methods = GetMembersOfNamedType<IMethodSymbol>(containingType, metadataName: null); 180IMethodSymbol? method = null; 181foreach (var candidate in methods) 223_ = reader.ReadSymbolKeyArray<IMethodSymbol, ITypeSymbol>( 243private static IMethodSymbol? Resolve( 244SymbolKeyReader reader, bool isPartialImplementationPart, IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (2)
45case IMethodSymbol method: 64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyReader.cs (5)
331private readonly List<IMethodSymbol?> _methodSymbolStack = []; 409public MethodPopper PushMethod(IMethodSymbol? method) 415private void PopMethod(IMethodSymbol? method) 422public IMethodSymbol? ResolveMethod(int index) 441public readonly ref struct MethodPopper(SymbolKeyReader reader, IMethodSymbol? method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyWriter.cs (5)
69private readonly List<IMethodSymbol> _methodSymbolStack = []; 362public override void VisitMethod(IMethodSymbol methodSymbol) 499var method = _methodSymbolStack[i]; 512public void PushMethod(IMethodSymbol method) 515public void PopMethod(IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.TypeParameterOrdinalSymbolKey.cs (1)
22var method = reader.ResolveMethod(methodIndex);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (14)
112SemanticModel model, TForEachStatementSyntax forEach, out IMethodSymbol getEnumeratorMethod, out ITypeSymbol elementType, out ImmutableArray<ILocalSymbol> localVariables); 379symbol = ((IMethodSymbol)symbol).GetConstructedReducedFrom()!; 384newSymbol = ((IMethodSymbol)newSymbol).GetConstructedReducedFrom()!; 404if (symbol is IMethodSymbol methodSymbol && newSymbol is IMethodSymbol newMethodSymbol) 478if (symbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction } methodSymbol && 479newSymbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction } newMethodSymbol) 757return symbol is IMethodSymbol { ContainingType.SpecialType: SpecialType.System_Object } 778GetForEachSymbols(this.OriginalSemanticModel, forEachStatement, out var originalGetEnumerator, out var originalElementType, out var originalLocalVariables); 779GetForEachSymbols(this.SpeculativeSemanticModel, newForEachStatement, out var newGetEnumerator, out var newElementType, out var newLocalVariables); 806private bool ReplacementBreaksForEachGetEnumerator(IMethodSymbol getEnumerator, IMethodSymbol newGetEnumerator, TExpressionSyntax newForEachStatementExpression) 875=> symbol is IMethodSymbol { MethodKind: MethodKind.DelegateInvoke }; 1048return receiverSymbol is IMethodSymbol or IPropertySymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\LightweightOverloadResolution.cs (12)
31public IMethodSymbol? RefineOverload(SymbolInfo symbolInfo, ImmutableArray<IMethodSymbol> candidates) 34public (IMethodSymbol? method, int parameterIndex) RefineOverloadAndPickParameter(SymbolInfo symbolInfo, ImmutableArray<IMethodSymbol> candidates) 38return symbolInfo.Symbol is IMethodSymbol method 43public int FindParameterIndexIfCompatibleMethod(IMethodSymbol method) 52private (IMethodSymbol? symbol, int parameterIndex) GuessCurrentSymbolAndParameter(ImmutableArray<IMethodSymbol> methodGroup) 56foreach (var method in methodGroup) 73private (IMethodSymbol? method, int parameterIndex) TryFindParameterIndexIfCompatibleMethod(IMethodSymbol method) 185private bool TryPrepareArgumentToParameterMap(IMethodSymbol method, ref TemporaryArray<int> argumentToParameterMap)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (2)
371public static IMethodSymbol? GetTopLevelStatementsMethod(this Compilation compilation) 377if (candidateMember is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (11)
19internal static IMethodSymbol? TryGetCorrespondingExtensionBlockMethod(this IMethodSymbol methodSymbol) 33if (member is IMethodSymbol method && 49public static ImmutableArray<IMethodSymbol> GetAllMethodSymbolsOfPartialParts(this IMethodSymbol method) 72public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 77public static bool TryGetPredefinedComparisonOperator(this IMethodSymbol symbol, out PredefinedOperator op) 101public static PredefinedOperator GetPredefinedOperator(this IMethodSymbol symbol) 131public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 142public static bool IsAsyncReturningVoidTask(this IMethodSymbol method, Compilation compilation) 160public static bool IsPrimaryConstructor(this IMethodSymbol constructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (9)
136static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 184IMethodSymbol method => method.ExplicitInterfaceImplementations.Length > 0, 235static bool IsNonPublicImplementableAccessor(IMethodSymbol? accessor) 242if (member is IMethodSymbol { IsStatic: true, IsAbstract: true, MethodKind: MethodKind.UserDefinedOperator } method) 335private static bool IsInaccessibleImplementableAccessor(IMethodSymbol? accessor, ISymbol within) 439case IMethodSymbol method: 651IMethodSymbol { MethodKind: MethodKind.Ordinary, CanBeReferencedByName: true } => true, 652IMethodSymbol { MethodKind: MethodKind.UserDefinedOperator } => true, 671return member is IMethodSymbol
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IParameterSymbolExtensions.cs (2)
31ContainingSymbol: IMethodSymbol 63ContainingSymbol: IMethodSymbol
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions_Accessibility.cs (2)
107var funcPtrSignature = ((IFunctionPointerTypeSymbol)symbol).Signature; 156if (symbol is IMethodSymbol { MethodKind: MethodKind.BuiltinOperator })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (43)
87IMethodSymbol method => method.OverriddenMethod, 110IMethodSymbol? bestMethod = null; 128else if (member is IMethodSymbol method) 145IMethodSymbol method => ImmutableArray<ISymbol>.CastUp(method.ExplicitInterfaceImplementations), 199if (symbol is IMethodSymbol 241=> symbol is IMethodSymbol { MethodKind: MethodKind.AnonymousFunction }; 268=> symbol is IMethodSymbol { MethodKind: MethodKind.ReducedExtension }; 273/// <inheritdoc cref="IMethodSymbol.IsExtensionMethod"/> 275=> symbol is IMethodSymbol { IsExtensionMethod: true }; 278=> symbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction }; 287=> symbol is IMethodSymbol { MethodKind: MethodKind.Constructor }; 290=> symbol is IMethodSymbol { MethodKind: MethodKind.StaticConstructor }; 293=> symbol is IMethodSymbol { MethodKind: MethodKind.Destructor }; 296=> symbol is IMethodSymbol { MethodKind: MethodKind.UserDefinedOperator }; 299=> symbol is IMethodSymbol { MethodKind: MethodKind.Conversion }; 302=> symbol is IMethodSymbol { MethodKind: MethodKind.Ordinary }; 305=> symbol is IMethodSymbol { MethodKind: MethodKind.Ordinary or MethodKind.LocalFunction }; 344IMethodSymbol methodSymbol => methodSymbol.ReturnType, 355SymbolKind.Method => ((IMethodSymbol)symbol).Arity, 370symbol = ((IMethodSymbol)symbol).GetConstructedReducedFrom(); 375if (symbol.ContainingSymbol is IMethodSymbol method) 393var method = parameter.ContainingSymbol as IMethodSymbol; 426IMethodSymbol m => m.Parameters, 434IMethodSymbol m => m.TypeParameters, 455IMethodSymbol m => m.TypeArguments, 500if (symbol is IMethodSymbol method && method.Parameters.All(p => p.RefKind == RefKind.None)) 656=> (symbol as IMethodSymbol)?.MethodKind.IsPropertyAccessor() == true; 659=> symbol is IMethodSymbol { MethodKind: MethodKind.EventAdd or MethodKind.EventRaise or MethodKind.EventRemove }; 685var methodSymbol = symbol as IMethodSymbol; 709var getAwaiters = potentialGetAwaiters.OfType<IMethodSymbol>().Where(x => !x.Parameters.Any()); 713public static bool IsValidGetAwaiter(this IMethodSymbol symbol) 717private static bool VerifyGetAwaiter(IMethodSymbol getAwaiter) 731var methods = returnType.GetMembers().OfType<IMethodSymbol>(); 747public static bool IsValidGetEnumerator(this IMethodSymbol symbol) 751private static bool VerifyGetEnumerator(IMethodSymbol getEnumerator) 771if (!members.OfType<IMethodSymbol>().Any(x => 787public static bool IsValidGetAsyncEnumerator(this IMethodSymbol symbol) 791private static bool VerifyGetAsyncEnumerator(IMethodSymbol getAsyncEnumerator) 814if (!members.OfType<IMethodSymbol>().Any(x => x.Name == WellKnownMemberNames.MoveNextAsyncMethodName)) 896[NotNullWhen(true)] out IMethodSymbol? classicExtensionMethod) 898if (symbol is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
108public override bool VisitMethod(IMethodSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.cs (2)
412.SelectAccessibleMembers<IMethodSymbol>(WellKnownMemberNames.CollectionInitializerAddMethodName, within ?? typeSymbol) 413.OfType<IMethodSymbol>()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SignatureComparer.cs (12)
43SymbolKind.Method => HaveSameSignature((IMethodSymbol)symbol1, (IMethodSymbol)symbol2, caseSensitive), 67public static bool BadPropertyAccessor(IMethodSymbol? method1, IMethodSymbol? method2) 73public bool HaveSameSignature(IMethodSymbol method1, 74IMethodSymbol method2, 162var method1 = (IMethodSymbol)symbol1; 163var method2 = (IMethodSymbol)symbol2; 208private bool HaveSameSignatureAndConstraintsAndReturnType(IMethodSymbol method1, IMethodSymbol method2)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (6)
149public bool ReturnTypeEquals(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 194private static bool IsConstructedFromSelf(IMethodSymbol symbol) 200private static bool CheckContainingType(IMethodSymbol x) 231private static bool IsPartialMethodDefinitionPart(IMethodSymbol symbol) 234private static bool IsPartialMethodImplementationPart(IMethodSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (8)
124SymbolKind.Method => MethodsAreEquivalent((IMethodSymbol)x, (IMethodSymbol)y, equivalentTypesWithDifferingAssemblies), 170private bool MethodsAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, bool considerReturnRefKinds = false) 186var rx = x.ReducedFrom; 187var ry = y.ReducedFrom; 486internal bool ReturnTypesAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (2)
68SymbolKind.Method => CombineHashCodes((IMethodSymbol)x, currentHash), 112private int CombineHashCodes(IMethodSymbol x, int currentHash)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractCodeGenerationService.cs (7)
53public TDeclarationNode AddMethod<TDeclarationNode>(TDeclarationNode destination, IMethodSymbol method, CodeGenerationContextInfo info, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode 82public SyntaxNode? CreateMethodDeclaration(IMethodSymbol method, CodeGenerationDestination destination, CodeGenerationContextInfo info, CancellationToken cancellationToken) 125protected abstract TDeclarationNode AddMethod<TDeclarationNode>(TDeclarationNode destination, IMethodSymbol method, TCodeGenerationContextInfo info, IList<bool>? availableIndices, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode; 147public abstract SyntaxNode? CreateMethodDeclaration(IMethodSymbol method, CodeGenerationDestination destination, TCodeGenerationContextInfo info, CancellationToken cancellationToken); 348IMethodSymbol method => CreateMethodDeclaration(method, codeGenerationDestination, info, cancellationToken), 366IMethodSymbol method => AddMethod(currentDestination, method, info, availableIndices, cancellationToken), 446public Task<Document> AddMethodAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractFlagsEnumGenerator.cs (1)
44var ctor = attribute.AttributeConstructor;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationSymbolFactory.cs (28)
33IMethodSymbol? addMethod = null, 34IMethodSymbol? removeMethod = null, 35IMethodSymbol? raiseMethod = null) 52IMethodSymbol? getMethod, 53IMethodSymbol? setMethod, 80ImmutableArray<IParameterSymbol> parameters, IMethodSymbol? getMethod, IMethodSymbol? setMethod, 119public static IMethodSymbol CreateConstructorSymbol( 138public static IMethodSymbol CreateDestructorSymbol( 147internal static IMethodSymbol CreateMethodSymbol( 154ImmutableArray<IMethodSymbol> explicitInterfaceImplementations, 172public static IMethodSymbol CreateMethodSymbol( 176ImmutableArray<IMethodSymbol> explicitInterfaceImplementations, 191public static IMethodSymbol CreateOperatorSymbol( 219public static IMethodSymbol CreateConversionSymbol( 244public static IMethodSymbol CreateConversionSymbol( 356internal static IMethodSymbol CreateAccessorSymbol( 357IMethodSymbol accessor, 360ImmutableArray<IMethodSymbol> explicitInterfaceImplementations = default, 382public static IMethodSymbol CreateAccessorSymbol( 470var invokeMethod = CreateMethodSymbol( 510internal static IMethodSymbol CreateMethodSymbol( 511IMethodSymbol method, 515ImmutableArray<IMethodSymbol> explicitInterfaceImplementations = default, 549IMethodSymbol? getMethod = null, 550IMethodSymbol? setMethod = null, 575IMethodSymbol? addMethod = null, 576IMethodSymbol? removeMethod = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerator.cs (1)
44public static Task<Document> AddMethodDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\ICodeGenerationService.cs (3)
33SyntaxNode? CreateMethodDeclaration(IMethodSymbol method, CodeGenerationDestination destination, CodeGenerationContextInfo info, CancellationToken cancellationToken); 63TDeclarationNode AddMethod<TDeclarationNode>(TDeclarationNode destination, IMethodSymbol method, CodeGenerationContextInfo info, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode; 143Task<Document> AddMethodAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractMethodSymbol.cs (12)
15public new IMethodSymbol OriginalDefinition { get; protected set; } 45public abstract IMethodSymbol ConstructedFrom { get; } 48public abstract IMethodSymbol OverriddenMethod { get; } 49public abstract IMethodSymbol ReducedFrom { get; } 51public abstract IMethodSymbol ReduceExtensionMethod(ITypeSymbol receiverType); 52public abstract ImmutableArray<IMethodSymbol> ExplicitInterfaceImplementations { get; } 53public abstract IMethodSymbol PartialDefinitionPart { get; } 54public abstract IMethodSymbol PartialImplementationPart { get; } 105public IMethodSymbol AssociatedExtensionImplementation => null; 112public IMethodSymbol Construct(params ITypeSymbol[] typeArguments) 115public IMethodSymbol Construct(ImmutableArray<ITypeSymbol> typeArguments, ImmutableArray<CodeAnalysis.NullableAnnotation> typeArgumentNullableAnnotations) 121public IMethodSymbol ReduceExtensionMember(ITypeSymbol receiverType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractNamedTypeSymbol.cs (4)
76public abstract IMethodSymbol DelegateInvokeMethod { get; } 81public abstract ImmutableArray<IMethodSymbol> InstanceConstructors { get; } 82public abstract ImmutableArray<IMethodSymbol> StaticConstructors { get; } 83public abstract ImmutableArray<IMethodSymbol> Constructors { get; }
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAttributeData.cs (1)
21protected override IMethodSymbol CommonAttributeConstructor => null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructedMethodSymbol.cs (7)
69public override IMethodSymbol ConstructedFrom => _constructedFrom; 76public override IMethodSymbol OverriddenMethod 80public override IMethodSymbol ReducedFrom 87public override IMethodSymbol ReduceExtensionMethod(ITypeSymbol receiverType) 93public override ImmutableArray<IMethodSymbol> ExplicitInterfaceImplementations 97public override IMethodSymbol PartialDefinitionPart 101public override IMethodSymbol PartialImplementationPart
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructedNamedTypeSymbol.cs (4)
47public override IMethodSymbol DelegateInvokeMethod 60public override ImmutableArray<IMethodSymbol> InstanceConstructors 69public override ImmutableArray<IMethodSymbol> StaticConstructors 78public override ImmutableArray<IMethodSymbol> Constructors
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructorInfo.cs (10)
12private static readonly ConditionalWeakTable<IMethodSymbol, CodeGenerationConstructorInfo> s_constructorToInfoMap = new(); 38IMethodSymbol constructor, 50private static CodeGenerationConstructorInfo? GetInfo(IMethodSymbol method) 56public static ImmutableArray<SyntaxNode> GetThisConstructorArgumentsOpt(IMethodSymbol constructor) 59public static ImmutableArray<SyntaxNode> GetBaseConstructorArgumentsOpt(IMethodSymbol constructor) 62public static ImmutableArray<SyntaxNode> GetStatements(IMethodSymbol constructor) 65public static string GetTypeName(IMethodSymbol constructor) 68public static bool GetIsUnsafe(IMethodSymbol constructor) 71public static bool GetIsPrimaryConstructor(IMethodSymbol constructor) 83private static string GetTypeName(CodeGenerationConstructorInfo? info, IMethodSymbol constructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationDestructorInfo.cs (6)
14private static readonly ConditionalWeakTable<IMethodSymbol, CodeGenerationDestructorInfo> s_destructorToInfoMap = new(); 28IMethodSymbol destructor, 36private static CodeGenerationDestructorInfo GetInfo(IMethodSymbol method) 42public static ImmutableArray<SyntaxNode> GetStatements(IMethodSymbol destructor) 45public static string GetTypeName(IMethodSymbol destructor) 51private static string GetTypeName(CodeGenerationDestructorInfo info, IMethodSymbol constructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationEventSymbol.cs (6)
19IMethodSymbol? addMethod, 20IMethodSymbol? removeMethod, 21IMethodSymbol? raiseMethod) : CodeGenerationSymbol(containingType?.ContainingAssembly, containingType, attributes, declaredAccessibility, modifiers, name), IEventSymbol 28public IMethodSymbol? AddMethod { get; } = addMethod; 29public IMethodSymbol? RemoveMethod { get; } = removeMethod; 30public IMethodSymbol? RaiseMethod { get; } = raiseMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationMethodInfo.cs (9)
14private static readonly ConditionalWeakTable<IMethodSymbol, CodeGenerationMethodInfo> s_methodToInfoMap = new(); 40IMethodSymbol method, 52private static CodeGenerationMethodInfo GetInfo(IMethodSymbol method) 58public static ImmutableArray<SyntaxNode> GetStatements(IMethodSymbol method) 61public static ImmutableArray<SyntaxNode> GetHandlesExpressions(IMethodSymbol method) 64public static bool GetIsNew(IMethodSymbol method) 67public static bool GetIsUnsafe(IMethodSymbol method) 70public static bool GetIsPartial(IMethodSymbol method) 73public static bool GetIsAsyncMethod(IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationMethodSymbol.cs (8)
19public override ImmutableArray<IMethodSymbol> ExplicitInterfaceImplementations { get; } 29ImmutableArray<IMethodSymbol> explicitInterfaceImplementations, 98public override IMethodSymbol ConstructedFrom => this; 105public override IMethodSymbol OverriddenMethod => null; 107public override IMethodSymbol ReducedFrom => null; 112public override IMethodSymbol ReduceExtensionMethod(ITypeSymbol receiverType) 115public override IMethodSymbol PartialImplementationPart => null; 117public override IMethodSymbol PartialDefinitionPart => null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamedTypeSymbol.cs (7)
91public override IMethodSymbol DelegateInvokeMethod 96? this.GetMembers(WellKnownMemberNames.DelegateInvokeName).OfType<IMethodSymbol>().FirstOrDefault() 163public override ImmutableArray<IMethodSymbol> InstanceConstructors 168return [.. this.GetMembers().OfType<IMethodSymbol>().Where(m => m.MethodKind == MethodKind.Constructor && !m.IsStatic)]; 172public override ImmutableArray<IMethodSymbol> StaticConstructors 177return [.. this.GetMembers().OfType<IMethodSymbol>().Where(m => m.MethodKind == MethodKind.StaticConstructor && m.IsStatic)]; 181public override ImmutableArray<IMethodSymbol> Constructors
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationPropertySymbol.cs (4)
23IMethodSymbol getMethod, 24IMethodSymbol setMethod) : CodeGenerationSymbol(containingType?.ContainingAssembly, containingType, attributes, declaredAccessibility, modifiers, name), IPropertySymbol 33public IMethodSymbol GetMethod { get; } = getMethod; 34public IMethodSymbol SetMethod { get; } = setMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationSymbol.cs (2)
81public static IMethodSymbol ContainingMethod => null; 165public ImmutableArray<AttributeData> GetAttributes(IMethodSymbol attributeConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (2)
72public IMethodSymbol DeclaringMethod 76return this.ContainingSymbol as IMethodSymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\IMethodSymbolExtensions.cs (9)
18public static IMethodSymbol EnsureNonConflictingNames( 19this IMethodSymbol method, INamedTypeSymbol containingType, ISyntaxFactsService syntaxFacts) 39var updatedMethod = method.RenameTypeParameters(newTypeParameterNames); 43public static IMethodSymbol RenameTypeParameters(this IMethodSymbol method, ImmutableArray<string> newNames) 75public static IMethodSymbol RenameParameters( 76this IMethodSymbol method, ImmutableArray<string> parameterNames) 141public static IMethodSymbol RemoveInaccessibleAttributesAndAttributesOfTypes( 142this IMethodSymbol method, ISymbol accessibleWithin,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\ISymbolExtensions.cs (2)
15IMethodSymbol method => method.PartialDefinitionPart != null || method.PartialImplementationPart != null, 53IMethodSymbol method => method.ReduceExtensionMember(receiverType),
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateEqualsMethod.cs (8)
24public static IMethodSymbol CreateEqualsMethod( 48public static IMethodSymbol CreateEqualsMethod(this Compilation compilation, ImmutableArray<SyntaxNode> statements) 51private static IMethodSymbol CreateEqualsMethod( 75public static IMethodSymbol CreateIEquatableEqualsMethod( 88var methodSymbol = constructedEquatableType 90.OfType<IMethodSymbol>() 463from method in baseType.GetMembers(EqualsName).OfType<IMethodSymbol>() 500var constructor = CodeGenerationSymbolFactory.CreateConstructorSymbol(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateGetHashCodeMethod.cs (3)
98var baseHashCode = GetBaseGetHashCodeMethod(containingType); 192public static IMethodSymbol? GetBaseGetHashCodeMethod(INamedTypeSymbol containingType) 205from method in baseType.GetMembers(GetHashCodeName).OfType<IMethodSymbol>()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions.cs (1)
95this SyntaxGenerator generator, IMethodSymbol method, ISymbol throughMember)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\InitializeParameter\InitializeParameterHelpersCore.cs (1)
20if (parameter.ContainingSymbol is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SemanticsFactsService\AbstractSemanticFactsService.cs (13)
106protected static IMethodSymbol? FindDisposeMethod(Compilation compilation, ITypeSymbol? type, bool isAsync) 118if (impl is IMethodSymbol implMethod) 136.FirstOrDefault(m => m is IMethodSymbol { DeclaredAccessibility: Accessibility.Public, ReturnType: var returnType, Parameters.Length: 0 } && 137SymbolEqualityComparer.Default.Equals(returnType, valueTaskType)) is IMethodSymbol disposeMethodFromPattern) 152.FirstOrDefault(m => m is IMethodSymbol { DeclaredAccessibility: Accessibility.Public, ReturnsVoid: true, Parameters.Length: 0 }) is IMethodSymbol disposeMethodFromPattern) 165(INamedTypeSymbol?, IMethodSymbol?) GetIDisposableInterfaceAndDisposeMethod(string typeName, string methodName) 168return (disposableType, disposableType?.GetMembers().OfType<IMethodSymbol>().FirstOrDefault(m => m.Parameters.Length == 0 && m.Name == methodName)); 216public IMethodSymbol? GetGetAwaiterMethod(SemanticModel semanticModel, SyntaxNode node) 219public ImmutableArray<IMethodSymbol> GetDeconstructionAssignmentMethods(SemanticModel semanticModel, SyntaxNode node) 222public ImmutableArray<IMethodSymbol> GetDeconstructionForEachMethods(SemanticModel semanticModel, SyntaxNode node) 249public ImmutableArray<IMethodSymbol> GetLocalFunctionSymbols(Compilation compilation, ISymbol symbol, CancellationToken cancellationToken) 261public bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SemanticsFactsService\ISemanticFactsService.cs (1)
47IMethodSymbol? TryGetDisposeMethod(SemanticModel semanticModel, SyntaxNode node, CancellationToken cancellationToken);
Microsoft.Diagnostics.DataContractReader.DataGenerator (2)
Parser.cs (2)
53case IMethodSymbol method: 310private static bool TryParseStaticMethod(IMethodSymbol method, out MemberModel? model)
Microsoft.DotNet.ApiCompatibility (18)
Comparing\SymbolEqualityComparer.cs (1)
24if (symbol is IMethodSymbol method)
Rules\AttributesMustMatch.cs (2)
221if (left is IMethodSymbol leftMethod && right is IMethodSymbol rightMethod)
Rules\CannotAddMemberToInterface.cs (2)
33if (right is IMethodSymbol ms && IsEventOrPropertyAccessor(ms)) 50private static bool IsEventOrPropertyAccessor(IMethodSymbol symbol) =>
Rules\CannotChangeGenericConstraints.cs (2)
58if (left is not IMethodSymbol leftMethod || right is not IMethodSymbol rightMethod)
Rules\CannotChangeParameterName.cs (2)
26if (left is not IMethodSymbol leftMethod || right is not IMethodSymbol rightMethod)
Rules\MembersMustExist.cs (9)
96if (symbol is IMethodSymbol method) 110private bool FindMatchingOnBaseType(IMethodSymbol method, ITypeSymbol containingType) 122if (symbol is IMethodSymbol candidate && IsMatchingMethod(method, candidate)) 131private bool IsMatchingMethod(IMethodSymbol method, IMethodSymbol candidate) 145private bool ReturnTypesMatch(IMethodSymbol method, IMethodSymbol candidate) => 148private bool ParametersMatch(IMethodSymbol method, IMethodSymbol candidate)
Microsoft.DotNet.ApiSymbolExtensions (11)
Filtering\ImplicitSymbolFilter.cs (2)
22if (symbol is IMethodSymbol method) 67if (symbol.ContainingType.TryGetRecordConstructor(out IMethodSymbol? recordConstructor))
SymbolExtensions.cs (9)
80symbol is IMethodSymbol method && method.MethodKind == MethodKind.ExplicitInterfaceImplementation || 88foreach (IMethodSymbol constructor in namedType.Constructors) 126public static bool IsEventAdderOrRemover(this IMethodSymbol method) => 140public static bool TryGetRecordConstructor(this INamedTypeSymbol type, [NotNullWhen(true)] out IMethodSymbol? recordConstructor) 149var deconstructMethod = (IMethodSymbol?)type.GetMembers("Deconstruct") 150.FirstOrDefault(m => m is IMethodSymbol && m.IsCompilerGenerated()); 153recordConstructor = (IMethodSymbol?)type.GetMembers(".ctor") 154.FirstOrDefault(m => m is IMethodSymbol method &&
Microsoft.DotNet.CodeAnalysis (6)
Analyzers\AppContextDefaultsAnalyzer.cs (2)
124return IsMethodTheDefineSwitchDefaultOne(symInfo.Symbol as IMethodSymbol); 127private bool IsMethodTheDefineSwitchDefaultOne(IMethodSymbol methodSym)
Analyzers\PinvokeAnalyzer.cs (2)
135var methodSymbol = context.Symbol as IMethodSymbol;
Analyzers\ResourceUsageAnalyzer.cs (2)
43IMethodSymbol memberSymbol = context.SemanticModel.GetSymbolInfo(memberAccessExpr).Symbol as IMethodSymbol;
Microsoft.Extensions.Configuration.Binder.SourceGeneration (18)
ConfigurationBindingGenerator.Parser.cs (10)
85IMethodSymbol targetMethod = invocation.Operation.TargetMethod; 626private bool ConstructorParametersContainUnsupportedType(IMethodSymbol ctor) 647IMethodSymbol? ctor = null; 651IMethodSymbol? parameterlessCtor = null; 652IMethodSymbol? parameterizedCtor = null; 655foreach (IMethodSymbol candidate in typeSymbol.InstanceConstructors) 916member is IMethodSymbol { Parameters.Length: 1 } method && 932member is IMethodSymbol { Parameters.Length: 2 } method && 998_emitGenericParseEnum = _typeSymbols.Enum.GetMembers("Parse").Any(m => m is IMethodSymbol methodSymbol && methodSymbol.IsGenericMethod); 1012if (throwIfNullMethod is IMethodSymbol throwIfNullMethodSymbol && throwIfNullMethodSymbol.IsStatic && throwIfNullMethodSymbol.Parameters.Length == 2)
Parser\BinderInvocation.cs (1)
54if (operation.TargetMethod is not IMethodSymbol
Parser\ConfigurationBinder.cs (2)
136IMethodSymbol targetMethod = operation.TargetMethod; 191IMethodSymbol targetMethod = operation.TargetMethod;
Parser\OptionsBuilderConfigurationExtensions.cs (3)
17IMethodSymbol targetMethod = invocation.Operation.TargetMethod; 45IMethodSymbol targetMethod = operation.TargetMethod; 72IMethodSymbol targetMethod = invocation.Operation.TargetMethod;
Parser\OptionsConfigurationServiceCollectionExtensions.cs (1)
18IMethodSymbol targetMethod = operation.TargetMethod;
Specs\Members\PropertySpec.cs (1)
13IMethodSymbol? setMethod = property.SetMethod;
Microsoft.Extensions.Logging.Generators (6)
LoggerMessageGenerator.Parser.cs (5)
101IMethodSymbol logMethodSymbol = sm.GetDeclaredSymbol(method, _cancellationToken)!; 110IMethodSymbol attrCtorSymbol = sm.GetSymbolInfo(ma, _cancellationToken).Symbol as IMethodSymbol; 735IEnumerable<IMethodSymbol> primaryConstructors = classType.InstanceConstructors 739foreach (IMethodSymbol primaryConstructor in primaryConstructors)
LoggerMessageGenerator.Roslyn4.0.cs (1)
55bool hasStringCreate = stringSymbol?.GetMembers("Create").OfType<IMethodSymbol>()
Microsoft.Extensions.Options.SourceGeneration (2)
Emitter.cs (1)
93if (members.Length == 1 && members[0] is IMethodSymbol tryValidateValueMethod)
Parser.cs (1)
202.Select(m => (IMethodSymbol)m)
Microsoft.Extensions.Validation.ValidationsGenerator (17)
Parsers\ValidationsGenerator.AddValidation.cs (1)
30if (symbol is not IMethodSymbol methodSymbol
Parsers\ValidationsGenerator.TypesParser.cs (2)
20var parameters = operation.TryGetRouteHandlerMethod(operation.SemanticModel, out var method) 167var primaryConstructor = namedType.Constructors
src\768f3af0174e68df\InvocationOperationExtensions.cs (2)
42public static bool TryGetRouteHandlerMethod(this IInvocationOperation invocation, SemanticModel semanticModel, [NotNullWhen(true)] out IMethodSymbol? method) 90private static IMethodSymbol? ResolveMethodFromOperation(IOperation operation, SemanticModel semanticModel) => operation switch
src\aspnetcore\src\Shared\RoslynUtils\ParsabilityHelper.cs (10)
20private static readonly BoundedCacheWithFactory<ITypeSymbol, (BindabilityMethod?, IMethodSymbol?)> BindabilityCache = new(); 76.OfType<IMethodSymbol>(); 94private static bool IsTryParse(IMethodSymbol methodSymbol) 104private static bool IsTryParseWithFormat(IMethodSymbol methodSymbol, WellKnownTypes wellKnownTypes) 134private static bool IsBindAsync(IMethodSymbol methodSymbol, ITypeSymbol typeSymbol, WellKnownTypes wellKnownTypes) 145private static bool IsBindAsyncWithParameter(IMethodSymbol methodSymbol, ITypeSymbol typeSymbol, WellKnownTypes wellKnownTypes) 162internal static Bindability GetBindability(ITypeSymbol typeSymbol, WellKnownTypes wellKnownTypes, out BindabilityMethod? bindabilityMethod, out IMethodSymbol? bindMethodSymbol) 166IMethodSymbol? bindAsyncMethod = null; 171IMethodSymbol? bindMethodSymbol = null; 185if (methodSymbolCandidate is IMethodSymbol methodSymbol)
src\aspnetcore\src\Shared\RoslynUtils\SymbolExtensions.cs (2)
217IMethodSymbol methodSymbol => methodSymbol.Parameters, 297if (parameterSymbol is { ContainingSymbol: IMethodSymbol constructor })
Microsoft.Gen.BuildMetadata (2)
src\Generators\Shared\GeneratorUtilities.cs (2)
108var ctor = context.SemanticModel.GetSymbolInfo(attributeSyntax, cancellationToken).Symbol as IMethodSymbol;
Microsoft.Gen.ComplianceReports (4)
Parser.cs (2)
204var methods = typeSymbol.GetMembers().OfType<IMethodSymbol>(); 205foreach (IMethodSymbol method in methods)
src\Generators\Shared\GeneratorUtilities.cs (2)
108var ctor = context.SemanticModel.GetSymbolInfo(attributeSyntax, cancellationToken).Symbol as IMethodSymbol;
Microsoft.Gen.ContextualOptions (2)
src\Generators\Shared\GeneratorUtilities.cs (2)
108var ctor = context.SemanticModel.GetSymbolInfo(attributeSyntax, cancellationToken).Symbol as IMethodSymbol;
Microsoft.Gen.Logging (18)
Parsing\Parser.cs (4)
85var methodSymbol = sm.GetDeclaredSymbol(method, _cancellationToken)!; 366(LoggingMethod lm, bool keepMethod) ProcessMethod(MethodDeclarationSyntax method, IMethodSymbol methodSymbol, Location attrLoc) 708IEnumerable<IMethodSymbol> primaryConstructors = classType!.InstanceConstructors 712foreach (IMethodSymbol primaryConstructor in primaryConstructors)
Parsing\Parser.LogProperties.cs (1)
108foreach (var ctor in namedType.InstanceConstructors)
Parsing\Parser.Records.cs (2)
72if (m is not IMethodSymbol { MethodKind: MethodKind.Constructor } ctorMethod) 96var getMethod = property.GetMethod;
Parsing\Parser.TagProvider.cs (6)
30var providerMethod = ValidateTagProvider( 58var providerMethod = ValidateTagProvider( 74private IMethodSymbol? ValidateTagProvider( 88var methodSymbols = providerType.GetMembers(providerMethodName).Where(m => m.Kind == SymbolKind.Method).Cast<IMethodSymbol>(); 90foreach (var method in methodSymbols) 128static bool IsParameterCountValid(IMethodSymbol method)
Parsing\TypeSymbolExtensions.cs (3)
22if (member is IMethodSymbol ts) 45if (member is IMethodSymbol ts) 82if (current.GetMembers("ToString").Where(m => m.Kind == SymbolKind.Method && m.DeclaredAccessibility == Accessibility.Public).Cast<IMethodSymbol>().Any(m => m.Parameters.Length == 0))
src\Generators\Shared\GeneratorUtilities.cs (2)
108var ctor = context.SemanticModel.GetSymbolInfo(attributeSyntax, cancellationToken).Symbol as IMethodSymbol;
Microsoft.Gen.Logging.Unit.Tests (12)
TypeSymbolExtensionsTests.cs (12)
53var methodSymbol = Assert.IsAssignableFrom<IMethodSymbol>(symbol); 97var methodSymbol = Assert.IsAssignableFrom<IMethodSymbol>(symbol); 141var methodSymbol = Assert.IsAssignableFrom<IMethodSymbol>(symbol); 189var methodSymbol = Assert.IsAssignableFrom<IMethodSymbol>(symbol); 232var methodSymbol = Assert.IsAssignableFrom<IMethodSymbol>(symbol); 276var methodSymbol = Assert.IsAssignableFrom<IMethodSymbol>(symbol);
Microsoft.Gen.MetadataExtractor (7)
src\Generators\Microsoft.Gen.ComplianceReports\Parser.cs (2)
204var methods = typeSymbol.GetMembers().OfType<IMethodSymbol>(); 205foreach (IMethodSymbol method in methods)
src\Generators\Microsoft.Gen.Metrics\Parser.cs (3)
86IMethodSymbol? methodSymbol = semanticModel.GetDeclaredSymbol(methodSyntax, _cancellationToken); 404IMethodSymbol methodSymbol, 575private bool CheckMethodReturnType(IMethodSymbol methodSymbol)
src\Generators\Shared\GeneratorUtilities.cs (2)
108var ctor = context.SemanticModel.GetSymbolInfo(attributeSyntax, cancellationToken).Symbol as IMethodSymbol;
Microsoft.Gen.Metrics (5)
Parser.cs (3)
86IMethodSymbol? methodSymbol = semanticModel.GetDeclaredSymbol(methodSyntax, _cancellationToken); 404IMethodSymbol methodSymbol, 575private bool CheckMethodReturnType(IMethodSymbol methodSymbol)
src\Generators\Shared\GeneratorUtilities.cs (2)
108var ctor = context.SemanticModel.GetSymbolInfo(attributeSyntax, cancellationToken).Symbol as IMethodSymbol;
Microsoft.Gen.MetricsReports (5)
src\Generators\Microsoft.Gen.Metrics\Parser.cs (3)
86IMethodSymbol? methodSymbol = semanticModel.GetDeclaredSymbol(methodSyntax, _cancellationToken); 404IMethodSymbol methodSymbol, 575private bool CheckMethodReturnType(IMethodSymbol methodSymbol)
src\Generators\Shared\GeneratorUtilities.cs (2)
108var ctor = context.SemanticModel.GetSymbolInfo(attributeSyntax, cancellationToken).Symbol as IMethodSymbol;
Microsoft.Interop.ComInterfaceGenerator (53)
Analyzers\ComInterfaceGeneratorDiagnosticsAnalyzer.cs (2)
157foreach (DiagnosticOr<(ComMethodInfo ComMethod, IMethodSymbol Symbol)> methodResult in 169(ComMethodInfo comMethod, IMethodSymbol methodSymbol) = methodResult.Value;
Analyzers\ConvertComImportToGeneratedComInterfaceAnalyzer.cs (3)
65foreach (var method in type.GetMembers().OfType<IMethodSymbol>().Where(m => !m.IsStatic && m.IsAbstract)) 150private static MarshallingInfoParser CreateComImportMarshallingInfoParser(StubEnvironment env, GeneratorDiagnosticsBag diagnostics, IMethodSymbol method, AttributeData unparsedAttributeData)
Analyzers\ConvertComImportToGeneratedComInterfaceFixer.cs (2)
129IMethodSymbol method = (IMethodSymbol)editor.SemanticModel.GetDeclaredSymbol(member, ct);
Analyzers\RuntimeComApiUsageWithSourceGeneratedComAnalyzer.cs (3)
66if (createAggregatedObject is IMethodSymbol { IsGenericMethod: true }) 78if (createWrapperOfType is IMethodSymbol { IsGenericMethod: true }) 94if (getComInterfaceForObject is IMethodSymbol { IsGenericMethod: true })
Analyzers\VtableIndexStubDiagnosticsAnalyzer.cs (4)
55IMethodSymbol method = (IMethodSymbol)symbolContext.Symbol; 81private static void AnalyzeMethod(SymbolAnalysisContext context, MethodDeclarationSyntax methodSyntax, IMethodSymbol method, StubEnvironment env) 107internal static DiagnosticInfo? GetDiagnosticIfInvalidMethodForGeneration(MethodDeclarationSyntax methodSyntax, IMethodSymbol method)
ComInterfaceGenerator.cs (6)
73Dictionary<ComMethodInfo, IMethodSymbol> methodSymbols = new(); 177IMethodSymbol symbol, 349private static StubMemberKind ClassifyMemberKind(IMethodSymbol symbol) => (symbol.MethodKind, symbol.AssociatedSymbol) switch 358internal static IncrementalMethodStubGenerationContext CalculateStubInformation(MemberDeclarationSyntax? syntax, IMethodSymbol symbol, int index, StubEnvironment environment, ComInterfaceInfo owningInterface, CancellationToken ct) 419private static MethodSignatureDiagnosticLocations CreatePropertyAccessorDiagnosticLocations(PropertyDeclarationSyntax propertySyntax, IMethodSymbol accessor) 432private static MethodSignatureDiagnosticLocations CreateIndexerAccessorDiagnosticLocations(IndexerDeclarationSyntax indexerSyntax, IMethodSymbol accessor)
ComMethodInfo.cs (29)
61public static SequenceEqualImmutableArray<DiagnosticOr<(ComMethodInfo ComMethod, IMethodSymbol Symbol)>> GetMethodsFromInterface((ComInterfaceInfo ifaceContext, INamedTypeSymbol ifaceSymbol) data, CancellationToken ct) 63var methods = ImmutableArray.CreateBuilder<DiagnosticOr<(ComMethodInfo, IMethodSymbol)>>(); 77methods.Add(DiagnosticOr<(ComMethodInfo, IMethodSymbol)>.From(member.CreateDiagnosticInfo(GeneratorDiagnostics.InstanceEventDeclaredInInterface, member.Name, data.ifaceSymbol.ToDisplayString()))); 79case IMethodSymbol { MethodKind: MethodKind.Ordinary } method: 107IMethodSymbol method, 139ImmutableArray<DiagnosticOr<(ComMethodInfo, IMethodSymbol)>>.Builder methods, 142IMethodSymbol method, 159methods.Add(DiagnosticOr<(ComMethodInfo, IMethodSymbol)>.From(( 187methods.Add(DiagnosticOr<(ComMethodInfo, IMethodSymbol)>.From(DiagnosticInfo.Create(GeneratorDiagnostics.MethodNotDeclaredInAttributedInterface, method.Locations.FirstOrDefault(), method.ToDisplayString()))); 204methods.Add(DiagnosticOr<(ComMethodInfo, IMethodSymbol)>.From(DiagnosticInfo.Create(GeneratorDiagnostics.CannotAnalyzeMethodPattern, method.Locations.FirstOrDefault(), method.ToDisplayString()))); 211methods.Add(DiagnosticOr<(ComMethodInfo, IMethodSymbol)>.From(diag!)); 222methods.Add(DiagnosticOr<(ComMethodInfo, IMethodSymbol)>.From((comMethodInfo, method))); 244ImmutableArray<DiagnosticOr<(ComMethodInfo, IMethodSymbol)>>.Builder methods, 275methods.Add(DiagnosticOr<(ComMethodInfo, IMethodSymbol)>.From( 295methods.Add(DiagnosticOr<(ComMethodInfo, IMethodSymbol)>.From( 303methods.Add(DiagnosticOr<(ComMethodInfo, IMethodSymbol)>.From(shapeDiagnostic!)); 319ImmutableArray<DiagnosticOr<(ComMethodInfo, IMethodSymbol)>>.Builder methods, 320IMethodSymbol? accessor) 331methods.Add(DiagnosticOr<(ComMethodInfo, IMethodSymbol)>.From(( 346ImmutableArray<DiagnosticOr<(ComMethodInfo, IMethodSymbol)>>.Builder methods, 348IMethodSymbol? accessor, 356methods.Add(DiagnosticOr<(ComMethodInfo, IMethodSymbol)>.From(( 366private static SequenceEqualImmutableArray<AttributeInfo> GetAssociatedAttributesForPropertyAccessor(IMethodSymbol accessor) 398private static string BuildExternalSymbolId(IMethodSymbol method) 573ImmutableArray<DiagnosticOr<(ComMethodInfo, IMethodSymbol)>>.Builder methods, 574IMethodSymbol method, 598ImmutableArray<DiagnosticOr<(ComMethodInfo, IMethodSymbol)>>.Builder methods, 619ImmutableArray<DiagnosticOr<(ComMethodInfo, IMethodSymbol)>>.Builder methods, 631methods.Add(DiagnosticOr<(ComMethodInfo, IMethodSymbol)>.From(
src\runtime\src\libraries\System.Runtime.InteropServices\gen\Common\ConvertToSourceGeneratedInteropFixer.cs (2)
236protected static SyntaxNode AddExplicitDefaultBoolMarshalling(SyntaxGenerator generator, IMethodSymbol methodSymbol, SyntaxNode generatedDeclaration, string unmanagedTypeMemberIdentifier) 267protected static SyntaxNode AddHResultStructAsErrorMarshalling(SyntaxGenerator generator, IMethodSymbol methodSymbol, SyntaxNode generatedDeclaration)
VtableIndexStubGenerator.cs (2)
31static (context, ct) => context.TargetSymbol is IMethodSymbol methodSymbol 259internal static SourceAvailableIncrementalMethodStubGenerationContext CalculateStubInformation(MethodDeclarationSyntax syntax, IMethodSymbol symbol, StubEnvironment environment, CancellationToken ct)
Microsoft.Interop.JavaScript.JSImportGenerator (13)
Analyzers\JSExportDiagnosticsAnalyzer.cs (1)
26IMethodSymbol symbol,
Analyzers\JSImportDiagnosticsAnalyzer.cs (1)
26IMethodSymbol symbol,
Analyzers\JSImportExportDiagnosticsAnalyzer.cs (5)
60IMethodSymbol method, 85IMethodSymbol method = (IMethodSymbol)symbolContext.Symbol; 112private bool AnalyzeMethod(SymbolAnalysisContext context, IMethodSymbol method, AttributeData attr, StubEnvironment env) 151IMethodSymbol method,
JSExportGenerator.cs (2)
43static (context, ct) => new { Syntax = (MethodDeclarationSyntax)context.TargetNode, Symbol = (IMethodSymbol)context.TargetSymbol }) 147IMethodSymbol symbol,
JSImportGenerator.cs (2)
44static (context, ct) => new { Syntax = (MethodDeclarationSyntax)context.TargetNode, Symbol = (IMethodSymbol)context.TargetSymbol }) 130IMethodSymbol symbol,
JSSignatureContext.cs (2)
30IMethodSymbol method, 79private static string GetFullyQualifiedMethodName(StubEnvironment env, IMethodSymbol method)
Microsoft.Interop.LibraryImportGenerator (27)
Analyzers\ConvertToLibraryImportAnalyzer.cs (4)
69var method = (IMethodSymbol)context.Symbol; 93IMethodSymbol method, 179private static bool IsBestFitMapping(IMethodSymbol method, DllImportData? dllImportData)
Analyzers\ConvertToLibraryImportFixer.cs (6)
181if (editor.SemanticModel.GetDeclaredSymbol(methodSyntax, cancellationToken) is not IMethodSymbol methodSymbol) 212IMethodSymbol methodSymbol, 283private static async Task<bool> TransformCallersOfNoPreserveSigMethod(DocumentEditor editor, IMethodSymbol methodSymbol, CancellationToken cancellationToken) 427IMethodSymbol methodSymbol, 671private static bool TryGetAttribute(IMethodSymbol method, INamedTypeSymbol attributeType, out AttributeData? attr) 691private static bool MethodRequiresStringMarshalling(IMethodSymbol method)
Analyzers\CustomMarshallerAttributeAnalyzer.cs (5)
885IMethodSymbol toUnmanagedMethod = methods.ToUnmanaged ?? methods.ToUnmanagedWithBuffer; 913IMethodSymbol toManagedMethod = methods.ToManaged ?? methods.ToManagedFinally; 963private void VerifyUnmanagedCollectionElementType(DiagnosticReporter diagnosticReporter, IMethodSymbol? unmanagedValuesCollectionMethod, ITypeSymbol expectedElementType, INamedTypeSymbol expectedSpanType) 983private static void CheckForBufferSizeMember(DiagnosticReporter diagnosticReporter, DiagnosticDescriptor descriptor, INamedTypeSymbol marshallerType, IMethodSymbol callerAllocatedBufferMethod) 1212IMethodSymbol fromUnmanagedMethod = fromUnmanagedCandidates[0];
Analyzers\LibraryImportDiagnosticsAnalyzer.cs (6)
95IMethodSymbol method = (IMethodSymbol)context.Symbol; 138private static bool IsGeneratedByOurGenerator(IMethodSymbol method) 157IMethodSymbol method, 198IMethodSymbol symbol, 318internal static DiagnosticInfo? GetDiagnosticIfInvalidMethodForGeneration(MethodDeclarationSyntax methodSyntax, IMethodSymbol method)
Analyzers\NativeMarshallingAttributeAnalyzer.cs (1)
169IMethodSymbol method => method.ReturnType,
Analyzers\ShapeBreakingDiagnosticSuppressor.cs (1)
47if (methods.IsShapeMethod((IMethodSymbol)diagnosedSymbol))
LibraryImportGenerator.cs (2)
47static (context, ct) => context.TargetSymbol is IMethodSymbol methodSymbol 198IMethodSymbol symbol,
src\runtime\src\libraries\System.Runtime.InteropServices\gen\Common\ConvertToSourceGeneratedInteropFixer.cs (2)
236protected static SyntaxNode AddExplicitDefaultBoolMarshalling(SyntaxGenerator generator, IMethodSymbol methodSymbol, SyntaxNode generatedDeclaration, string unmanagedTypeMemberIdentifier) 267protected static SyntaxNode AddHResultStructAsErrorMarshalling(SyntaxGenerator generator, IMethodSymbol methodSymbol, SyntaxNode generatedDeclaration)
Microsoft.Interop.LibraryImportGenerator.Downlevel (9)
DownlevelLibraryImportDiagnosticsAnalyzer.cs (6)
97IMethodSymbol method = (IMethodSymbol)context.Symbol; 140private static bool IsGeneratedByOurGenerator(IMethodSymbol method) 159IMethodSymbol method, 197IMethodSymbol symbol, 322internal static DiagnosticInfo? GetDiagnosticIfInvalidMethodForGeneration(MethodDeclarationSyntax methodSyntax, IMethodSymbol method)
DownlevelLibraryImportGenerator.cs (2)
80static (context, ct) => context.TargetSymbol is IMethodSymbol methodSymbol 184IMethodSymbol symbol,
DownlevelLibraryImportGeneratorHelpers.cs (1)
12public static MarshallingInfoParser CreateMarshallingInfoParser(StubEnvironment env, GeneratorDiagnosticsBag diagnostics, IMethodSymbol method, InteropAttributeCompilationData interopAttributeData)
Microsoft.Interop.SourceGeneration (122)
DefaultMarshallingInfoParser.cs (1)
32public static MarshallingInfoParser Create(StubEnvironment env, GeneratorDiagnosticsBag diagnostics, IMethodSymbol method, InteropAttributeCompilationData interopAttributeData, AttributeData unparsedAttributeData)
MarshallerShape.cs (113)
99public IMethodSymbol? ToUnmanaged { get; init; } 100public IMethodSymbol? ToUnmanagedWithBuffer { get; init; } 101public IMethodSymbol? ToManaged { get; init; } 102public IMethodSymbol? ToManagedFinally { get; init; } 105public IMethodSymbol? ManagedValuesSource { get; init; } 106public IMethodSymbol? UnmanagedValuesDestination { get; init; } 107public IMethodSymbol? ManagedValuesDestination { get; init; } 108public IMethodSymbol? UnmanagedValuesSource { get; init; } 121IMethodSymbol? allocateUnmanaged = LinearCollection.AllocateContainerForUnmanagedElements(marshallerType, managedType); 122IMethodSymbol? allocateUnmanagedWithBuffer = LinearCollection.AllocateContainerForUnmanagedElementsWithCallerAllocatedBuffer(marshallerType, managedType, spanOfT); 123IMethodSymbol? managedSource = LinearCollection.GetManagedValuesSource(marshallerType, managedType, readOnlySpanOfT); 124IMethodSymbol? unmanagedDestination = LinearCollection.GetUnmanagedValuesDestination(marshallerType, spanOfT); 145IMethodSymbol? allocateManaged = LinearCollection.AllocateContainerForManagedElements(marshallerType, managedType); 146IMethodSymbol? allocateManagedGuaranteed = LinearCollection.AllocateContainerForManagedElementsFinally(marshallerType, managedType); 147IMethodSymbol? managedDestination = LinearCollection.GetManagedValuesDestination(marshallerType, managedType, spanOfT); 148IMethodSymbol? unmanagedSource = LinearCollection.GetUnmanagedValuesSource(marshallerType, readOnlySpanOfT); 170IMethodSymbol? toUnmanaged = Value.ConvertToUnmanaged(marshallerType, managedType); 174IMethodSymbol? toUnmanagedWithBuffer = Value.ConvertToUnmanagedWithCallerAllocatedBuffer(marshallerType, managedType, spanOfT); 178IMethodSymbol? toManaged = Value.ConvertToManaged(marshallerType, managedType); 182IMethodSymbol? toManagedFinally = Value.ConvertToManagedFinally(marshallerType, managedType); 204private static IMethodSymbol? GetStatelessFree(ITypeSymbol type) 208.OfType<IMethodSymbol>() 212private static IMethodSymbol? GetStatelessGetPinnableReference(ITypeSymbol type, ITypeSymbol managedType) 218.OfType<IMethodSymbol>() 257internal static IMethodSymbol? ConvertToUnmanaged(ITypeSymbol type, ITypeSymbol managedType) 261.OfType<IMethodSymbol>() 266internal static IMethodSymbol? ConvertToUnmanagedWithCallerAllocatedBuffer( 272IEnumerable<IMethodSymbol> methods = type.GetMembers(ShapeMemberNames.Value.Stateless.ConvertToUnmanaged) 273.OfType<IMethodSymbol>() 277foreach (IMethodSymbol method in methods) 288internal static IMethodSymbol? ConvertToManaged(ITypeSymbol type, ITypeSymbol managedType) 292.OfType<IMethodSymbol>() 297internal static IMethodSymbol? ConvertToManagedFinally(ITypeSymbol type, ITypeSymbol managedType) 301.OfType<IMethodSymbol>() 309internal static IMethodSymbol? AllocateContainerForUnmanagedElements(ITypeSymbol type, ITypeSymbol managedType) 313.OfType<IMethodSymbol>() 320internal static IMethodSymbol? AllocateContainerForUnmanagedElementsWithCallerAllocatedBuffer(ITypeSymbol type, ITypeSymbol managedType, ITypeSymbol spanOfT) 323IEnumerable<IMethodSymbol> methods = type.GetMembers(ShapeMemberNames.LinearCollection.Stateless.AllocateContainerForUnmanagedElements) 324.OfType<IMethodSymbol>() 330foreach (IMethodSymbol method in methods) 341internal static IMethodSymbol? GetManagedValuesSource(ITypeSymbol type, ITypeSymbol managedType, ITypeSymbol readOnlySpanOfT) 345.OfType<IMethodSymbol>() 351internal static IMethodSymbol? GetUnmanagedValuesDestination(ITypeSymbol type, ITypeSymbol spanOfT) 355.OfType<IMethodSymbol>() 361internal static IMethodSymbol? AllocateContainerForManagedElements(ITypeSymbol type, ITypeSymbol managedType) 365.OfType<IMethodSymbol>() 371internal static IMethodSymbol? AllocateContainerForManagedElementsFinally(ITypeSymbol type, ITypeSymbol managedType) 375.OfType<IMethodSymbol>() 381internal static IMethodSymbol? GetManagedValuesDestination(ITypeSymbol type, ITypeSymbol managedType, ITypeSymbol spanOfT) 385.OfType<IMethodSymbol>() 391internal static IMethodSymbol? GetUnmanagedValuesSource(ITypeSymbol type, ITypeSymbol readOnlySpanOfT) 395.OfType<IMethodSymbol>() 410public IMethodSymbol? FromManaged { get; init; } 411public IMethodSymbol? FromManagedWithBuffer { get; init; } 412public IMethodSymbol? ToManaged { get; init; } 413public IMethodSymbol? ToManagedGuaranteed { get; init; } 414public IMethodSymbol? FromUnmanaged { get; init; } 415public IMethodSymbol? ToUnmanaged { get; init; } 416public IMethodSymbol? Free { get; init; } 417public IMethodSymbol? OnInvoked { get; init; } 418public IMethodSymbol? StatelessGetPinnableReference { get; init; } 419public IMethodSymbol? StatefulGetPinnableReference { get; init; } 422public IMethodSymbol? ManagedValuesSource { get; init; } 423public IMethodSymbol? UnmanagedValuesDestination { get; init; } 424public IMethodSymbol? ManagedValuesDestination { get; init; } 425public IMethodSymbol? UnmanagedValuesSource { get; init; } 427public bool IsShapeMethod(IMethodSymbol method) 453IMethodSymbol? fromManaged = GetFromManagedMethod(marshallerType, managedType); 455IMethodSymbol? fromManagedWithCallerAllocatedBuffer = GetFromManagedWithCallerAllocatedBufferMethod(marshallerType, managedType, spanOfT); 457IMethodSymbol? toUnmanaged = GetToUnmanagedMethod(marshallerType); 460IMethodSymbol? managedSource = null; 461IMethodSymbol? unmanagedDestination = null; 494IMethodSymbol toManaged = GetToManagedMethod(marshallerType, managedType); 495IMethodSymbol toManagedFinally = GetToManagedFinallyMethod(marshallerType, managedType); 496IMethodSymbol fromUnmanaged = GetFromUnmanagedMethod(marshallerType, unmanagedType); 497IMethodSymbol? managedDestination = null; 498IMethodSymbol? unmanagedSource = null; 527IMethodSymbol free = GetStatefulFreeMethod(marshallerType); 533IMethodSymbol OnInvoked = GetOnInvokedMethod(marshallerType); 539IMethodSymbol statelessGetPinnableReference = GetStatelessGetPinnableReference(marshallerType, managedType); 545IMethodSymbol statefulGetPinnableReference = GetStatefulGetPinnableReference(marshallerType); 561private static IMethodSymbol? GetFromManagedMethod(ITypeSymbol type, ITypeSymbol managedType) 564.OfType<IMethodSymbol>() 569private static IMethodSymbol? GetFromManagedWithCallerAllocatedBufferMethod( 574IEnumerable<IMethodSymbol> methods = type.GetMembers(ShapeMemberNames.Value.Stateful.FromManaged) 575.OfType<IMethodSymbol>() 579foreach (IMethodSymbol method in methods) 590private static IMethodSymbol? GetToManagedMethod(ITypeSymbol type, ITypeSymbol managedType) 593.OfType<IMethodSymbol>() 598private static IMethodSymbol? GetToManagedFinallyMethod(ITypeSymbol type, ITypeSymbol managedType) 601.OfType<IMethodSymbol>() 606private static IMethodSymbol? GetToUnmanagedMethod(ITypeSymbol type) 609.OfType<IMethodSymbol>() 613public static ImmutableArray<IMethodSymbol> GetFromUnmanagedMethodCandidates(ITypeSymbol type) 616.OfType<IMethodSymbol>() 621private static IMethodSymbol? GetFromUnmanagedMethod(ITypeSymbol type, ITypeSymbol? unmanagedType) 623ImmutableArray<IMethodSymbol> candidates = GetFromUnmanagedMethodCandidates(type); 652private static IMethodSymbol? GetStatefulFreeMethod(ITypeSymbol type) 655.OfType<IMethodSymbol>() 659private static IMethodSymbol? GetOnInvokedMethod(ITypeSymbol type) 662.OfType<IMethodSymbol>() 666private static IMethodSymbol? GetStatelessGetPinnableReference(ITypeSymbol type, ITypeSymbol managedType) 669.OfType<IMethodSymbol>() 675private static IMethodSymbol? GetStatefulGetPinnableReference(ITypeSymbol type) 678.OfType<IMethodSymbol>() 685internal static IMethodSymbol? GetManagedValuesSource(ITypeSymbol type, ITypeSymbol readOnlySpanOfT) 689.OfType<IMethodSymbol>() 694internal static IMethodSymbol? GetUnmanagedValuesDestination(ITypeSymbol type, ITypeSymbol spanOfT) 698.OfType<IMethodSymbol>() 703internal static IMethodSymbol? GetManagedValuesDestination(ITypeSymbol type, ITypeSymbol spanOfT) 707.OfType<IMethodSymbol>() 713internal static IMethodSymbol? GetUnmanagedValuesSource(ITypeSymbol type, ITypeSymbol readOnlySpanOfT) 717.OfType<IMethodSymbol>()
Marshalling\MarshallerHelpers.cs (1)
348public static void ValidateCountInfoAvailableAtCall(MarshalDirection stubDirection, TypePositionInfo info, GeneratorDiagnosticsBag generatorDiagnostics, IMethodSymbol symbol, DiagnosticDescriptor outParamDescriptor, DiagnosticDescriptor returnValueDescriptor)
MethodSignatureElementInfoProvider.cs (2)
14private readonly IMethodSymbol _method; 17public MethodSignatureElementInfoProvider(Compilation compilation, GeneratorDiagnosticsBag generatorDiagnostics, IMethodSymbol method, ImmutableArray<IUseSiteAttributeParser> useSiteAttributeParsers)
SafeHandleMarshallingInfoProvider.cs (1)
46foreach (IMethodSymbol ctor in named.InstanceConstructors)
SignatureContext.cs (3)
56IMethodSymbol method, 102IMethodSymbol method, 235private static bool MethodIsSkipLocalsInit(StubEnvironment env, IMethodSymbol method)
TypePositionInfo.cs (1)
100public static Location GetLocation(TypePositionInfo info, IMethodSymbol methodSymbol)
Microsoft.Maui.Controls.BindingSourceGen (3)
BindingSourceGenerator.cs (1)
207 if (semanticModel.GetSymbolInfo(lambda, t).Symbol is not IMethodSymbol lambdaSymbol)
InvocationParser.cs (2)
37 if (symbol is not IMethodSymbol methodSymbol 68 if (symbol is not IMethodSymbol methodSymbol
Microsoft.ML.CodeAnalyzer.Tests (2)
Code\RelaxTestNamingTest.cs (2)
121var method = (IMethodSymbol)context.Symbol;
Microsoft.ML.InternalCodeAnalyzer (4)
BaseTestClassAnalyzer.cs (1)
76if (member is IMethodSymbol method && method.IsTestMethod(_knownTestAttributes, _factAttribute))
ContractsCheckAnalyzer.cs (1)
196if (!(symbolInfo.Symbol is IMethodSymbol methodSymbol))
IMethodSymbolExtensions.cs (1)
12public static bool IsTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol factAttribute)
RelaxTestNamingSuppressor.cs (1)
46if (declaredSymbol is IMethodSymbol method
Roslyn.Diagnostics.Analyzers (499)
AbstractDoNotCopyValue.cs (3)
304public override void VisitMethod(IMethodSymbol symbol) 1529CheckMethodSymbolInUnsupportedContext(operation, (IMethodSymbol)symbol); 1609protected void CheckMethodSymbolInUnsupportedContext(IOperation operation, IMethodSymbol? symbol)
AbstractRunIterations`1.cs (2)
42var methodSymbol = (IMethodSymbol)semanticModel.GetDeclaredSymbol(method, context.CancellationToken)!;
DoNotMixAttributesFromDifferentVersionsOfMEF.cs (1)
103if (member is IMethodSymbol methodSymbol && methodSymbol.MethodKind == MethodKind.Constructor)
ExportedPartsShouldHaveImportingConstructor.cs (5)
95IMethodSymbol? importingConstructor = null; 96var nonImportingConstructors = ImmutableArray<IMethodSymbol>.Empty; 97foreach (var constructor in namedType.Constructors) 137IMethodSymbol? missingImportingConstructor = null; 144foreach (var constructor in nonImportingConstructors)
ImmutableArrayBoxingAnalyzer.cs (1)
70var targetMethod = invocation.TargetMethod.ReducedFrom ?? invocation.TargetMethod;
ImportingConstructorShouldBeObsolete.cs (1)
87foreach (var constructor in namedType.Constructors)
IRemoteJsonServiceParameterAnalyzer.cs (2)
70foreach (var method in namedTypeSymbol.GetMembers().OfType<IMethodSymbol>())
PooledArrayBuilderAsRefAnalyzer.cs (4)
49var pooledArrayBuilderAsRef = (IMethodSymbol?)pooledArrayBuilderExtensions.GetMembers("AsRef").SingleOrDefault(); 57private static void AnalyzeInvocation(OperationAnalysisContext context, IMethodSymbol pooledArrayBuilderAsRef) 60var targetMethod = invocation.TargetMethod.ReducedFrom ?? invocation.TargetMethod;
RelaxTestNamingSuppressor.cs (1)
54if (declaredSymbol is IMethodSymbol method
SpecializedEnumerableCreationAnalyzer.cs (9)
83if (linqEnumerableSymbol.GetMembers(EmptyMethodName).FirstOrDefault() is not IMethodSymbol genericEmptyEnumerableSymbol || 94protected abstract void GetCodeBlockStartedAnalyzer(CompilationStartAnalysisContext context, INamedTypeSymbol genericEnumerableSymbol, IMethodSymbol genericEmptyEnumerableSymbol); 99private readonly IMethodSymbol _genericEmptyEnumerableSymbol; 101protected AbstractCodeBlockStartedAnalyzer(INamedTypeSymbol genericEnumerableSymbol, IMethodSymbol genericEmptyEnumerableSymbol) 107protected abstract void GetSyntaxAnalyzer(CodeBlockStartAnalysisContext<TLanguageKindEnum> context, INamedTypeSymbol genericEnumerableSymbol, IMethodSymbol genericEmptyEnumerableSymbol); 111if (context.OwningSymbol is IMethodSymbol methodSymbol && 122private readonly IMethodSymbol _genericEmptyEnumerableSymbol; 124protected AbstractSyntaxAnalyzer(INamedTypeSymbol genericEnumerableSymbol, IMethodSymbol genericEmptyEnumerableSymbol) 144if (semanticModel.GetSymbolInfo(name, cancellationToken).Symbol is IMethodSymbol methodSymbol &&
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.cs (2)
30IMethodSymbol lambdaOrLocalFunction, 52IMethodSymbol localFunctionOrLambda,
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (12)
36private readonly Func<IMethodSymbol, ControlFlowGraph, AnalysisData, CancellationToken, BasicBlockAnalysisData> _analyzeLocalFunctionOrLambdaInvocation; 55private readonly PooledDictionary<IMethodSymbol, ControlFlowGraph> _localFunctionTargetsToAccessingCfgMap; 79PooledHashSet<IMethodSymbol> lambdaOrLocalFunctionsBeingAnalyzed, 80Func<IMethodSymbol, ControlFlowGraph, AnalysisData, CancellationToken, BasicBlockAnalysisData> analyzeLocalFunctionOrLambdaInvocation, 82PooledDictionary<IMethodSymbol, ControlFlowGraph> localFunctionTargetsToAccessingCfgMap, 112protected override PooledHashSet<IMethodSymbol> LambdaOrLocalFunctionsBeingAnalyzed { get; } 119Func<IMethodSymbol, ControlFlowGraph, AnalysisData, CancellationToken, BasicBlockAnalysisData> analyzeLocalFunctionOrLambdaInvocation) 133lambdaOrLocalFunctionsBeingAnalyzed: PooledHashSet<IMethodSymbol>.GetInstance(), 136localFunctionTargetsToAccessingCfgMap: PooledDictionary<IMethodSymbol, ControlFlowGraph>.GetInstance(), 157IMethodSymbol lambdaOrLocalFunction, 336ControlFlowGraph TryGetLocalFunctionControlFlowGraphInScope(IMethodSymbol localFunction) 501protected override BasicBlockAnalysisData AnalyzeLocalFunctionInvocationCore(IMethodSymbol localFunction, CancellationToken cancellationToken)
src\b310f676f7308b7f\SymbolUsageAnalysis.OperationTreeAnalysisData.cs (7)
18private readonly Func<IMethodSymbol, BasicBlockAnalysisData> _analyzeLocalFunction; 23PooledHashSet<IMethodSymbol> lambdaOrLocalFunctionsBeingAnalyzed, 24Func<IMethodSymbol, BasicBlockAnalysisData> analyzeLocalFunction) 36protected override PooledHashSet<IMethodSymbol> LambdaOrLocalFunctionsBeingAnalyzed { get; } 40Func<IMethodSymbol, BasicBlockAnalysisData> analyzeLocalFunction) 45lambdaOrLocalFunctionsBeingAnalyzed: PooledHashSet<IMethodSymbol>.GetInstance(), 49protected override BasicBlockAnalysisData AnalyzeLocalFunctionInvocationCore(IMethodSymbol localFunction, CancellationToken cancellationToken)
src\ce8c1e82c1124a2b\AbstractInitializerParameterService.cs (1)
24protected abstract SyntaxNode? GetAccessorBody(IMethodSymbol accessor, CancellationToken cancellationToken);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.cs (2)
273SymbolKind.Method => MethodMetricData.Compute((IMethodSymbol)symbol, context), 311SymbolKind.Method => MethodMetricData.Compute((IMethodSymbol)symbol, context),
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.EventMetricData.cs (1)
55private static IEnumerable<IMethodSymbol> GetAccessors(IEventSymbol @event)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.MethodMetricData.cs (2)
15IMethodSymbol symbol, 27internal static MethodMetricData Compute(IMethodSymbol method, CodeMetricsAnalysisContext context)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.NamedTypeMetricData.cs (1)
59members = members.Where(m => m.Kind != SymbolKind.Method || ((IMethodSymbol)m).AssociatedSymbol == null);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.PropertyMetricData.cs (1)
56private static IEnumerable<IMethodSymbol> GetAccessors(IPropertySymbol property)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
221if (symbol is IMethodSymbol methodSymbol) 413SymbolKind.Method => ((IMethodSymbol)member).Parameters,
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\DoNotCatchGeneralUnlessRethrown.cs (4)
34protected abstract Diagnostic CreateDiagnostic(IMethodSymbol containingMethod, SyntaxToken catchKeyword); 35protected virtual bool IsConfiguredDisallowedExceptionType(INamedTypeSymbol namedTypeSymbol, IMethodSymbol containingMethod, Compilation compilation, AnalyzerOptions analyzerOptions, CancellationToken cancellationToken) 62var method = (IMethodSymbol)operationBlockAnalysisContext.OwningSymbol;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (48)
26public static bool IsObjectEqualsOverride(this IMethodSymbol method) 40public static bool IsObjectEquals(this IMethodSymbol method) 54public static bool IsStaticObjectEqualsOrReferenceEquals(this IMethodSymbol method) 69private static bool IsObjectMethodOverride(IMethodSymbol method) 71IMethodSymbol overriddenMethod = method.OverriddenMethod; 89public static bool IsImplementationOfInterfaceMethod(this IMethodSymbol method, ITypeSymbol? typeArgument, [NotNullWhen(returnValue: true)] INamedTypeSymbol? interfaceType, string interfaceMethodName) 93return constructedInterface?.GetMembers(interfaceMethodName).FirstOrDefault() is IMethodSymbol interfaceMethod && 100public static bool IsDisposeImplementation(this IMethodSymbol method, Compilation compilation) 109public static bool IsAsyncDisposeImplementation(this IMethodSymbol method, Compilation compilation) 119public static bool IsDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iDisposable) 141public static bool IsAsyncDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iAsyncDisposable, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTaskType) 163private static bool HasDisposeMethodSignature(this IMethodSymbol method) 171public static bool HasDisposeSignatureByConvention(this IMethodSymbol method) 181public static bool HasDisposeBoolMethodSignature(this IMethodSymbol method) 192private static bool HasDisposeCloseMethodSignature(this IMethodSymbol method) 200private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 207private static bool HasDisposeAsyncMethodSignature(this IMethodSymbol method, 223private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 236private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 248public static DisposeMethodKind GetDisposeMethodKind(this IMethodSymbol method, Compilation compilation) 263this IMethodSymbol method, 311public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 317public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 324public static bool HasOptionalParameters(this IMethodSymbol methodSymbol) 329public static IEnumerable<IMethodSymbol> GetOverloads(this IMethodSymbol? method) 331var methods = method?.ContainingType?.GetMembers(method.Name).OfType<IMethodSymbol>(); 334foreach (var member in methods) 364public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 385public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 394public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 406public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 420private static readonly BoundedCache<Compilation, ConcurrentDictionary<IMethodSymbol, IBlockOperation?>> s_methodToTopmostOperationBlockCache 426public static IBlockOperation? GetTopmostOperationBlock(this IMethodSymbol method, Compilation compilation, CancellationToken cancellationToken = default) 432IBlockOperation? ComputeTopmostOperationBlock(IMethodSymbol unused) 465public static bool IsLambdaOrLocalFunctionOrDelegate(this IMethodSymbol method) 474public static bool IsLambdaOrLocalFunction(this IMethodSymbol method) 483public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 493public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 505public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 519public static bool HasParameterWithDelegateType(this IMethodSymbol methodSymbol) 527public static bool IsArgumentNullCheckMethod(this IMethodSymbol method) 536public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 547public static ImmutableArray<IMethodSymbol> GetOriginalDefinitions(this IMethodSymbol methodSymbol) 549ImmutableArray<IMethodSymbol>.Builder originalDefinitionsBuilder = ImmutableArray.CreateBuilder<IMethodSymbol>(); 566.OfType<IMethodSymbol>()
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (1)
69return symbol.GetMembers(WellKnownMemberNames.ObjectEquals).OfType<IMethodSymbol>().Any(m => m.IsObjectEqualsOverride());
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (2)
331this IOperation operation, IMethodSymbol lambdaOrLocalFunction, out PooledHashSet<ISymbol> builder) 339using var _ = PooledHashSet<IMethodSymbol>.GetInstance(out var nestedLambdasAndLocalFunctions);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ISymbolExtensions.cs (10)
72public static bool ParametersAreSame(this IMethodSymbol method1, IMethodSymbol method2) 93public static bool ParameterTypesAreSame(this IMethodSymbol method1, IMethodSymbol method2, IEnumerable<int> parameterIndices, CancellationToken cancellationToken) 128public static bool ReturnTypeAndParametersAreSame(this IMethodSymbol method, IMethodSymbol otherMethod) 198if (symbol is IMethodSymbol methodSymbol && !methodSymbol.ExplicitInterfaceImplementations.IsEmpty) 331public static bool HasDerivedMethodAttribute(this IMethodSymbol symbol, [NotNullWhen(returnValue: true)] INamedTypeSymbol? attribute) 357=> (symbol as IMethodSymbol)?.IsLambdaOrLocalFunction() == true; 376IMethodSymbol method => method.IsReadOnly,
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (1)
132return type.GetMembers("Dispose").OfType<IMethodSymbol>()
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Options\SymbolModifiers.cs (1)
81if (symbol is IMethodSymbol method &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\CollectionExpressionUtilities.cs (9)
98var capacityConstructor = GetAccessibleInstanceConstructor(constructors, c => c.Parameters is [{ Name: "capacity", Type.SpecialType: SpecialType.System_Int32 }]); 102var noArgConstructor = 122IMethodSymbol? GetAccessibleInstanceConstructor(ImmutableArray<IMethodSymbol> constructors, Func<IMethodSymbol, bool> predicate) 124var constructor = constructors.FirstOrDefault(c => !c.IsStatic && predicate(c)); 136/// <item>their <see cref="IMethodSymbol.Arity"/> must match that of <paramref 145public static ImmutableArray<IMethodSymbol>? TryGetCollectionBuilderFactoryMethods( 164.OfType<IMethodSymbol>()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (3)
235var containingMethod = TryGetContainingAnonymousFunctionOrLocalFunction(operation) ?? (containingSymbol as IMethodSymbol); 239public static IMethodSymbol? TryGetContainingAnonymousFunctionOrLocalFunction(this IOperation? operation)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.AnalysisData.cs (3)
72protected abstract PooledHashSet<IMethodSymbol> LambdaOrLocalFunctionsBeingAnalyzed { get; } 91public BasicBlockAnalysisData AnalyzeLocalFunctionInvocation(IMethodSymbol localFunction, CancellationToken cancellationToken) 126protected abstract BasicBlockAnalysisData AnalyzeLocalFunctionInvocationCore(IMethodSymbol localFunction, CancellationToken cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.cs (1)
44BasicBlockAnalysisData AnalyzeLocalFunction(IMethodSymbol localFunction)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (1)
344private void AnalyzeLocalFunctionInvocation(IMethodSymbol localFunction)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (1)
44if (symbol is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (3)
167switch (((IMethodSymbol)currentSymbol).MethodKind) 363SymbolCategory.Method => symbol is IMethodSymbol method && method.MethodKind == (MethodKind)_kind, 507if (Modifiers.HasFlag(Modifiers.Async) && kind == SymbolKind.Method && ((IMethodSymbol)symbol).IsAsync)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ForEachSymbols.cs (6)
8IMethodSymbol? getEnumeratorMethod, 9IMethodSymbol? moveNextMethod, 11IMethodSymbol? disposeMethod, 14public readonly IMethodSymbol? GetEnumeratorMethod = getEnumeratorMethod; 15public readonly IMethodSymbol? MoveNextMethod = moveNextMethod; 17public readonly IMethodSymbol? DisposeMethod = disposeMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (5)
83IMethodSymbol? GetGetAwaiterMethod(SemanticModel semanticModel, SyntaxNode node); 85ImmutableArray<IMethodSymbol> GetDeconstructionAssignmentMethods(SemanticModel semanticModel, SyntaxNode node); 87ImmutableArray<IMethodSymbol> GetDeconstructionForEachMethods(SemanticModel semanticModel, SyntaxNode node); 106ImmutableArray<IMethodSymbol> GetLocalFunctionSymbols(Compilation compilation, ISymbol symbol, CancellationToken cancellationToken); 123bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFactsExtensions.cs (1)
112=> symbol is IMethodSymbol methodSymbol &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
63if (isAnonymousDelegateType && symbol is IMethodSymbol methodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.BuiltinOperatorSymbolKey.cs (6)
11private sealed class BuiltinOperatorSymbolKey : AbstractSymbolKey<IMethodSymbol> 15public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 23SymbolKeyReader reader, IMethodSymbol? contextualSymbol, out string? failureReason) 28using var parameterTypes = reader.ReadSymbolKeyArray<IMethodSymbol, ITypeSymbol>( 54var unaryOperator = reader.Compilation.CreateBuiltinOperator(name, returnTypeSymbol, parameterTypes[0]); 58var binaryOperator = reader.Compilation.CreateBuiltinOperator(name, returnTypeSymbol, parameterTypes[0], parameterTypes[1]);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (5)
33/// <item>Two <see cref="IMethodSymbol"/>s are the "same" if they have 36/// equal <see cref="IMethodSymbol.Arity"/>, 37/// the "same" <see cref="IMethodSymbol.TypeArguments"/>, and have 76/// cref="IRangeVariableSymbol"/> and <see cref="MethodKind.LocalFunction"/> <see cref="IMethodSymbol"/>s can also 323IMethodSymbol { MethodKind: MethodKind.LocalFunction } => true,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.MethodSymbolKey.cs (22)
11private sealed class ReducedExtensionMethodSymbolKey : AbstractSymbolKey<IMethodSymbol> 15public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 24SymbolKeyReader reader, IMethodSymbol? contextualMethod, out string? failureReason) 41using var result = PooledArrayBuilder<IMethodSymbol>.GetInstance(); 42foreach (var reducedFrom in reducedFromResolution.OfType<IMethodSymbol>()) 55private sealed class ConstructedMethodSymbolKey : AbstractSymbolKey<IMethodSymbol> 59public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 66SymbolKeyReader reader, IMethodSymbol? contextualMethod, out string? failureReason) 70using var typeArguments = reader.ReadSymbolKeyArray<IMethodSymbol, ITypeSymbol>( 101using var result = PooledArrayBuilder<IMethodSymbol>.GetInstance(); 102foreach (var method in constructedFrom.OfType<IMethodSymbol>()) 123private sealed class MethodSymbolKey : AbstractSymbolKey<IMethodSymbol> 127public sealed override void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) 160SymbolKeyReader reader, IMethodSymbol? contextualSymbol, out string? failureReason) 179using var methods = GetMembersOfNamedType<IMethodSymbol>(containingType, metadataName: null); 180IMethodSymbol? method = null; 181foreach (var candidate in methods) 223_ = reader.ReadSymbolKeyArray<IMethodSymbol, ITypeSymbol>( 243private static IMethodSymbol? Resolve( 244SymbolKeyReader reader, bool isPartialImplementationPart, IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (2)
45case IMethodSymbol method: 64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyReader.cs (5)
331private readonly List<IMethodSymbol?> _methodSymbolStack = []; 409public MethodPopper PushMethod(IMethodSymbol? method) 415private void PopMethod(IMethodSymbol? method) 422public IMethodSymbol? ResolveMethod(int index) 441public readonly ref struct MethodPopper(SymbolKeyReader reader, IMethodSymbol? method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyWriter.cs (5)
69private readonly List<IMethodSymbol> _methodSymbolStack = []; 362public override void VisitMethod(IMethodSymbol methodSymbol) 499var method = _methodSymbolStack[i]; 512public void PushMethod(IMethodSymbol method) 515public void PopMethod(IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.TypeParameterOrdinalSymbolKey.cs (1)
22var method = reader.ResolveMethod(methodIndex);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (14)
112SemanticModel model, TForEachStatementSyntax forEach, out IMethodSymbol getEnumeratorMethod, out ITypeSymbol elementType, out ImmutableArray<ILocalSymbol> localVariables); 379symbol = ((IMethodSymbol)symbol).GetConstructedReducedFrom()!; 384newSymbol = ((IMethodSymbol)newSymbol).GetConstructedReducedFrom()!; 404if (symbol is IMethodSymbol methodSymbol && newSymbol is IMethodSymbol newMethodSymbol) 478if (symbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction } methodSymbol && 479newSymbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction } newMethodSymbol) 757return symbol is IMethodSymbol { ContainingType.SpecialType: SpecialType.System_Object } 778GetForEachSymbols(this.OriginalSemanticModel, forEachStatement, out var originalGetEnumerator, out var originalElementType, out var originalLocalVariables); 779GetForEachSymbols(this.SpeculativeSemanticModel, newForEachStatement, out var newGetEnumerator, out var newElementType, out var newLocalVariables); 806private bool ReplacementBreaksForEachGetEnumerator(IMethodSymbol getEnumerator, IMethodSymbol newGetEnumerator, TExpressionSyntax newForEachStatementExpression) 875=> symbol is IMethodSymbol { MethodKind: MethodKind.DelegateInvoke }; 1048return receiverSymbol is IMethodSymbol or IPropertySymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\LightweightOverloadResolution.cs (12)
31public IMethodSymbol? RefineOverload(SymbolInfo symbolInfo, ImmutableArray<IMethodSymbol> candidates) 34public (IMethodSymbol? method, int parameterIndex) RefineOverloadAndPickParameter(SymbolInfo symbolInfo, ImmutableArray<IMethodSymbol> candidates) 38return symbolInfo.Symbol is IMethodSymbol method 43public int FindParameterIndexIfCompatibleMethod(IMethodSymbol method) 52private (IMethodSymbol? symbol, int parameterIndex) GuessCurrentSymbolAndParameter(ImmutableArray<IMethodSymbol> methodGroup) 56foreach (var method in methodGroup) 73private (IMethodSymbol? method, int parameterIndex) TryFindParameterIndexIfCompatibleMethod(IMethodSymbol method) 185private bool TryPrepareArgumentToParameterMap(IMethodSymbol method, ref TemporaryArray<int> argumentToParameterMap)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (2)
371public static IMethodSymbol? GetTopLevelStatementsMethod(this Compilation compilation) 377if (candidateMember is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (11)
19internal static IMethodSymbol? TryGetCorrespondingExtensionBlockMethod(this IMethodSymbol methodSymbol) 33if (member is IMethodSymbol method && 49public static ImmutableArray<IMethodSymbol> GetAllMethodSymbolsOfPartialParts(this IMethodSymbol method) 72public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 77public static bool TryGetPredefinedComparisonOperator(this IMethodSymbol symbol, out PredefinedOperator op) 101public static PredefinedOperator GetPredefinedOperator(this IMethodSymbol symbol) 131public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 142public static bool IsAsyncReturningVoidTask(this IMethodSymbol method, Compilation compilation) 160public static bool IsPrimaryConstructor(this IMethodSymbol constructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (9)
136static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 184IMethodSymbol method => method.ExplicitInterfaceImplementations.Length > 0, 235static bool IsNonPublicImplementableAccessor(IMethodSymbol? accessor) 242if (member is IMethodSymbol { IsStatic: true, IsAbstract: true, MethodKind: MethodKind.UserDefinedOperator } method) 335private static bool IsInaccessibleImplementableAccessor(IMethodSymbol? accessor, ISymbol within) 439case IMethodSymbol method: 651IMethodSymbol { MethodKind: MethodKind.Ordinary, CanBeReferencedByName: true } => true, 652IMethodSymbol { MethodKind: MethodKind.UserDefinedOperator } => true, 671return member is IMethodSymbol
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IParameterSymbolExtensions.cs (2)
31ContainingSymbol: IMethodSymbol 63ContainingSymbol: IMethodSymbol
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions_Accessibility.cs (2)
107var funcPtrSignature = ((IFunctionPointerTypeSymbol)symbol).Signature; 156if (symbol is IMethodSymbol { MethodKind: MethodKind.BuiltinOperator })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (43)
87IMethodSymbol method => method.OverriddenMethod, 110IMethodSymbol? bestMethod = null; 128else if (member is IMethodSymbol method) 145IMethodSymbol method => ImmutableArray<ISymbol>.CastUp(method.ExplicitInterfaceImplementations), 199if (symbol is IMethodSymbol 241=> symbol is IMethodSymbol { MethodKind: MethodKind.AnonymousFunction }; 268=> symbol is IMethodSymbol { MethodKind: MethodKind.ReducedExtension }; 273/// <inheritdoc cref="IMethodSymbol.IsExtensionMethod"/> 275=> symbol is IMethodSymbol { IsExtensionMethod: true }; 278=> symbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction }; 287=> symbol is IMethodSymbol { MethodKind: MethodKind.Constructor }; 290=> symbol is IMethodSymbol { MethodKind: MethodKind.StaticConstructor }; 293=> symbol is IMethodSymbol { MethodKind: MethodKind.Destructor }; 296=> symbol is IMethodSymbol { MethodKind: MethodKind.UserDefinedOperator }; 299=> symbol is IMethodSymbol { MethodKind: MethodKind.Conversion }; 302=> symbol is IMethodSymbol { MethodKind: MethodKind.Ordinary }; 305=> symbol is IMethodSymbol { MethodKind: MethodKind.Ordinary or MethodKind.LocalFunction }; 344IMethodSymbol methodSymbol => methodSymbol.ReturnType, 355SymbolKind.Method => ((IMethodSymbol)symbol).Arity, 370symbol = ((IMethodSymbol)symbol).GetConstructedReducedFrom(); 375if (symbol.ContainingSymbol is IMethodSymbol method) 393var method = parameter.ContainingSymbol as IMethodSymbol; 426IMethodSymbol m => m.Parameters, 434IMethodSymbol m => m.TypeParameters, 455IMethodSymbol m => m.TypeArguments, 500if (symbol is IMethodSymbol method && method.Parameters.All(p => p.RefKind == RefKind.None)) 656=> (symbol as IMethodSymbol)?.MethodKind.IsPropertyAccessor() == true; 659=> symbol is IMethodSymbol { MethodKind: MethodKind.EventAdd or MethodKind.EventRaise or MethodKind.EventRemove }; 685var methodSymbol = symbol as IMethodSymbol; 709var getAwaiters = potentialGetAwaiters.OfType<IMethodSymbol>().Where(x => !x.Parameters.Any()); 713public static bool IsValidGetAwaiter(this IMethodSymbol symbol) 717private static bool VerifyGetAwaiter(IMethodSymbol getAwaiter) 731var methods = returnType.GetMembers().OfType<IMethodSymbol>(); 747public static bool IsValidGetEnumerator(this IMethodSymbol symbol) 751private static bool VerifyGetEnumerator(IMethodSymbol getEnumerator) 771if (!members.OfType<IMethodSymbol>().Any(x => 787public static bool IsValidGetAsyncEnumerator(this IMethodSymbol symbol) 791private static bool VerifyGetAsyncEnumerator(IMethodSymbol getAsyncEnumerator) 814if (!members.OfType<IMethodSymbol>().Any(x => x.Name == WellKnownMemberNames.MoveNextAsyncMethodName)) 896[NotNullWhen(true)] out IMethodSymbol? classicExtensionMethod) 898if (symbol is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
108public override bool VisitMethod(IMethodSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.cs (2)
412.SelectAccessibleMembers<IMethodSymbol>(WellKnownMemberNames.CollectionInitializerAddMethodName, within ?? typeSymbol) 413.OfType<IMethodSymbol>()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SignatureComparer.cs (12)
43SymbolKind.Method => HaveSameSignature((IMethodSymbol)symbol1, (IMethodSymbol)symbol2, caseSensitive), 67public static bool BadPropertyAccessor(IMethodSymbol? method1, IMethodSymbol? method2) 73public bool HaveSameSignature(IMethodSymbol method1, 74IMethodSymbol method2, 162var method1 = (IMethodSymbol)symbol1; 163var method2 = (IMethodSymbol)symbol2; 208private bool HaveSameSignatureAndConstraintsAndReturnType(IMethodSymbol method1, IMethodSymbol method2)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (6)
149public bool ReturnTypeEquals(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 194private static bool IsConstructedFromSelf(IMethodSymbol symbol) 200private static bool CheckContainingType(IMethodSymbol x) 231private static bool IsPartialMethodDefinitionPart(IMethodSymbol symbol) 234private static bool IsPartialMethodImplementationPart(IMethodSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (8)
124SymbolKind.Method => MethodsAreEquivalent((IMethodSymbol)x, (IMethodSymbol)y, equivalentTypesWithDifferingAssemblies), 170private bool MethodsAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, bool considerReturnRefKinds = false) 186var rx = x.ReducedFrom; 187var ry = y.ReducedFrom; 486internal bool ReturnTypesAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (2)
68SymbolKind.Method => CombineHashCodes((IMethodSymbol)x, currentHash), 112private int CombineHashCodes(IMethodSymbol x, int currentHash)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractCodeGenerationService.cs (7)
53public TDeclarationNode AddMethod<TDeclarationNode>(TDeclarationNode destination, IMethodSymbol method, CodeGenerationContextInfo info, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode 82public SyntaxNode? CreateMethodDeclaration(IMethodSymbol method, CodeGenerationDestination destination, CodeGenerationContextInfo info, CancellationToken cancellationToken) 125protected abstract TDeclarationNode AddMethod<TDeclarationNode>(TDeclarationNode destination, IMethodSymbol method, TCodeGenerationContextInfo info, IList<bool>? availableIndices, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode; 147public abstract SyntaxNode? CreateMethodDeclaration(IMethodSymbol method, CodeGenerationDestination destination, TCodeGenerationContextInfo info, CancellationToken cancellationToken); 348IMethodSymbol method => CreateMethodDeclaration(method, codeGenerationDestination, info, cancellationToken), 366IMethodSymbol method => AddMethod(currentDestination, method, info, availableIndices, cancellationToken), 446public Task<Document> AddMethodAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractFlagsEnumGenerator.cs (1)
44var ctor = attribute.AttributeConstructor;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationSymbolFactory.cs (28)
33IMethodSymbol? addMethod = null, 34IMethodSymbol? removeMethod = null, 35IMethodSymbol? raiseMethod = null) 52IMethodSymbol? getMethod, 53IMethodSymbol? setMethod, 80ImmutableArray<IParameterSymbol> parameters, IMethodSymbol? getMethod, IMethodSymbol? setMethod, 119public static IMethodSymbol CreateConstructorSymbol( 138public static IMethodSymbol CreateDestructorSymbol( 147internal static IMethodSymbol CreateMethodSymbol( 154ImmutableArray<IMethodSymbol> explicitInterfaceImplementations, 172public static IMethodSymbol CreateMethodSymbol( 176ImmutableArray<IMethodSymbol> explicitInterfaceImplementations, 191public static IMethodSymbol CreateOperatorSymbol( 219public static IMethodSymbol CreateConversionSymbol( 244public static IMethodSymbol CreateConversionSymbol( 356internal static IMethodSymbol CreateAccessorSymbol( 357IMethodSymbol accessor, 360ImmutableArray<IMethodSymbol> explicitInterfaceImplementations = default, 382public static IMethodSymbol CreateAccessorSymbol( 470var invokeMethod = CreateMethodSymbol( 510internal static IMethodSymbol CreateMethodSymbol( 511IMethodSymbol method, 515ImmutableArray<IMethodSymbol> explicitInterfaceImplementations = default, 549IMethodSymbol? getMethod = null, 550IMethodSymbol? setMethod = null, 575IMethodSymbol? addMethod = null, 576IMethodSymbol? removeMethod = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerator.cs (1)
44public static Task<Document> AddMethodDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\ICodeGenerationService.cs (3)
33SyntaxNode? CreateMethodDeclaration(IMethodSymbol method, CodeGenerationDestination destination, CodeGenerationContextInfo info, CancellationToken cancellationToken); 63TDeclarationNode AddMethod<TDeclarationNode>(TDeclarationNode destination, IMethodSymbol method, CodeGenerationContextInfo info, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode; 143Task<Document> AddMethodAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractMethodSymbol.cs (12)
15public new IMethodSymbol OriginalDefinition { get; protected set; } 45public abstract IMethodSymbol ConstructedFrom { get; } 48public abstract IMethodSymbol OverriddenMethod { get; } 49public abstract IMethodSymbol ReducedFrom { get; } 51public abstract IMethodSymbol ReduceExtensionMethod(ITypeSymbol receiverType); 52public abstract ImmutableArray<IMethodSymbol> ExplicitInterfaceImplementations { get; } 53public abstract IMethodSymbol PartialDefinitionPart { get; } 54public abstract IMethodSymbol PartialImplementationPart { get; } 105public IMethodSymbol AssociatedExtensionImplementation => null; 112public IMethodSymbol Construct(params ITypeSymbol[] typeArguments) 115public IMethodSymbol Construct(ImmutableArray<ITypeSymbol> typeArguments, ImmutableArray<CodeAnalysis.NullableAnnotation> typeArgumentNullableAnnotations) 121public IMethodSymbol ReduceExtensionMember(ITypeSymbol receiverType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractNamedTypeSymbol.cs (4)
76public abstract IMethodSymbol DelegateInvokeMethod { get; } 81public abstract ImmutableArray<IMethodSymbol> InstanceConstructors { get; } 82public abstract ImmutableArray<IMethodSymbol> StaticConstructors { get; } 83public abstract ImmutableArray<IMethodSymbol> Constructors { get; }
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAttributeData.cs (1)
21protected override IMethodSymbol CommonAttributeConstructor => null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructedMethodSymbol.cs (7)
69public override IMethodSymbol ConstructedFrom => _constructedFrom; 76public override IMethodSymbol OverriddenMethod 80public override IMethodSymbol ReducedFrom 87public override IMethodSymbol ReduceExtensionMethod(ITypeSymbol receiverType) 93public override ImmutableArray<IMethodSymbol> ExplicitInterfaceImplementations 97public override IMethodSymbol PartialDefinitionPart 101public override IMethodSymbol PartialImplementationPart
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructedNamedTypeSymbol.cs (4)
47public override IMethodSymbol DelegateInvokeMethod 60public override ImmutableArray<IMethodSymbol> InstanceConstructors 69public override ImmutableArray<IMethodSymbol> StaticConstructors 78public override ImmutableArray<IMethodSymbol> Constructors
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructorInfo.cs (10)
12private static readonly ConditionalWeakTable<IMethodSymbol, CodeGenerationConstructorInfo> s_constructorToInfoMap = new(); 38IMethodSymbol constructor, 50private static CodeGenerationConstructorInfo? GetInfo(IMethodSymbol method) 56public static ImmutableArray<SyntaxNode> GetThisConstructorArgumentsOpt(IMethodSymbol constructor) 59public static ImmutableArray<SyntaxNode> GetBaseConstructorArgumentsOpt(IMethodSymbol constructor) 62public static ImmutableArray<SyntaxNode> GetStatements(IMethodSymbol constructor) 65public static string GetTypeName(IMethodSymbol constructor) 68public static bool GetIsUnsafe(IMethodSymbol constructor) 71public static bool GetIsPrimaryConstructor(IMethodSymbol constructor) 83private static string GetTypeName(CodeGenerationConstructorInfo? info, IMethodSymbol constructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationDestructorInfo.cs (6)
14private static readonly ConditionalWeakTable<IMethodSymbol, CodeGenerationDestructorInfo> s_destructorToInfoMap = new(); 28IMethodSymbol destructor, 36private static CodeGenerationDestructorInfo GetInfo(IMethodSymbol method) 42public static ImmutableArray<SyntaxNode> GetStatements(IMethodSymbol destructor) 45public static string GetTypeName(IMethodSymbol destructor) 51private static string GetTypeName(CodeGenerationDestructorInfo info, IMethodSymbol constructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationEventSymbol.cs (6)
19IMethodSymbol? addMethod, 20IMethodSymbol? removeMethod, 21IMethodSymbol? raiseMethod) : CodeGenerationSymbol(containingType?.ContainingAssembly, containingType, attributes, declaredAccessibility, modifiers, name), IEventSymbol 28public IMethodSymbol? AddMethod { get; } = addMethod; 29public IMethodSymbol? RemoveMethod { get; } = removeMethod; 30public IMethodSymbol? RaiseMethod { get; } = raiseMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationMethodInfo.cs (9)
14private static readonly ConditionalWeakTable<IMethodSymbol, CodeGenerationMethodInfo> s_methodToInfoMap = new(); 40IMethodSymbol method, 52private static CodeGenerationMethodInfo GetInfo(IMethodSymbol method) 58public static ImmutableArray<SyntaxNode> GetStatements(IMethodSymbol method) 61public static ImmutableArray<SyntaxNode> GetHandlesExpressions(IMethodSymbol method) 64public static bool GetIsNew(IMethodSymbol method) 67public static bool GetIsUnsafe(IMethodSymbol method) 70public static bool GetIsPartial(IMethodSymbol method) 73public static bool GetIsAsyncMethod(IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationMethodSymbol.cs (8)
19public override ImmutableArray<IMethodSymbol> ExplicitInterfaceImplementations { get; } 29ImmutableArray<IMethodSymbol> explicitInterfaceImplementations, 98public override IMethodSymbol ConstructedFrom => this; 105public override IMethodSymbol OverriddenMethod => null; 107public override IMethodSymbol ReducedFrom => null; 112public override IMethodSymbol ReduceExtensionMethod(ITypeSymbol receiverType) 115public override IMethodSymbol PartialImplementationPart => null; 117public override IMethodSymbol PartialDefinitionPart => null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamedTypeSymbol.cs (7)
91public override IMethodSymbol DelegateInvokeMethod 96? this.GetMembers(WellKnownMemberNames.DelegateInvokeName).OfType<IMethodSymbol>().FirstOrDefault() 163public override ImmutableArray<IMethodSymbol> InstanceConstructors 168return [.. this.GetMembers().OfType<IMethodSymbol>().Where(m => m.MethodKind == MethodKind.Constructor && !m.IsStatic)]; 172public override ImmutableArray<IMethodSymbol> StaticConstructors 177return [.. this.GetMembers().OfType<IMethodSymbol>().Where(m => m.MethodKind == MethodKind.StaticConstructor && m.IsStatic)]; 181public override ImmutableArray<IMethodSymbol> Constructors
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationPropertySymbol.cs (4)
23IMethodSymbol getMethod, 24IMethodSymbol setMethod) : CodeGenerationSymbol(containingType?.ContainingAssembly, containingType, attributes, declaredAccessibility, modifiers, name), IPropertySymbol 33public IMethodSymbol GetMethod { get; } = getMethod; 34public IMethodSymbol SetMethod { get; } = setMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationSymbol.cs (2)
81public static IMethodSymbol ContainingMethod => null; 165public ImmutableArray<AttributeData> GetAttributes(IMethodSymbol attributeConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (2)
72public IMethodSymbol DeclaringMethod 76return this.ContainingSymbol as IMethodSymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\IMethodSymbolExtensions.cs (9)
18public static IMethodSymbol EnsureNonConflictingNames( 19this IMethodSymbol method, INamedTypeSymbol containingType, ISyntaxFactsService syntaxFacts) 39var updatedMethod = method.RenameTypeParameters(newTypeParameterNames); 43public static IMethodSymbol RenameTypeParameters(this IMethodSymbol method, ImmutableArray<string> newNames) 75public static IMethodSymbol RenameParameters( 76this IMethodSymbol method, ImmutableArray<string> parameterNames) 141public static IMethodSymbol RemoveInaccessibleAttributesAndAttributesOfTypes( 142this IMethodSymbol method, ISymbol accessibleWithin,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\ISymbolExtensions.cs (2)
15IMethodSymbol method => method.PartialDefinitionPart != null || method.PartialImplementationPart != null, 53IMethodSymbol method => method.ReduceExtensionMember(receiverType),
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateEqualsMethod.cs (8)
24public static IMethodSymbol CreateEqualsMethod( 48public static IMethodSymbol CreateEqualsMethod(this Compilation compilation, ImmutableArray<SyntaxNode> statements) 51private static IMethodSymbol CreateEqualsMethod( 75public static IMethodSymbol CreateIEquatableEqualsMethod( 88var methodSymbol = constructedEquatableType 90.OfType<IMethodSymbol>() 463from method in baseType.GetMembers(EqualsName).OfType<IMethodSymbol>() 500var constructor = CodeGenerationSymbolFactory.CreateConstructorSymbol(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateGetHashCodeMethod.cs (3)
98var baseHashCode = GetBaseGetHashCodeMethod(containingType); 192public static IMethodSymbol? GetBaseGetHashCodeMethod(INamedTypeSymbol containingType) 205from method in baseType.GetMembers(GetHashCodeName).OfType<IMethodSymbol>()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions.cs (1)
95this SyntaxGenerator generator, IMethodSymbol method, ISymbol throughMember)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\InitializeParameter\InitializeParameterHelpersCore.cs (1)
20if (parameter.ContainingSymbol is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SemanticsFactsService\AbstractSemanticFactsService.cs (13)
106protected static IMethodSymbol? FindDisposeMethod(Compilation compilation, ITypeSymbol? type, bool isAsync) 118if (impl is IMethodSymbol implMethod) 136.FirstOrDefault(m => m is IMethodSymbol { DeclaredAccessibility: Accessibility.Public, ReturnType: var returnType, Parameters.Length: 0 } && 137SymbolEqualityComparer.Default.Equals(returnType, valueTaskType)) is IMethodSymbol disposeMethodFromPattern) 152.FirstOrDefault(m => m is IMethodSymbol { DeclaredAccessibility: Accessibility.Public, ReturnsVoid: true, Parameters.Length: 0 }) is IMethodSymbol disposeMethodFromPattern) 165(INamedTypeSymbol?, IMethodSymbol?) GetIDisposableInterfaceAndDisposeMethod(string typeName, string methodName) 168return (disposableType, disposableType?.GetMembers().OfType<IMethodSymbol>().FirstOrDefault(m => m.Parameters.Length == 0 && m.Name == methodName)); 216public IMethodSymbol? GetGetAwaiterMethod(SemanticModel semanticModel, SyntaxNode node) 219public ImmutableArray<IMethodSymbol> GetDeconstructionAssignmentMethods(SemanticModel semanticModel, SyntaxNode node) 222public ImmutableArray<IMethodSymbol> GetDeconstructionForEachMethods(SemanticModel semanticModel, SyntaxNode node) 249public ImmutableArray<IMethodSymbol> GetLocalFunctionSymbols(Compilation compilation, ISymbol symbol, CancellationToken cancellationToken) 261public bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SemanticsFactsService\ISemanticFactsService.cs (1)
47IMethodSymbol? TryGetDisposeMethod(SemanticModel semanticModel, SyntaxNode node, CancellationToken cancellationToken);
SymbolDeclaredEventMustBeGeneratedForSourceSymbols.cs (2)
110AnalyzeMethodInvocation((IMethodSymbol)invocationSymbol, context); 114internal virtual void AnalyzeMethodInvocation(IMethodSymbol invocationSymbol, SyntaxNodeAnalysisContext context)
TemporaryArrayAsRefAnalyzer.cs (4)
47var temporaryArrayAsRef = (IMethodSymbol?)temporaryArrayExtensions.GetMembers("AsRef").SingleOrDefault(); 55private static void AnalyzeInvocation(OperationAnalysisContext context, IMethodSymbol temporaryArrayAsRef) 58var targetMethod = invocation.TargetMethod.ReducedFrom ?? invocation.TargetMethod;
Roslyn.Diagnostics.CSharp.Analyzers (124)
CSharpDoNotCapturePrimaryContructorParameters.cs (1)
41if (operation.Parameter.ContainingSymbol == context.ContainingSymbol || operation.Parameter.ContainingSymbol is not IMethodSymbol { MethodKind: MethodKind.Constructor })
CSharpDoNotUseDebugAssertForInterpolatedStrings.cs (2)
47IMethodSymbol? assertMethod = null; 51if (member is IMethodSymbol { Parameters: [{ Type.SpecialType: SpecialType.System_Boolean }, { Type.SpecialType: SpecialType.System_String }] } method)
CSharpSpecializedEnumerableCreationAnalyzer.cs (4)
21protected override void GetCodeBlockStartedAnalyzer(CompilationStartAnalysisContext context, INamedTypeSymbol genericEnumerableSymbol, IMethodSymbol genericEmptyEnumerableSymbol) 28public CodeBlockStartedAnalyzer(INamedTypeSymbol genericEnumerableSymbol, IMethodSymbol genericEmptyEnumerableSymbol) 33protected override void GetSyntaxAnalyzer(CodeBlockStartAnalysisContext<SyntaxKind> context, INamedTypeSymbol genericEnumerableSymbol, IMethodSymbol genericEmptyEnumerableSymbol) 41public SyntaxAnalyzer(INamedTypeSymbol genericEnumerableSymbol, IMethodSymbol genericEmptyEnumerableSymbol)
src\4f0789c9734b88bf\CSharpInitializeParameterService.cs (1)
25protected override SyntaxNode? GetAccessorBody(IMethodSymbol accessor, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\CodeStyle\TypeStyle\TypeStyleHelper.cs (4)
102if (semanticModel.GetSymbolInfo(memberName, cancellationToken).Symbol is not IMethodSymbol methodSymbol) 117IMethodSymbol methodSymbol, 138IMethodSymbol methodSymbol, 171private static bool IsPossibleConversionMethod(IMethodSymbol methodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (2)
370if (symbol is IMethodSymbol 535return symbolInfo.GetBestOrAllSymbols().Any() && !symbolInfo.GetBestOrAllSymbols().Any(static s => s is IMethodSymbol);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ITypeSymbolExtensions.cs (1)
40public static bool TryGetPrimaryConstructor(this INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (4)
442if (semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken).Symbol is IMethodSymbol member && index < member.Parameters.Length) 465public static IMethodSymbol GetRequiredDeclaredSymbol(this SemanticModel semanticModel, ConstructorDeclarationSyntax syntax, CancellationToken cancellationToken) 471public static IMethodSymbol GetRequiredDeclaredSymbol(this SemanticModel semanticModel, LocalFunctionStatementSyntax syntax, CancellationToken cancellationToken) 489public static IMethodSymbol GetRequiredDeclaredSymbol(this SemanticModel semanticModel, BaseMethodDeclarationSyntax syntax, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SyntaxNodeExtensions.cs (1)
813if (symbol is IMethodSymbol { Parameters: [{ Type.OriginalDefinition: var parameterType }, ..] } &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SemanticFacts\CSharpSemanticFacts.cs (15)
76if (symbol is IMethodSymbol { MethodKind: MethodKind.Conversion }) 195public IMethodSymbol? GetGetAwaiterMethod(SemanticModel semanticModel, SyntaxNode node) 206public ImmutableArray<IMethodSymbol> GetDeconstructionAssignmentMethods(SemanticModel semanticModel, SyntaxNode node) 210using var builder = TemporaryArray<IMethodSymbol>.Empty; 218public ImmutableArray<IMethodSymbol> GetDeconstructionForEachMethods(SemanticModel semanticModel, SyntaxNode node) 222using var builder = TemporaryArray<IMethodSymbol>.Empty; 230private static void FlattenDeconstructionMethods(DeconstructionInfo deconstruction, ref TemporaryArray<IMethodSymbol> builder) 232var method = deconstruction.Method; 396symbolInfo.CandidateSymbols.All(static s => s is IMethodSymbol)) 421var refined = overloadResolution.RefineOverload(symbolInfo, symbolInfo.CandidateSymbols.SelectAsArray(s => (IMethodSymbol)s)); 434public ImmutableArray<IMethodSymbol> GetLocalFunctionSymbols(Compilation compilation, ISymbol symbol, CancellationToken cancellationToken) 436using var _ = ArrayBuilder<IMethodSymbol>.GetInstance(out var builder); 445if (localFunctionSymbol is IMethodSymbol methodSymbol) 484public bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (8)
745if (memberSymbol is not IMethodSymbol methodSymbol) 752for (var current = methodSymbol; current != null; current = current.OverriddenMethod) 1111if (sym is IMethodSymbol { MethodKind: MethodKind.UserDefinedOperator } op) 1375if (oldSymbolInfo is IMethodSymbol { MethodKind: not (MethodKind.LocalFunction or MethodKind.LambdaMethod) } && 1545if (originalMemberSymbol is not IMethodSymbol { MethodKind: MethodKind.DelegateInvoke } originalMethodSymbol || 1546rewrittenMemberSymbol is not IMethodSymbol { MethodKind: MethodKind.DelegateInvoke } rewrittenMethodSymbol) 1620if (originalMemberSymbol is IMethodSymbol originalMethodSymbol && 1621rewrittenMemberSymbol is IMethodSymbol rewrittenMethodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\CSharpLightweightOverloadResolution.cs (5)
18public IMethodSymbol? RefineOverload(SymbolInfo symbolInfo, ImmutableArray<IMethodSymbol> candidates) 21public (IMethodSymbol? method, int parameterIndex) RefineOverloadAndPickParameter(SymbolInfo symbolInfo, ImmutableArray<IMethodSymbol> candidates) 24public int FindParameterIndexIfCompatibleMethod(IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (1)
888out IMethodSymbol getEnumeratorMethod,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseImplicitTypeHelper.cs (1)
213if (memberGroup[0] is not IMethodSymbol { TypeParameters.IsEmpty: true } method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ConstructorGenerator.cs (5)
28IMethodSymbol constructor, 44IMethodSymbol constructor, 90IMethodSymbol constructor) 108IMethodSymbol constructor) 117private static SyntaxTokenList GenerateModifiers(IMethodSymbol constructor, CSharpCodeGenerationContextInfo info)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ConversionGenerator.cs (4)
24IMethodSymbol method, 36IMethodSymbol method, 47IMethodSymbol method, 103private static SyntaxTokenList GenerateModifiers(IMethodSymbol method, CodeGenerationDestination destination)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpCodeGenerationService.cs (4)
115protected override TDeclarationNode AddMethod<TDeclarationNode>(TDeclarationNode destination, IMethodSymbol method, CSharpCodeGenerationContextInfo info, IList<bool>? availableIndices, CancellationToken cancellationToken) 199var getMethod = property.GetMethod; 214var setMethod = property.SetMethod; 673IMethodSymbol method, CodeGenerationDestination destination, CSharpCodeGenerationContextInfo info, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\DestructorGenerator.cs (3)
26IMethodSymbol destructor, 42IMethodSymbol destructor, CSharpCodeGenerationContextInfo info, CancellationToken cancellationToken) 66IMethodSymbol constructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\EventGenerator.cs (4)
173IMethodSymbol? accessor, 185IMethodSymbol accessor, 194private static BlockSyntax GenerateBlock(IMethodSymbol accessor) 203IMethodSymbol? accessor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\MethodGenerator.cs (12)
32IMethodSymbol method, 45IMethodSymbol method, 60IMethodSymbol method, 75IMethodSymbol method, CodeGenerationDestination destination, 93IMethodSymbol method, 112IMethodSymbol method, CodeGenerationDestination destination, 165IMethodSymbol method, CodeGenerationDestination destination, 220IMethodSymbol method, bool isExplicit, CSharpCodeGenerationContextInfo info) 231IMethodSymbol method) 238private static SyntaxList<TypeParameterConstraintClauseSyntax> GenerateDefaultConstraints(IMethodSymbol method) 312IMethodSymbol method, CSharpCodeGenerationContextInfo info) 318IMethodSymbol method,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\NamedTypeGenerator.cs (3)
114var primaryConstructor = members.OfType<IMethodSymbol>().FirstOrDefault(m => CodeGenerationConstructorInfo.GetIsPrimaryConstructor(m)); 232var invokeMethod = namedType.DelegateInvokeMethod;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\OperatorGenerator.cs (4)
25IMethodSymbol method, 37IMethodSymbol method, 75IMethodSymbol method, 112IMethodSymbol method,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ParameterGenerator.cs (1)
80parameter.ContainingSymbol is IMethodSymbol methodSymbol &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\PropertyGenerator.cs (5)
293IMethodSymbol? accessor, 307IMethodSymbol accessor, 323private static BlockSyntax GenerateBlock(IMethodSymbol accessor) 332IMethodSymbol? accessor) 342IMethodSymbol accessor,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\StatementGenerator.cs (1)
17internal static BlockSyntax GenerateBlock(IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Editing\CSharpImportAdder.cs (2)
120if (member is IMethodSymbol method && method.IsExtensionMethod) 227if (symbol is IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (4)
1043IMethodSymbol m => m.Arity > 0, 1051return symbols.All(static s => s is INamedTypeSymbol or IMethodSymbol); 2025while (enclosingSymbol is IMethodSymbol { MethodKind: MethodKind.LocalFunction or MethodKind.AnonymousFunction } method) 2841if (symbol is IMethodSymbol && expression is not InvocationExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\TypeSyntaxExtensions.cs (1)
55public static TypeSyntax GenerateReturnTypeSyntax(this IMethodSymbol method)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\WithElementSyntaxExtensions.cs (4)
17public static ImmutableArray<IMethodSymbol> GetCreationMethods( 37ImmutableArray<IMethodSymbol>? TryGetInterfaceItems() 56var constructor = constructedListType.InstanceConstructors.FirstOrDefault( 62ImmutableArray<IMethodSymbol>? TryGetCollectionBuilderItems()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSemanticFactsService.cs (1)
111public IMethodSymbol? TryGetDisposeMethod(SemanticModel semanticModel, SyntaxNode node, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (15)
112if (allSymbols is [IMethodSymbol method]) 396var methods = info.GetBestOrAllSymbols().OfType<IMethodSymbol>(); 480var methods = info.GetBestOrAllSymbols().OfType<IMethodSymbol>(); 488argumentOpt == null && info.Symbol is IMethodSymbol method && method.Parameters.All(p => p.IsOptional || p.IsParams)) 492.OfType<IMethodSymbol>(); 563var methods = info.GetBestOrAllSymbols().OfType<IMethodSymbol>(); 592private IEnumerable<TypeInferenceInfo> InferTypeInAttributeArgument(int index, IEnumerable<IMethodSymbol> methods, AttributeArgumentSyntax argumentOpt = null) 595private IEnumerable<TypeInferenceInfo> InferTypeInArgument(int index, IEnumerable<IMethodSymbol> methods, ArgumentSyntax argumentOpt, InvocationExpressionSyntax parentInvocationExpressionToTypeInfer) 620private static IMethodSymbol Instantiate(IMethodSymbol method, IList<ITypeSymbol> invocationTypes) 1391.Cast<IMethodSymbol>() 1409.Cast<IMethodSymbol>() 1499var addMethodParameterTypes = addMethodSymbols.Select(m => ((IMethodSymbol)m).Parameters[0]).Select(p => new TypeInferenceInfo(p.Type)); 1700var invoke = type.DelegateInvokeMethod; 2122var isAsync = symbol is IMethodSymbol methodSymbol && methodSymbol.IsAsync;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\InitializeParameter\InitializeParameterHelpers.cs (1)
252public static SyntaxNode? GetAccessorBody(IMethodSymbol accessor, CancellationToken cancellationToken)
Roslyn.Diagnostics.VisualBasic.Analyzers (34)
BasicSpecializedEnumerableCreationAnalyzer.vb (4)
16Protected Overrides Sub GetCodeBlockStartedAnalyzer(context As CompilationStartAnalysisContext, genericEnumerableSymbol As INamedTypeSymbol, genericEmptyEnumerableSymbol As IMethodSymbol) 23Public Sub New(genericEnumerableSymbol As INamedTypeSymbol, genericEmptyEnumerableSymbol As IMethodSymbol) 27Protected Overrides Sub GetSyntaxAnalyzer(context As CodeBlockStartAnalysisContext(Of SyntaxKind), genericEnumerableSymbol As INamedTypeSymbol, genericEmptyEnumerableSymbol As IMethodSymbol) 35Public Sub New(genericEnumerableSymbol As INamedTypeSymbol, genericEmptyEnumerableSymbol As IMethodSymbol)
BasicSymbolDeclaredEventMustBeGeneratedForSourceSymbols.vb (1)
71Friend Overrides Sub AnalyzeMethodInvocation(invocationSymbol As IMethodSymbol, context As SyntaxNodeAnalysisContext)
src\f736901a33c2b55b\VisualBasicTypeInferenceService.TypeInferrer.vb (7)
337Dim methods = symbols.OfType(Of IMethodSymbol)() 368Dim methods = symbols.OfType(Of IMethodSymbol)() 712Return lambdaTypes.Where(Function(t) t.InferredType.TypeKind = TypeKind.Delegate).SelectMany(Function(t) t.InferredType.GetMembers(WellKnownMemberNames.DelegateInvokeName).OfType(Of IMethodSymbol)().Select(Function(m) New TypeInferenceInfo(m.ReturnType))) 738Dim memberMethod = TryCast(memberSymbol, IMethodSymbol) 769Dim memberType = If(TryCast(memberSymbol, IMethodSymbol)?.ReturnType, 1037Dim expressionAddMethodSymbols = SemanticModel.GetCollectionInitializerSymbolInfo(expression).GetAllSymbols().OfType(Of IMethodSymbol) 1049Dim initializerAddMethodSymbols = SemanticModel.GetCollectionInitializerSymbolInfo(collectionInitializer).GetAllSymbols().OfType(Of IMethodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\ExpressionSyntaxExtensions.vb (5)
154Dim methodSymbol = TryCast(symbolInfo.GetAnySymbol(), IMethodSymbol) 299If TypeOf symbol Is IMethodSymbol Then 300Dim method = DirectCast(symbol, IMethodSymbol) 395Dim method = TryCast(semanticModel.GetSymbolInfo(memberAccess, cancellationToken).Symbol, IMethodSymbol) 512Return Not symbolInfo.GetBestOrAllSymbols().OfType(Of IMethodSymbol)().Any() AndAlso
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\SemanticModelExtensions.vb (1)
244Dim member = TryCast(semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken).Symbol, IMethodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\SyntaxNodeExtensions.vb (1)
1085Dim method = TryCast(symbol, IMethodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Services\SemanticFacts\VisualBasicSemanticFacts.vb (8)
200Public Function GetGetAwaiterMethod(model As SemanticModel, node As SyntaxNode) As IMethodSymbol Implements ISemanticFacts.GetGetAwaiterMethod 210Public Function GetDeconstructionAssignmentMethods(model As SemanticModel, deconstruction As SyntaxNode) As ImmutableArray(Of IMethodSymbol) Implements ISemanticFacts.GetDeconstructionAssignmentMethods 211Return ImmutableArray(Of IMethodSymbol).Empty 214Public Function GetDeconstructionForEachMethods(model As SemanticModel, deconstruction As SyntaxNode) As ImmutableArray(Of IMethodSymbol) Implements ISemanticFacts.GetDeconstructionForEachMethods 215Return ImmutableArray(Of IMethodSymbol).Empty 278Public Function GetLocalFunctionSymbols(compilation As Compilation, symbol As ISymbol, cancellationToken As CancellationToken) As ImmutableArray(Of IMethodSymbol) Implements ISemanticFacts.GetLocalFunctionSymbols 279Return ImmutableArray(Of IMethodSymbol).Empty 338Public Function TryGetPrimaryConstructor(typeSymbol As INamedTypeSymbol, <NotNullWhen(True)> ByRef primaryConstructor As IMethodSymbol) As Boolean Implements ISemanticFacts.TryGetPrimaryConstructor
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\PropertyGenerator.vb (3)
120accessor As IMethodSymbol, 147Private Function GenerateAccessorStatements(accessor As IMethodSymbol) As SyntaxList(Of StatementSyntax) 157accessor As IMethodSymbol,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\VisualBasicCodeGenerationService.vb (2)
134method As IMethodSymbol, 526Public Overrides Function CreateMethodDeclaration(method As IMethodSymbol,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Editing\VisualBasicImportAdder.vb (2)
107Dim method = TryCast(member, IMethodSymbol) 219Dim method = TryCast(_model.GetSymbolInfo(node.Name, cancellationToken).GetAnySymbol(), IMethodSymbol)
System.Private.CoreLib.Generators (3)
IntrinsicsInSystemPrivateCoreLibAnalyzer.cs (3)
167var methodSymbol = (IMethodSymbol)context.Symbol; 451private static void AnalyzeOperation(IOperation operation, IMethodSymbol methodSymbol, OperationAnalysisContext context, IntrinsicsAnalyzerOnLoadData onLoadData)
System.Text.Json.SourceGeneration (17)
Helpers\RoslynExtensions.cs (3)
107public static bool CanUseDefaultConstructorForDeserialization(this ITypeSymbol type, out IMethodSymbol? constructorInfo) 119public static IEnumerable<IMethodSymbol> GetExplicitlyDeclaredInstanceConstructors(this INamedTypeSymbol type) 430foreach (IMethodSymbol ctor in named.InstanceConstructors)
JsonSourceGenerator.Parser.cs (14)
784if (type.CanUseDefaultConstructorForDeserialization(out IMethodSymbol? defaultCtor)) 814if (!TryGetDeserializationConstructor(type, useDefaultCtorInAnnotatedStructs, out IMethodSymbol? constructor)) 1580IEnumerable<IMethodSymbol> creationMembers = namedType.InstanceConstructors; 1585foreach (IMethodSymbol member in creationMembers) 2740IMethodSymbol? constructor, 2941IMethodSymbol? accessibleParameterlessCtor = namedConverterType?.Constructors.FirstOrDefault(c => c.Parameters.Length == 0 && IsSymbolAccessibleWithin(c, within: contextType)); 2967IMethodSymbol? accessibleParameterlessCtor = namedClassifierType?.Constructors.FirstOrDefault(c => c.Parameters.Length == 0 && IsSymbolAccessibleWithin(c, within: contextType)); 3212out IMethodSymbol? deserializationCtor) 3214IMethodSymbol? ctorWithAttribute = null; 3215IMethodSymbol? publicParameterlessCtor = null; 3216IMethodSymbol? lonePublicCtor = null; 3224IMethodSymbol[] publicCtors = namedType.GetExplicitlyDeclaredInstanceConstructors().Where(ctor => ctor.DeclaredAccessibility is Accessibility.Public).ToArray(); 3231foreach (IMethodSymbol constructor in publicCtors) 3250foreach (IMethodSymbol constructor in namedType.GetExplicitlyDeclaredInstanceConstructors().Where(ctor => ctor.DeclaredAccessibility is not Accessibility.Public))
System.Text.RegularExpressions.Generator (2)
RegexGenerator.Parser.cs (2)
56ISymbol? regexMemberSymbol = context.TargetSymbol is IMethodSymbol or IPropertySymbol ? context.TargetSymbol : null; 113if (regexMemberSymbol is IMethodSymbol regexMethodSymbol)
System.Windows.Forms.Analyzers.CSharp (6)
System\Windows\Forms\CSharp\Analyzers\AvoidPassingTaskWithoutCancellationToken\AvoidPassingTaskWithoutCancellationTokenAnalyzer.cs (3)
33IMethodSymbol? methodSymbol = null; 38methodSymbol = context.SemanticModel.GetSymbolInfo(memberAccessExpr).Symbol as IMethodSymbol; 42methodSymbol = context.SemanticModel.GetSymbolInfo(identifierNameSyntax).Symbol as IMethodSymbol;
System\Windows\Forms\CSharp\Analyzers\MissingPropertySerializationConfiguration\MissingPropertySerializationConfigurationAnalyzer.cs (3)
60if (propertySymbol.SetMethod is not IMethodSymbol propertySetter 87IMethodSymbol? shouldSerializeMethod = classSymbol 89.OfType<IMethodSymbol>()
System.Windows.Forms.Analyzers.VisualBasic (5)
Analyzers\AvoidPassingTaskWithoutCancellationToken\AvoidPassingTaskWithoutCancellationTokenAnalyzer.vb (3)
34Dim methodSymbol As IMethodSymbol = Nothing 39methodSymbol = TryCast(context.SemanticModel.GetSymbolInfo(memberAccessExpr).Symbol, IMethodSymbol) 42methodSymbol = TryCast(context.SemanticModel.GetSymbolInfo(identifierNameSyntax).Symbol, IMethodSymbol)
Analyzers\MissingPropertySerializationConfiguration\MissingPropertySerializationConfigurationDiagnosticAnalyzer.vb (2)
86Dim shouldSerializeMethod As IMethodSymbol = classSymbol.GetMembers(). 87OfType(Of IMethodSymbol)().