Skip to content

Changing signature failed in Microsoft.CodeAnalysis.VisualBasic.Symbols.SymbolExtensions.EnsureVbSymbolOrNothing[ #78136

Open
@tmat

Description

@tmat

Repro:
Open Compiler.slnf and use Change Signature refactoring to add a parameter to ILBuilder.EmitConstantValue

System.ArgumentException : Not a VB symbol.
Parameter name: destination
   at Microsoft.CodeAnalysis.VisualBasic.Symbols.SymbolExtensions.EnsureVbSymbolOrNothing[TSource,TDestination](TSource symbol,String paramName)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation.ClassifyConversion(ITypeSymbol source,ITypeSymbol destination)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation.ClassifyCommonConversion(ITypeSymbol source,ITypeSymbol destination)
   at Microsoft.CodeAnalysis.ChangeSignature.AbstractChangeSignatureService.GenerateInferredCallsiteExpression(SemanticDocument document,Int32 position,AddedParameter addedParameter,CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.ChangeSignature.AbstractChangeSignatureService.AddNewArgumentsToList[TArgumentSyntax](SemanticDocument document,ISymbol declarationSymbol,SeparatedSyntaxList`1 newArguments,SignatureChange signaturePermutation,Boolean isReducedExtensionMethod,Boolean isParamsArrayExpanded,Boolean generateAttributeArguments,Int32 position,CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.VisualBasic.ChangeSignature.VisualBasicChangeSignatureService.UpdateArgumentList(SemanticDocument document,ISymbol declarationSymbol,SignatureChange signaturePermutation,ArgumentListSyntax argumentList,Boolean isReducedExtensionMethod,Boolean isParamsArrayExpanded,Boolean generateAttributeArguments,Int32 position,CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.VisualBasic.ChangeSignature.VisualBasicChangeSignatureService.ChangeSignature(SemanticDocument document,ISymbol declarationSymbol,SyntaxNode potentiallyUpdatedNode,SyntaxNode originalNode,SignatureChange updatedSignature,LineFormattingOptions lineFormattingOptions,CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.ChangeSignature.AbstractChangeSignatureService.<>c__DisplayClass22_1.<CreateUpdatedSolutionAsync>b__1(SyntaxNode originalNode,SyntaxNode potentiallyUpdatedNode)
   at Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxReplacer.Replacer`1.Visit(SyntaxNode node)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.VisitExpressionStatement(ExpressionStatementSyntax node)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.Visit(SyntaxNode node)
   at Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxReplacer.Replacer`1.Visit(SyntaxNode node)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.VisitListElement[TNode](TNode node)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.VisitList[TNode](SyntaxList`1 list)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.VisitElseBlock(ElseBlockSyntax node)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.Visit(SyntaxNode node)
   at Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxReplacer.Replacer`1.Visit(SyntaxNode node)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.VisitMultiLineIfBlock(MultiLineIfBlockSyntax node)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.Visit(SyntaxNode node)
   at Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxReplacer.Replacer`1.Visit(SyntaxNode node)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.VisitListElement[TNode](TNode node)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.VisitList[TNode](SyntaxList`1 list)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.VisitMultiLineIfBlock(MultiLineIfBlockSyntax node)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.Visit(SyntaxNode node)
   at Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxReplacer.Replacer`1.Visit(SyntaxNode node)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.VisitListElement[TNode](TNode node)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.VisitList[TNode](SyntaxList`1 list)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.VisitMethodBlock(MethodBlockSyntax node)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.Visit(SyntaxNode node)
   at Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxReplacer.Replacer`1.Visit(SyntaxNode node)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.VisitListElement[TNode](TNode node)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.VisitList[TNode](SyntaxList`1 list)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.VisitClassBlock(ClassBlockSyntax node)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.Visit(SyntaxNode node)
   at Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxReplacer.Replacer`1.Visit(SyntaxNode node)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.VisitListElement[TNode](TNode node)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.VisitList[TNode](SyntaxList`1 list)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.VisitNamespaceBlock(NamespaceBlockSyntax node)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.Visit(SyntaxNode node)
   at Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxReplacer.Replacer`1.Visit(SyntaxNode node)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.VisitListElement[TNode](TNode node)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.VisitList[TNode](SyntaxList`1 list)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.VisitCompilationUnit(CompilationUnitSyntax node)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter.Visit(SyntaxNode node)
   at Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxReplacer.Replacer`1.Visit(SyntaxNode node)
   at Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxReplacer.Replace[TNode](SyntaxNode root,IEnumerable`1 nodes,Func`3 computeReplacementNode,IEnumerable`1 tokens,Func`3 computeReplacementToken,IEnumerable`1 trivia,Func`3 computeReplacementTrivia)
   at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode.ReplaceCore[TNode](IEnumerable`1 nodes,Func`3 computeReplacementNode,IEnumerable`1 tokens,Func`3 computeReplacementToken,IEnumerable`1 trivia,Func`3 computeReplacementTrivia)
   at Microsoft.CodeAnalysis.SyntaxNodeExtensions.ReplaceNodes[TRoot,TNode](TRoot root,IEnumerable`1 nodes,Func`3 computeReplacementNode)
   at async Microsoft.CodeAnalysis.ChangeSignature.AbstractChangeSignatureService.CreateUpdatedSolutionAsync(<Unknown Parameters>)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.CodeAnalysis.ChangeSignature.AbstractChangeSignatureService.<ChangeSignatureWithContextAsync>g__GetChangeSignatureResultAsync|19_0(<Unknown Parameters>)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.CodeAnalysis.ChangeSignature.AbstractChangeSignatureService.ChangeSignatureWithContextAsync(<Unknown Parameters>)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.CodeAnalysis.ChangeSignature.ChangeSignatureCodeAction.ComputeOperationsAsync(<Unknown Parameters>)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.CodeAnalysis.CodeActions.CodeActionWithOptions.GetOperationsAsync(<Unknown Parameters>)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.CodeAnalysis.Editor.Implementation.Suggestions.SuggestedAction.GetOperationsAsync(<Unknown Parameters>)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.CodeAnalysis.Editor.Implementation.Suggestions.SuggestedAction.InvokeWorkerAsync(<Unknown Parameters>)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.CodeAnalysis.Extensions.IExtensionManagerExtensions.PerformActionAsync(<Unknown Parameters>)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area-IDEuntriagedIssues and PRs which have not yet been triaged by a lead

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions