Skip to content

ExtractLocal crash when fixing all #23297

@jcouv

Description

@jcouv

Try running ExtractLocal on builder.Builder (fix all) on the following code (added to roslyn\src\editorfeatures\test2\findreferences\findreferencestests.vb).

        Private Shared Function PrintSpans(expected As IOrderedEnumerable(Of TextSpan), actual As IOrderedEnumerable(Of TextSpan), doc As Document, prefix As String, suffix As String, Optional messageOnly As Boolean = False) As String
            Dim builder = PooledStringBuilder.GetInstance()
            builder.Builder.AppendLine()
            If Not messageOnly Then
                builder.Builder.AppendLine($"Expected: {String.Join(", ", expected.Select(Function(e) e.ToString()))}")
                builder.Builder.AppendLine($"Actual: {String.Join(", ", actual.Select(Function(a) a.ToString()))}")
            End If

            Dim text As SourceText = Nothing
            doc.TryGetText(text)
            Dim position = 0

            For Each span In actual
                builder.Builder.Append(text.GetSubText(New TextSpan(position, span.Start - position)))
                builder.Builder.Append(prefix)
                builder.Builder.Append(text.GetSubText(span))
                builder.Builder.Append(suffix)
                position = span.End
            Next
            builder.Builder.Append(text.GetSubText(New TextSpan(position, text.Length - position)))

            Return builder.ToStringAndFree()
        End Function
System.InvalidOperationException : Sequence contains more than one element
   at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source)
   at async Microsoft.CodeAnalysis.Shared.Extensions.SyntaxNodeExtensions.ReplaceSyntaxAsync[TRoot](<Unknown Parameters>)
   at async Microsoft.CodeAnalysis.IntroduceVariable.AbstractIntroduceVariableService`5.ComplexifyParentingStatements[TService,TExpressionSyntax,TTypeSyntax,TTypeDeclarationSyntax,TQueryExpressionSyntax](<Unknown Parameters>)
   at async Microsoft.CodeAnalysis.VisualBasic.IntroduceVariable.VisualBasicIntroduceVariableService.VB$StateMachine_28_IntroduceLocalDeclarationIntoBlockAsync(<Unknown Parameters>)
   at async Microsoft.CodeAnalysis.VisualBasic.IntroduceVariable.VisualBasicIntroduceVariableService.VB$StateMachine_24_IntroduceLocalAsync(<Unknown Parameters>)
   at async Microsoft.CodeAnalysis.IntroduceVariable.AbstractIntroduceVariableService`5.AbstractIntroduceVariableCodeAction.GetChangedDocumentCoreAsync[TService,TExpressionSyntax,TTypeSyntax,TTypeDeclarationSyntax,TQueryExpressionSyntax](<Unknown Parameters>)
   at async Microsoft.CodeAnalysis.IntroduceVariable.AbstractIntroduceVariableService`5.AbstractIntroduceVariableCodeAction.GetChangedDocumentAsync[TService,TExpressionSyntax,TTypeSyntax,TTypeDeclarationSyntax,TQueryExpressionSyntax](<Unknown Parameters>)
   at async Microsoft.CodeAnalysis.CodeActions.CodeAction.GetChangedSolutionAsync(<Unknown Parameters>)
   at async Microsoft.CodeAnalysis.CodeActions.CodeAction.ComputeOperationsAsync(<Unknown Parameters>)
   at async Microsoft.CodeAnalysis.CodeActions.CodeAction.ComputeOperationsAsync(<Unknown Parameters>)
   at async Microsoft.CodeAnalysis.CodeActions.CodeAction.GetOperationsCoreAsync(<Unknown Parameters>)
   at async Microsoft.CodeAnalysis.CodeActions.CodeAction.GetOperationsAsync(<Unknown Parameters>)
   at Roslyn.Utilities.TaskExtensions.WaitAndGetResult_CanCallOnBackground[T](Task`1 task,CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.Editor.Implementation.Suggestions.SuggestedAction.InvokeWorker(Func`1 getFromDocument,IProgressTracker progressTracker,CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.Editor.Implementation.Suggestions.SuggestedAction.<>c__DisplayClass18_0.<InvokeCore>b__0()
   at Microsoft.CodeAnalysis.Extensions.IExtensionManagerExtensions.PerformAction(IExtensionManager extensionManager,Object extension,Action action)
   at Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)
Microsoft Visual Studio Enterprise 2017 Int Preview
Version 15.5.0 Preview 4.0 [27108.1.d15rel]

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area-IDEDeveloper CommunityThe issue was originally reported on https://developercommunity.visualstudio.com

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions