2 instantiations of SymbolKey
Microsoft.CodeAnalysis.Workspaces (2)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (2)
130=> new(CreateString(symbol, cancellationToken)); 232/// and used later with <see cref="SymbolKey(string)"/> to then try to resolve back
187 references to SymbolKey
Microsoft.CodeAnalysis.CSharp.Workspaces (1)
Rename\CSharpRenameRewriterLanguageService.cs (1)
543(Equals(symbol, _renamedSymbol) || SymbolKey.GetComparer(ignoreCase: true, ignoreAssemblyKeys: false).Equals(symbol.GetSymbolKey(), _renamedSymbol.GetSymbolKey())))
Microsoft.CodeAnalysis.ExternalAccess.OmniSharp (2)
MetadataAsSource\OmniSharpMetadataAsSourceHelpers.cs (2)
21var symbolKey = SymbolKey.Create(symbol, cancellationToken);
Microsoft.CodeAnalysis.Features (147)
CallHierarchy\CallHierarchyItemId.cs (3)
14=> new(SymbolKey.CreateString(symbol, cancellationToken), project.Id); 23if (!SymbolKey.CanCreate(symbol, cancellationToken)) 43var symbol = SymbolKey.ResolveString(SymbolKeyData, compilation, cancellationToken: cancellationToken).GetAnySymbol();
Common\TaggedText.cs (1)
128=> symbol is null ? null : SymbolKey.CreateString(symbol);
Completion\Providers\ImportCompletionProvider\AbstractExtensionMethodImportCompletionProvider.cs (1)
67var receiverTypeKey = SymbolKey.CreateString(receiverTypeSymbol, cancellationToken);
Completion\Providers\ImportCompletionProvider\AbstractTypeImportCompletionService.cs (1)
246SymbolKey.Create(assembly, cancellationToken),
Completion\Providers\ImportCompletionProvider\ExtensionMemberImportCompletionHelper.cs (3)
71var receiverTypeSymbolKeyData = SymbolKey.CreateString(receiverTypeSymbol, cancellationToken); 72var targetTypesSymbolKeyData = targetTypesSymbols.SelectAsArray(s => SymbolKey.CreateString(s, cancellationToken)); 185SymbolKey.CreateString(bestSymbol, cancellationToken),
Completion\Providers\ImportCompletionProvider\ImportCompletionItem.cs (2)
201if (SymbolKey.ResolveString(methodSymbolKey, compilation).GetAnySymbol() is IMethodSymbol methodSymbol) 208if (SymbolKey.ResolveString(receiverTypeKey, compilation).GetAnySymbol() is ITypeSymbol receiverTypeSymbol)
Completion\Providers\ImportCompletionProvider\TypeImportCompletionCacheEntry.cs (4)
17public SymbolKey AssemblySymbolKey { get; } 41SymbolKey assemblySymbolKey, 159public sealed class Builder(SymbolKey assemblySymbolKey, Checksum checksum, string language, string genericTypeSuffix, EditorBrowsableInfo editorBrowsableInfo, ImportCompletionCommitBehavior commitBehavior) : IDisposable 161private readonly SymbolKey _assemblySymbolKey = assemblySymbolKey;
Completion\Providers\SymbolCompletionItem.cs (2)
132=> SymbolKey.CreateString(symbol); 189=> SymbolKey.ResolveString(id, compilation).GetAnySymbol();
DocumentationComments\AbstractDocumentationCommentFormattingService.cs (1)
472return (target: SymbolKey.CreateString(symbol), hint: symbol.ToMinimalDisplayString(semanticModel, position, format ?? SymbolDisplayFormat.MinimallyQualifiedFormat));
EditAndContinue\AbstractEditAndContinueAnalyzer.cs (40)
2692PooledDictionary<ISymbol, SymbolKey> symbolKeyCache) 2694public SymbolKey GetKey(ISymbol symbol, CancellationToken cancellationToken) 2695=> symbolKeyCache.GetOrAdd(symbol, static (symbol, cancellationToken) => SymbolKey.Create(symbol, cancellationToken), cancellationToken); 2729using var _3 = PooledDictionary<ISymbol, SymbolKey>.GetInstance(out var symbolKeyCache); 2842var containingTypeSymbolKey = symbolCache.GetKey(containingType, cancellationToken); 2889var typeKey = symbolCache.GetKey(newType, cancellationToken); 2985var containingTypeKey = symbolCache.GetKey(oldContainingType, cancellationToken); 3110var containingTypeKey = symbolCache.GetKey(newContainingType, cancellationToken); 3458var containingSymbolKey = symbolCache.GetKey(oldSymbol.ContainingType, cancellationToken); 3481var symbolKey = symbolCache.GetKey(symbol, cancellationToken); 3491: (SymbolKey?)null; 3600var symbolKey = symbolCache.GetKey(newSymbol, cancellationToken); 3642static ISymbol? Resolve(ISymbol symbol, SymbolKey symbolKey, Compilation compilation, CancellationToken cancellationToken) 3754SymbolKey containingTypeKey, 3806SymbolKey containingTypeKey, 3821if (SymbolKey.Create(deconstructor, cancellationToken).Resolve(otherCompilation, cancellationToken: cancellationToken).Symbol != null) 3926private static void AddDeleteEditsForMemberAndAccessors(ArrayBuilder<SemanticEditInfo> semanticEdits, ISymbol oldSymbol, SymbolKey deletedSymbolContainer, CancellationToken cancellationToken) 3979SymbolKey containingSymbolKey, 4007semanticEdits.Add(SemanticEditInfo.CreateUpdate(SymbolKey.Create(oldSymbol, cancellationToken), syntaxMaps: default, partialType: null)); 4069var newType = SymbolKey.Create(oldType, cancellationToken).Resolve(newModel.Compilation, cancellationToken: cancellationToken).Symbol; 4100var oldType = SymbolKey.Create(newType, cancellationToken).Resolve(oldModel.Compilation, cancellationToken: cancellationToken).Symbol; 4193var oldOutermostReloadableTypeKey = SymbolKey.Create(oldOutermostReloadableType, cancellationToken); 4235private static readonly IEqualityComparer<SymbolKey> s_symbolKeyComparer = SymbolKey.GetComparer(); 4809var containingSymbolKey = SymbolKey.Create(oldContainingMember.ContainingSymbol, cancellationToken); 4832semanticEdits.Add(SemanticEditInfo.CreateUpdate(SymbolKey.Create(beginInvokeMethod, cancellationToken), syntaxMaps: default, partialType: null)); 5106var symbolKey = SymbolKey.Create(member, cancellationToken); 5251var symbolKey = SymbolKey.Create(oldSymbol, cancellationToken); 5585var typeKey = SymbolKey.Create(newType, cancellationToken); 5586var partialType = isPartialEdit ? typeKey : (SymbolKey?)null; 5620var newCtorKey = SymbolKey.Create(newCtor, cancellationToken); 5761SymbolKey.Create(oldType.InstanceConstructors.Single(c => c.Parameters is []), cancellationToken), 7113var oldConstructor = SymbolKey.Create(newPrimaryConstructor, cancellationToken).Resolve(oldCompilation, cancellationToken: cancellationToken).Symbol; 7126var oldParameter = SymbolKey.Create(newPrimaryParameter, cancellationToken).Resolve(oldCompilation, cancellationToken: cancellationToken).Symbol;
EditAndContinue\EditSession.cs (3)
904var symbolKeyComparer = SymbolKey.GetComparer(ignoreCase: false, ignoreAssemblyKeys: true); 905var mergedUpdateEditSyntaxMaps = new Dictionary<SymbolKey, (Func<SyntaxNode, SyntaxNode?>? matchingNodes, Func<SyntaxNode, RuntimeRudeEdit?>? runtimeRudeEdits)>(symbolKeyComparer); 1038SymbolKey typeKey,
EditAndContinue\SemanticEditInfo.cs (28)
44SymbolKey symbol, 46SymbolKey? partialType, 47SymbolKey? deletedSymbolContainer) 58public static SemanticEditInfo CreateInsert(SymbolKey symbol, SymbolKey? partialType) 64var partialType = symbol.IsPartialImplementation() ? SymbolKey.Create(symbol.ContainingType, cancellationToken) : (SymbolKey?)null; 65return CreateInsert(SymbolKey.Create(symbol, cancellationToken), partialType); 68public static SemanticEditInfo CreateUpdate(SymbolKey symbol, SyntaxMaps syntaxMaps, SymbolKey? partialType) 74var partialType = symbol.IsPartialImplementation() ? SymbolKey.Create(symbol.ContainingType, cancellationToken) : (SymbolKey?)null; 75return CreateUpdate(SymbolKey.Create(symbol, cancellationToken), syntaxMaps, partialType); 78public static SemanticEditInfo CreateReplace(SymbolKey symbol, SymbolKey? partialType) 81public static SemanticEditInfo CreateDelete(SymbolKey symbol, SymbolKey deletedSymbolContainer, SymbolKey? partialType) 84public static SemanticEditInfo CreateDelete(ISymbol symbol, SymbolKey containingSymbolKey, CancellationToken cancellationToken) 87var partialType = symbol.IsPartialImplementation() ? containingSymbolKey : (SymbolKey?)null; 88return CreateDelete(SymbolKey.Create(symbol, cancellationToken), containingSymbolKey, partialType); 101/// We use <see cref="SymbolKey"/> to represent the symbol rather then <see cref="ISymbol"/>, 103/// When the edits are processed we map the <see cref="SymbolKey"/> to the current compilation. 105public SymbolKey Symbol { get; } 110/// We use <see cref="SymbolKey"/> to represent the symbol rather then <see cref="ISymbol"/>, 112/// When the edits are processed we map the <see cref="SymbolKey"/> to the current compilation. 114public SymbolKey? DeletedSymbolContainer { get; } 126public SymbolKey? PartialType { get; }
EncapsulateField\AbstractEncapsulateFieldService.cs (1)
122var fieldSymbolKeys = fields.SelectAsArray(f => SymbolKey.CreateString(f, cancellationToken));
FindUsages\DefinitionItem.cs (1)
42/// metadata-as-source for metadata symbols. We need to store the <see cref="SymbolKey"/>
FindUsages\DefinitionItem.DefaultDefinitionItem.cs (1)
73var symbol = SymbolKey.ResolveString(symbolKey, compilation, cancellationToken: cancellationToken).Symbol;
FindUsages\DefinitionItemFactory.cs (1)
154.Add(DefinitionItem.MetadataSymbolKey, SymbolKey.CreateString(symbol))
InlineHints\InlineHintHelpers.cs (1)
28var symbolKey = originalSymbol.GetSymbolKey(cancellationToken);
MetadataAsSource\DecompilationMetadataAsSourceFileProvider.cs (9)
69var symbolId = SymbolKey.Create(symbol, cancellationToken); 401return new UniqueDocumentKey(peMetadataReference.FilePath, peMetadataReference.GetMetadataId(), project.Language, SymbolKey.Create(topLevelNamedType, cancellationToken), signaturesOnly); 406return new UniqueDocumentKey(containingAssembly.Identity, containingAssembly.GetMetadata()?.Id, project.Language, SymbolKey.Create(topLevelNamedType, cancellationToken), signaturesOnly); 412private static readonly IEqualityComparer<SymbolKey> s_symbolIdComparer = SymbolKey.GetComparer(ignoreCase: false, ignoreAssemblyKeys: true); 426private readonly SymbolKey _symbolId; 429public UniqueDocumentKey(string filePath, MetadataId? metadataId, string language, SymbolKey symbolId, bool signaturesOnly) 440public UniqueDocumentKey(AssemblyIdentity assemblyIdentity, MetadataId? metadataId, string language, SymbolKey symbolId, bool signaturesOnly)
MetadataAsSource\MetadataAsSourceFileService.cs (1)
257internal async Task<SymbolMappingResult?> MapSymbolAsync(Document document, SymbolKey symbolId, CancellationToken cancellationToken)
MetadataAsSource\MetadataAsSourceHelpers.cs (1)
70public static async Task<Location> GetLocationInGeneratedSourceAsync(SymbolKey symbolId, Document generatedDocument, CancellationToken cancellationToken)
MetadataAsSource\SymbolMappingServiceFactory.cs (2)
32public Task<SymbolMappingResult?> MapSymbolAsync(Document document, SymbolKey symbolId, CancellationToken cancellationToken) 41=> MapSymbolAsync(document, SymbolKey.Create(symbol, cancellationToken), cancellationToken);
MoveStaticMembers\MoveStaticMembersWithDialogCodeAction.cs (1)
378var symbolKey = member.GetSymbolKey(cancellationToken);
NavigationBar\IRemoteNavigationBarItemService.cs (12)
50public readonly SymbolKey? DestinationTypeSymbolKey; 57public readonly SymbolKey? EventSymbolKey; 62public readonly SymbolKey? MethodToReplicateSymbolKey; 75SymbolKey? destinationTypeSymbolKey, 77SymbolKey? eventSymbolKey, 78SymbolKey? methodToReplicateSymbolKey) 117public static SerializableNavigationBarItem GenerateFinalizer(string text, SymbolKey destinationTypeSymbolKey) 120public static SerializableNavigationBarItem GenerateEventHandler(string eventName, Glyph glyph, string containerName, SymbolKey eventSymbolKey, SymbolKey destinationTypeSymbolKey) 123public static SerializableNavigationBarItem GenerateMethod(string text, Glyph glyph, SymbolKey destinationTypeSymbolId, SymbolKey methodToReplicateSymbolId) 126public static SerializableNavigationBarItem GenerateDefaultConstructor(string text, SymbolKey destinationTypeSymbolKey)
NavigationBar\NavigationBarItems\RoslynNavigationBarItem.AbstractGenerateCodeItem.cs (2)
13public readonly SymbolKey DestinationTypeSymbolKey; 15protected AbstractGenerateCodeItem(RoslynNavigationBarItemKind kind, string text, Glyph glyph, SymbolKey destinationTypeSymbolKey)
NavigationBar\NavigationBarItems\RoslynNavigationBarItem.GenerateDefaultConstructorItem.cs (1)
11public sealed class GenerateDefaultConstructor(string text, SymbolKey destinationTypeSymbolKey) : AbstractGenerateCodeItem(RoslynNavigationBarItemKind.GenerateDefaultConstructor, text, Glyph.MethodPublic, destinationTypeSymbolKey), IEquatable<GenerateDefaultConstructor>
NavigationBar\NavigationBarItems\RoslynNavigationBarItem.GenerateEventHandlerItem.cs (3)
11public sealed class GenerateEventHandler(string text, Glyph glyph, string containerName, SymbolKey eventSymbolKey, SymbolKey destinationTypeSymbolKey) : AbstractGenerateCodeItem(RoslynNavigationBarItemKind.GenerateEventHandler, text, glyph, destinationTypeSymbolKey), IEquatable<GenerateEventHandler> 14public readonly SymbolKey EventSymbolKey = eventSymbolKey;
NavigationBar\NavigationBarItems\RoslynNavigationBarItem.GenerateFinalizerItem.cs (1)
11public sealed class GenerateFinalizer(string text, SymbolKey destinationTypeSymbolKey) : AbstractGenerateCodeItem(RoslynNavigationBarItemKind.GenerateFinalizer, text, Glyph.MethodProtected, destinationTypeSymbolKey), IEquatable<GenerateFinalizer>
NavigationBar\NavigationBarItems\RoslynNavigationBarItem.GenerateMethodItem.cs (3)
11public sealed class GenerateMethod(string text, Glyph glyph, SymbolKey destinationTypeSymbolId, SymbolKey methodToReplicateSymbolId) : AbstractGenerateCodeItem(RoslynNavigationBarItemKind.GenerateMethod, text, glyph, destinationTypeSymbolId), IEquatable<GenerateMethod> 13public readonly SymbolKey MethodToReplicateSymbolKey = methodToReplicateSymbolId;
PdbSourceDocument\PdbSourceDocumentMetadataAsSourceFileProvider.cs (4)
150var key = SymbolKey.Create(symbolToFind, cancellationToken); 256var symbolId = SymbolKey.Create(symbol, cancellationToken);
SignatureHelp\AbstractSignatureHelpProvider.cs (2)
264symbolKeyItem.SymbolKey is not SymbolKey symbolKey || 275symbolKey = SymbolKey.Create(methodSymbol.OriginalDefinition, cancellationToken);
SignatureHelp\AbstractSignatureHelpProvider.SymbolKeySignatureHelpItem.cs (3)
23public SymbolKey? SymbolKey { get; } = symbol?.GetSymbolKey(); 33CodeAnalysis.SymbolKey.GetComparer(ignoreCase: false, ignoreAssemblyKeys: false).Equals(SymbolKey.Value, obj.SymbolKey.Value)); 43var comparer = CodeAnalysis.SymbolKey.GetComparer(ignoreCase: false, ignoreAssemblyKeys: false);
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateConstructor\GenerateConstructorHelpers.cs (1)
91var constructorInCompilation = (IMethodSymbol?)SymbolKey.Create(constructor).Resolve(semanticModel.Compilation).Symbol;
SymbolMapping\ISymbolMappingService.cs (1)
21Task<SymbolMappingResult?> MapSymbolAsync(Document document, SymbolKey symbolId, CancellationToken cancellationToken = default);
SymbolMapping\SymbolMappingServiceFactory.cs (1)
24public async Task<SymbolMappingResult> MapSymbolAsync(Document document, SymbolKey symbolId, CancellationToken cancellationToken)
ValueTracking\SerializableValueTrackedItem.cs (2)
15SymbolKey symbolKey, 21public SymbolKey SymbolKey { get; } = symbolKey;
ValueTracking\ValueTrackedItem.cs (3)
14public SymbolKey SymbolKey { get; } 23SymbolKey symbolKey, 53SymbolKey.Create(symbol, cancellationToken),
Microsoft.CodeAnalysis.Workspaces (37)
ExternalAccess\UnitTesting\Api\UnitTestingSymbolExtensions.cs (1)
12=> SymbolKey.Create(symbol, cancellationToken).ToString();
FindSymbols\SymbolFinder_FindReferences_Current.cs (1)
42if (!SymbolKey.IsBodyLevelSymbol(symbol) && SerializableSymbolAndProjectId.TryCreate(symbol, solution, cancellationToken, out var serializedSymbol))
FindSymbols\SymbolFinder.cs (1)
163var key = symbol.GetSymbolKey(cancellationToken);
Remote\RemoteArguments.cs (3)
89if (!SymbolKey.CanCreate(symbol, cancellationToken)) 95result = new SerializableSymbolAndProjectId(SymbolKey.CreateString(symbol, cancellationToken), project.Id); 108var symbol = SymbolKey.ResolveString(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.BodyLevelSymbolKey.cs (2)
243if (!SymbolKey.Equals(reader.Compilation, name, symbol.Name)) 266SymbolKey.Equals(semanticModel.Compilation, symbol.Name, localName))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (15)
21/// A <see cref="SymbolKey"/> is a lightweight identifier for a symbol that can be used to 100/// <see cref="SymbolKey"/>s are not guaranteed to work across different versions of Roslyn. They can be persisted 106/// The string values produced by <see cref="CreateString"/> (or <see cref="SymbolKey.ToString"/>) should not be 108/// 'same' symbol might produce different strings. Instead, to compare keys use <see cref="SymbolKey.GetComparer"/> 113internal partial struct SymbolKey(string data) : IEquatable<SymbolKey> 127/// Constructs a new <see cref="SymbolKey"/> representing the provided <paramref name="symbol"/>. 129public static SymbolKey Create(ISymbol? symbol, CancellationToken cancellationToken = default) 133/// Returns an <see cref="IEqualityComparer{T}"/> that determines if two <see cref="SymbolKey"/>s 145public static IEqualityComparer<SymbolKey> GetComparer(bool ignoreCase = false, bool ignoreAssemblyKeys = false) 189failureReason = $"({nameof(SymbolKey)} invalid format '${version}')"; 221/// Tries to resolve this <see cref="SymbolKey"/> in the given 231/// Returns this <see cref="SymbolKey"/> encoded as a string. This can be persisted 354=> obj is SymbolKey symbolKey && this.Equals(symbolKey); 356public readonly bool Equals(SymbolKey other) 359private readonly bool Equals(SymbolKey other, bool ignoreCase)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (1)
91if (SymbolKey.Equals(reader.Compilation, parameter.MetadataName, metadataName))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyComparer.cs (6)
12private sealed class SymbolKeyComparer : IEqualityComparer<SymbolKey> 19public bool Equals(SymbolKey x, SymbolKey y) 49public int GetHashCode(SymbolKey obj) 52public static IEqualityComparer<SymbolKey> GetComparer(bool ignoreCase, bool ignoreAssemblyKey) 63public static IEqualityComparer<SymbolKey> GetComparer(ComparisonOptions options)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKeyExtensions.cs (2)
11public static SymbolKey GetSymbolKey(this ISymbol? symbol, CancellationToken cancellationToken = default) 12=> SymbolKey.Create(symbol, cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKeyResolution.cs (2)
10/// The result of <see cref="SymbolKey.Resolve"/>. If the <see cref="SymbolKey"/> could be uniquely mapped to a
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\SymbolFinder\SymbolFinderInternal.cs (1)
82var symbolId = symbol.GetSymbolKey(cancellationToken);
Workspace\Solution\SolutionCompilationState.RootedSymbolSet.cs (1)
49/// cref="SymbolKey"/>) to resolve that symbol back in that that <see cref="Project"/>.
Workspace\Solution\SolutionCompilationState.SymbolToProjectId.cs (1)
70if (SymbolKey.IsBodyLevelSymbol(symbol))