Skip to content

[BUG] go to references on method failed with System.InvalidOperationException: TypedConstant is an array. Use Values property. #1731

@danmoseley

Description

@danmoseley

Describe the Issue

I did find references on a method and it failed with this output. don't know how to repro

025-01-19 17:58:36.924 [info] [Error - 5:58:36 PM] [LanguageServerHost] System.InvalidOperationException: TypedConstant is an array. Use Values property.
   at Microsoft.CodeAnalysis.TypedConstant.get_ValueInternal() in /_/src/Compilers/Core/Portable/Symbols/TypedConstant.cs:line 99
   at Microsoft.CodeAnalysis.TypedConstant.get_Value() in /_/src/Compilers/Core/Portable/Symbols/TypedConstant.cs:line 79
   at Microsoft.CodeAnalysis.CSharp.CodeGeneration.AttributeGenerator.<GenerateAttributeArgumentList>g__GenerateAttributeSyntax|3_0(TypedConstant constant, <>c__DisplayClass3_0&) in /_/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/CSharp/CodeGeneration/AttributeGenerator.cs:line 106
   at Microsoft.CodeAnalysis.CSharp.CodeGeneration.AttributeGenerator.GenerateAttributeArgumentList(SyntaxGenerator generator, AttributeData attribute, AttributeSyntax existingSyntax) in /_/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/CSharp/CodeGeneration/AttributeGenerator.cs:line 94
   at Microsoft.CodeAnalysis.CSharp.CodeGeneration.AttributeGenerator.TryGenerateAttribute(AttributeData attribute, CSharpCodeGenerationContextInfo info) in /_/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/CSharp/CodeGeneration/AttributeGenerator.cs:line 74
   at Microsoft.CodeAnalysis.CSharp.CodeGeneration.AttributeGenerator.TryGenerateAttributeDeclaration(AttributeData attribute, Nullable`1 target, CSharpCodeGenerationContextInfo info) in /_/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/CSharp/CodeGeneration/AttributeGenerator.cs:line 52
   at Microsoft.CodeAnalysis.CSharp.CodeGeneration.AttributeGenerator.<>c__DisplayClass0_0.<GenerateAttributeLists>b__3(AttributeData a) in /_/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/CSharp/CodeGeneration/AttributeGenerator.cs:line 43
   at System.Linq.Enumerable.SelectIPartitionIterator`2.MoveNext()
   at System.Linq.Enumerable.WhereEnumerableIterator`1.ToList()
   at Microsoft.CodeAnalysis.CSharp.CodeGeneration.AttributeGenerator.GenerateAttributeLists(ImmutableArray`1 attributes, CSharpCodeGenerationContextInfo info, Nullable`1 target) in /_/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/CSharp/CodeGeneration/AttributeGenerator.cs:line 41
   at Microsoft.CodeAnalysis.CSharp.CodeGeneration.MethodGenerator.GenerateAttributes(IMethodSymbol method, Boolean isExplicit, CSharpCodeGenerationContextInfo info) in /_/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/CSharp/CodeGeneration/MethodGenerator.cs:line 229
   at Microsoft.CodeAnalysis.CSharp.CodeGeneration.MethodGenerator.GenerateMethodDeclarationWorker(IMethodSymbol method, CodeGenerationDestination destination, CSharpCodeGenerationContextInfo info, CancellationToken cancellationToken) in /_/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/CSharp/CodeGeneration/MethodGenerator.cs:line 126
   at Microsoft.CodeAnalysis.CSharp.CodeGeneration.MethodGenerator.GenerateMethodDeclaration(IMethodSymbol method, CodeGenerationDestination destination, CSharpCodeGenerationContextInfo info, CancellationToken cancellationToken) in /_/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/CSharp/CodeGeneration/MethodGenerator.cs:line 88
   at Microsoft.CodeAnalysis.CodeGeneration.AbstractCodeGenerationService`1.GetNewMember(TCodeGenerationContextInfo info, CodeGenerationDestination codeGenerationDestination, ISymbol member, CancellationToken cancellationToken) in /_/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/Core/CodeGeneration/AbstractCodeGenerationService.cs:line 349
   at Microsoft.CodeAnalysis.CodeGeneration.AbstractCodeGenerationService`1.AddMembersToEndOfDestination[TDeclarationSyntax](TDeclarationSyntax destination, IEnumerable`1 members, TCodeGenerationContextInfo info, CancellationToken cancellationToken) in /_/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/Core/CodeGeneration/AbstractCodeGenerationService.cs:line 305
   at Microsoft.CodeAnalysis.CodeGeneration.AbstractCodeGenerationService`1.AddMembers[TDeclarationNode](TDeclarationNode destination, IEnumerable`1 members, CodeGenerationContextInfo info, CancellationToken cancellationToken) in /_/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/Core/CodeGeneration/AbstractCodeGenerationService.cs:line 68
   at Microsoft.CodeAnalysis.CSharp.CodeGeneration.NamedTypeGenerator.GenerateNamedTypeDeclaration(ICodeGenerationService service, INamedTypeSymbol namedType, CodeGenerationDestination destination, CSharpCodeGenerationContextInfo info, CancellationToken cancellationToken) in /_/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/CSharp/CodeGeneration/NamedTypeGenerator.cs:line 95
   at Microsoft.CodeAnalysis.CodeGeneration.AbstractCodeGenerationService`1.GetNewMember(TCodeGenerationContextInfo info, CodeGenerationDestination codeGenerationDestination, ISymbol member, CancellationToken cancellationToken) in /_/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/Core/CodeGeneration/AbstractCodeGenerationService.cs:line 350
   at Microsoft.CodeAnalysis.CodeGeneration.AbstractCodeGenerationService`1.AddMembersToEndOfDestination[TDeclarationSyntax](TDeclarationSyntax destination, IEnumerable`1 members, TCodeGenerationContextInfo info, CancellationToken cancellationToken) in /_/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/Core/CodeGeneration/AbstractCodeGenerationService.cs:line 305
   at Microsoft.CodeAnalysis.CodeGeneration.AbstractCodeGenerationService`1.AddMembers[TDeclarationNode](TDeclarationNode destination, IEnumerable`1 members, CodeGenerationContextInfo info, CancellationToken cancellationToken) in /_/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/Core/CodeGeneration/AbstractCodeGenerationService.cs:line 68
   at Microsoft.CodeAnalysis.CSharp.CodeGeneration.NamespaceGenerator.GenerateNamespaceDeclaration(ICodeGenerationService service, INamespaceSymbol namespace, CodeGenerationDestination destination, CSharpCodeGenerationContextInfo info, CancellationToken cancellationToken) in /_/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/CSharp/CodeGeneration/NamespaceGenerator.cs:line 78
   at Microsoft.CodeAnalysis.CSharp.CodeGeneration.NamespaceGenerator.AddNamespaceTo(ICodeGenerationService service, CompilationUnitSyntax destination, INamespaceSymbol namespace, CSharpCodeGenerationContextInfo info, IList`1 availableIndices, CancellationToken cancellationToken) in /_/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/CSharp/CodeGeneration/NamespaceGenerator.cs:line 52
   at Microsoft.CodeAnalysis.CSharp.CodeGeneration.CSharpCodeGenerationService.AddNamespace[TDeclarationNode](TDeclarationNode destination, INamespaceSymbol namespace, CSharpCodeGenerationContextInfo info, IList`1 availableIndices, CancellationToken cancellationToken) in /_/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/CSharp/CodeGeneration/CSharpCodeGenerationService.cs:line 273
   at Microsoft.CodeAnalysis.CodeGeneration.AbstractCodeGenerationService`1.<>c__DisplayClass75_0.<AddNamespaceAsync>b__0(SyntaxNode t, TCodeGenerationContextInfo opts, IList`1 ai, CancellationToken ct) in /_/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/Core/CodeGeneration/AbstractCodeGenerationService.cs:line 443
   at Microsoft.CodeAnalysis.CodeGeneration.AbstractCodeGenerationService`1.GetEditAsync(CodeGenerationSolutionContext context, INamespaceOrTypeSymbol destination, Func`5 declarationTransform, CancellationToken cancellationToken) in /_/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/Core/CodeGeneration/AbstractCodeGenerationService.cs:line 248
   at Microsoft.CodeAnalysis.MetadataAsSource.AbstractMetadataAsSourceService.AddSourceToAsync(Document document, Compilation symbolCompilation, ISymbol symbol, SyntaxFormattingOptions formattingOptions, CancellationToken cancellationToken) in /_/src/Features/Core/Portable/MetadataAsSource/AbstractMetadataAsSourceService.cs:line 44
   at Microsoft.CodeAnalysis.MetadataAsSource.DecompilationMetadataAsSourceFileProvider.GetGeneratedFileAsync(MetadataAsSourceWorkspace metadataWorkspace, Workspace sourceWorkspace, Project sourceProject, ISymbol symbol, Boolean signaturesOnly, MetadataAsSourceOptions options, String tempPath, TelemetryMessage telemetryMessage, CancellationToken cancellationToken) in /_/src/Features/Core/Portable/MetadataAsSource/DecompilationMetadataAsSourceFileProvider.cs:line 157
   at Microsoft.CodeAnalysis.MetadataAsSource.MetadataAsSourceFileService.GetGeneratedFileAsync(Workspace sourceWorkspace, Project sourceProject, ISymbol symbol, Boolean signaturesOnly, MetadataAsSourceOptions options, CancellationToken cancellationToken) in /_/src/Features/Core/Portable/MetadataAsSource/MetadataAsSourceFileService.cs:line 108
   at Microsoft.CodeAnalysis.LanguageServer.Handler.FindUsagesLSPContext.ComputeLocationAsync(Nullable`1 documentSpan, CancellationToken cancellationToken) in /_/src/LanguageServer/Protocol/Handler/References/FindUsagesLSPContext.cs:line 264
   at Microsoft.CodeAnalysis.LanguageServer.Handler.FindUsagesLSPContext.GenerateVSReferenceItemAsync(Int32 definitionId, Int32 id, Nullable`1 documentSpan, ImmutableArray`1 properties, ClassifiedTextElement definitionText, Glyph definitionGlyph, Nullable`1 symbolUsageInfo, Boolean isWrittenTo, CancellationToken cancellationToken) in /_/src/LanguageServer/Protocol/Handler/References/FindUsagesLSPContext.cs:line 194
   at Microsoft.CodeAnalysis.LanguageServer.Handler.FindUsagesLSPContext.OnDefinitionFoundAsync(DefinitionItem definition, CancellationToken cancellationToken) in /_/src/LanguageServer/Protocol/Handler/References/FindUsagesLSPContext.cs:line 115
   at Microsoft.CodeAnalysis.FindUsages.AbstractFindUsagesService.FindReferencesProgressAdapter.OnDefinitionFoundAsync(SymbolGroup group, CancellationToken cancellationToken) in /_/src/Features/Core/Portable/FindUsages/AbstractFindUsagesService.ProgressAdapter.cs:line 113
   at Microsoft.CodeAnalysis.FindSymbols.FindReferencesSearchEngine.ReportGroupSeriallyAsync(ISymbol symbol, Dictionary`2 symbolToGroup, CancellationToken cancellationToken) in /_/src/Workspaces/Core/Portable/FindSymbols/FindReferences/FindReferencesSearchEngine.cs:line 200
   at Microsoft.CodeAnalysis.FindSymbols.FindReferencesSearchEngine.ReportGroupsSeriallyAsync(ImmutableArray`1 symbols, Dictionary`2 symbolToGroup, CancellationToken cancellationToken) in /_/src/Workspaces/Core/Portable/FindSymbols/FindReferences/FindReferencesSearchEngine.cs:line 171
   at Microsoft.CodeAnalysis.FindSymbols.FindReferencesSearchEngine.PerformSearchAsync(ImmutableArray`1 symbols, Action`1 onReferenceFound, CancellationToken cancellationToken) in /_/src/Workspaces/Core/Portable/FindSymbols/FindReferences/FindReferencesSearchEngine.cs:line 108
   at Microsoft.CodeAnalysis.FindSymbols.FindReferencesSearchEngine.PerformSearchAsync(ImmutableArray`1 symbols, Action`1 onReferenceFound, CancellationToken cancellationToken) in /_/src/Workspaces/Core/Portable/FindSymbols/FindReferences/FindReferencesSearchEngine.cs:line 117
   at Microsoft.CodeAnalysis.Shared.Utilities.ProducerConsumer`1.<>c__DisplayClass12_0`2.<<RunChannelAsync>g__ProduceItemsAndWriteToChannelAsync|2>d.MoveNext() in /_/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Utilities/ProducerConsumer.cs:line 322
--- End of stack trace from previous location ---
   at Microsoft.CodeAnalysis.Shared.Utilities.ProducerConsumer`1.RunChannelAsync[TArgs,TResult](ProducerConsumerOptions options, Func`4 produceItems, Func`4 consumeItems, TArgs args, CancellationToken cancellationToken) in /_/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Utilities/ProducerConsumer.cs:line 301
   at Microsoft.CodeAnalysis.FindSymbols.FindReferencesSearchEngine.FindReferencesAsync(ImmutableArray`1 symbols, CancellationToken cancellationToken) in /_/src/Workspaces/Core/Portable/FindSymbols/FindReferences/FindReferencesSearchEngine.cs:line 69
   at Microsoft.CodeAnalysis.FindSymbols.FindReferencesSearchEngine.FindReferencesAsync(ImmutableArray`1 symbols, CancellationToken cancellationToken) in /_/src/Workspaces/Core/Portable/FindSymbols/FindReferences/FindReferencesSearchEngine.cs:line 78
   at Microsoft.CodeAnalysis.FindSymbols.SymbolFinder.FindReferencesAsync(ISymbol symbol, Solution solution, IStreamingFindReferencesProgress progress, IImmutableSet`1 documents, FindReferencesSearchOptions options, CancellationToken cancellationToken) in /_/src/Workspaces/Core/Portable/FindSymbols/SymbolFinder_FindReferences_Current.cs:line 64
   at Microsoft.CodeAnalysis.FindUsages.AbstractFindUsagesService.FindReferencesAsync(IFindUsagesContext context, ISymbol symbol, Project project, FindReferencesSearchOptions searchOptions, OptionsProvider`1 classificationOptions, CancellationToken cancellationToken) in /_/src/Features/Core/Portable/FindUsages/AbstractFindUsagesService_FindReferences.cs:line 151
   at Microsoft.CodeAnalysis.FindUsages.AbstractFindUsagesService.FindSymbolReferencesAsync(IFindUsagesContext context, ISymbol symbol, Project project, OptionsProvider`1 classificationOptions, CancellationToken cancellationToken) in /_/src/Features/Core/Portable/FindUsages/AbstractFindUsagesService_FindReferences.cs:line 121
   at Microsoft.CodeAnalysis.FindUsages.AbstractFindUsagesService.FindSymbolReferencesAsync(IFindUsagesContext context, Document document, Int32 position, OptionsProvider`1 classificationOptions, CancellationToken cancellationToken) in /_/src/Features/Core/Portable/FindUsages/AbstractFindUsagesService_FindReferences.cs:line 99
   at Microsoft.CodeAnalysis.FindUsages.AbstractFindUsagesService.FindLiteralOrSymbolReferencesAsync(IFindUsagesContext context, Document document, Int32 position, OptionsProvider`1 classificationOptions, CancellationToken cancellationToken) in /_/src/Features/Core/Portable/FindUsages/AbstractFindUsagesService_FindReferences.cs:line 61
   at Microsoft.CodeAnalysis.LanguageServer.Handler.FindAllReferencesHandler.FindReferencesAsync(IProgress`1 progress, Workspace workspace, Document document, LinePosition linePosition, Boolean supportsVSExtensions, IGlobalOptionService globalOptions, IMetadataAsSourceFileService metadataAsSourceFileService, IAsynchronousOperationListener asyncListener, CancellationToken cancellationToken) in /_/src/LanguageServer/Protocol/Handler/References/FindAllReferencesHandler.cs:line 88
   at Microsoft.CodeAnalysis.LanguageServer.Handler.FindAllReferencesHandler.HandleRequestAsync(VSInternalReferenceParams referenceParams, RequestContext context, CancellationToken cancellationToken) in /_/src/LanguageServer/Protocol/Handler/References/FindAllReferencesHandler.cs:line 64
   at Microsoft.CommonLanguageServerProtocol.Framework.QueueItem`1.StartRequestAsync[TRequest,TResponse](TRequest request, TRequestContext context, IMethodHandler handler, String language, CancellationToken cancellationToken)
2025-01-19 17:58:36.935 [info] [Error - 5:58:36 PM] Request textDocument/references failed.
2025-01-19 17:58:36.935 [info]   Message: TypedConstant is an array. Use Values property.
  Code: -32000 
[object Object]

```

### Steps To Reproduce

don't know.

### Expected Behavior

it finds refs.b

### Environment Information

windows 11
devkit 1.16.4
c# 2.61.8
vscode 1.96.4

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions