Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
danmoseley opened this issue Jan 20, 2025 · 1 comment
Assignees
Labels
area-roslyn bug Something isn't working
Milestone

Comments

@danmoseley
Copy link
Member

danmoseley commented Jan 20, 2025

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
@danmoseley danmoseley added the bug Something isn't working label Jan 20, 2025
@arunchndr arunchndr added this to the Feb2025 milestone Jan 21, 2025
@arunchndr
Copy link
Member

Seems like we have a Roslyn path that does not handle attributes whose arguments are arrays

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-roslyn bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants