/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/EditorFeatures/VisualBasicTest/SignatureHelp/InvocationExpressionSignatureHelpProviderTests.vb
1 990 строк
74 KB
Tomáš Matoušek
Move SpecializedCollections to Microsoft.CodeAnalysis.Collections namespace (#78466)
15 май 2025, 00:23
Не верифицирован
15 май 2025, 00:23
4358d12
Код
Авторство
О чём код?
' Licensed to the .NET Foundation under one or more agreements. ' The .NET Foundation licenses this file to you under the MIT license. ' See the LICENSE file in the project root for more information. Imports Microsoft.CodeAnalysis.Collections Imports Microsoft.CodeAnalysis.Editor.UnitTests.SignatureHelp Imports Microsoft.CodeAnalysis.VisualBasic.SignatureHelp Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.SignatureHelp Public Class InvocationExpressionSignatureHelpProviderTests Inherits AbstractVisualBasicSignatureHelpProviderTests Friend Overrides Function GetSignatureHelpProviderType() As Type Return GetType(InvocationExpressionSignatureHelpProvider) End Function #Region "Regular tests" <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestInvocationWithoutParameters() As Task Dim markup = <a><![CDATA[ Class C Sub Goo() [|Goo($$|]) End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("C.Goo()", String.Empty, Nothing, currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.Completion)> <WorkItem("https://github.com/dotnet/roslyn/issues/25830")> Public Async Function PickCorrectOverload_PickString() As Task Dim markup = <Text><![CDATA[ Public Class C Sub M() [|M(i:="Hello"$$|]) End Sub Public Sub M(i As String) End Sub Public Sub M(i As Integer) End Sub Public Sub M(filtered As Byte) End Sub End Class ]]></Text>.Value Dim expectedOrderedItems = { New SignatureHelpTestItem("C.M(i As Integer)", String.Empty, Nothing, currentParameterIndex:=0), New SignatureHelpTestItem("C.M(i As String)", String.Empty, Nothing, currentParameterIndex:=0, isSelected:=True) } Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.Completion)> <WorkItem("https://github.com/dotnet/roslyn/issues/25830")> Public Async Function PickCorrectOverload_PickInteger() As Task Dim markup = <Text><![CDATA[ Public Class C Sub M() [|M(i:=1$$|]) End Sub Public Sub M(i As String) End Sub Public Sub M(i As Integer) End Sub Public Sub M(filtered As Byte) End Sub End Class ]]></Text>.Value Dim expectedOrderedItems = { New SignatureHelpTestItem("C.M(i As Integer)", String.Empty, Nothing, currentParameterIndex:=0, isSelected:=True), New SignatureHelpTestItem("C.M(i As String)", String.Empty, Nothing, currentParameterIndex:=0) } Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/958593")> Public Async Function TestInvocationInsideStringLiteral() As Task Dim markup = <a><![CDATA[ Class C Sub Goo() [|Goo("$$"|]) End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("C.Goo()", currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestInvocationWithoutParametersMethodXmlComments() As Task Dim markup = <a><![CDATA[ Class C ''' <summary> ''' Summary for Goo ''' </summary> Sub Goo() [|Goo($$|]) End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("C.Goo()", "Summary for Goo", Nothing, currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestInvocationWithParametersOn1() As Task Dim markup = <a><![CDATA[ Class C Sub Goo(a As Integer, b As Integer) [|Goo($$a, b|]) End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("C.Goo(a As Integer, b As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestInvocationWithParametersXmlCommentsOn1() As Task Dim markup = <a><![CDATA[ Class C ''' <summary> ''' Summary for Goo ''' </summary> ''' <param name="a">Param a</param> ''' <param name="b">Param b</param> Sub Goo(a As Integer, b As Integer) [|Goo($$a, b|]) End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("C.Goo(a As Integer, b As Integer)", "Summary for Goo", "Param a", currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestInvocationWithParametersOn2() As Task Dim markup = <a><![CDATA[ Class C Sub Goo(a As Integer, b As Integer) [|Goo(a, $$b|]) End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("C.Goo(a As Integer, b As Integer)", String.Empty, String.Empty, currentParameterIndex:=1)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestInvocationWithParametersXmlCommentsOn2() As Task Dim markup = <a><![CDATA[ Class C ''' <summary> ''' Summary for Goo ''' </summary> ''' <param name="a">Param a</param> ''' <param name="b">Param b</param> Sub Goo(a As Integer, b As Integer) [|Goo(a, $$b|]) End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("C.Goo(a As Integer, b As Integer)", "Summary for Goo", "Param b", currentParameterIndex:=1)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestInvocationWithoutClosingParen() As Task Dim markup = <a><![CDATA[ Class C Sub Goo() [|Goo($$ |]End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("C.Goo()", String.Empty, Nothing, currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestInvocationWithoutClosingParenWithParametersOn1() As Task Dim markup = <a><![CDATA[ Class C Sub Goo(a As Integer, b As Integer) [|Goo($$a, b |]End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("C.Goo(a As Integer, b As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestInvocationWithoutClosingParenWithParametersOn2() As Task Dim markup = <a><![CDATA[ Class C Sub Goo(a As Integer, b As Integer) [|Goo(a, $$b |]End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("C.Goo(a As Integer, b As Integer)", String.Empty, String.Empty, currentParameterIndex:=1)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/968188")> Public Async Function TestInvocationOnBaseExpression_ProtectedAccessibility() As Task Dim markup = <a><![CDATA[ Imports System Public Class Base Protected Overridable Sub Goo(x As Integer) End Sub End Class Public Class Derived Inherits Base Private Sub Test() [|MyBase.Goo($$ |]End Sub Protected Overrides Sub Goo(x As Integer) End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("Base.Goo(x As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/968188")> Public Async Function TestInvocationOnBaseExpression_AbstractBase() As Task Dim markup = <a><![CDATA[ Imports System Public MustInherit Class Base Protected MustOverride Sub Goo(x As Integer) End Sub End Class Public Class Derived Inherits Base Private Sub Test() [|MyBase.Goo($$ |]End Sub Protected Overrides Sub Goo(x As Integer) End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("Base.Goo(x As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/968188")> Public Async Function TestInvocationOnThisExpression_ProtectedAccessibility() As Task Dim markup = <a><![CDATA[ Imports System Public Class Base Protected Overridable Sub Goo(x As Integer) End Sub End Class Public Class Derived Inherits Base Private Sub Test() [|Me.Goo($$ |]End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("Base.Goo(x As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/968188")> Public Async Function TestInvocationOnThisExpression_ProtectedAccessibility_Overridden() As Task Dim markup = <a><![CDATA[ Imports System Public Class Base Protected Overridable Sub Goo(x As Integer) End Sub End Class Public Class Derived Inherits Base Private Sub Test() [|Me.Goo($$ |]End Sub Protected Overrides Sub Goo(x As Integer) End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("Derived.Goo(x As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/968188")> Public Async Function TestInvocationOnThisExpression_ProtectedAccessibility_AbstractBase() As Task Dim markup = <a><![CDATA[ Imports System Public MustInherit Class Base Protected MustOverride Sub Goo(x As Integer) End Sub End Class Public Class Derived Inherits Base Private Sub Test() [|Me.Goo($$ |]End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("Base.Goo(x As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/968188")> Public Async Function TestInvocationOnThisExpression_ProtectedAccessibility_AbstractBase_Overridden() As Task Dim markup = <a><![CDATA[ Imports System Public MustInherit Class Base Protected MustOverride Sub Goo(x As Integer) End Sub End Class Public Class Derived Inherits Base Private Sub Test() [|Me.Goo($$ |]End Sub Protected Overrides Sub Goo(x As Integer) End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("Derived.Goo(x As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/968188")> Public Async Function TestInvocationOnBaseExpression_ProtectedFriendAccessibility() As Task Dim markup = <a><![CDATA[ Imports System Public Class Base Protected Friend Sub Goo(x As Integer) End Sub End Class Public Class Derived Inherits Base Private Sub Test() [|MyBase.Goo($$ |]End Sub Protected Overrides Sub Goo(x As Integer) End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("Base.Goo(x As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/968188")> Public Async Function TestInvocationOnBaseMember_ProtectedAccessibility_ThroughType() As Task Dim markup = <a><![CDATA[ Imports System Public Class Base Protected Sub Goo(x As Integer) End Sub End Class Public Class Derived Inherits Base Private Sub Test() Dim x as New Base() [|x.Goo($$ |]End Sub Protected Overrides Sub Goo(x As Integer) End Sub End Class ]]></a>.Value Await TestAsync(markup, Nothing) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/968188")> Public Async Function TestInvocationOnBaseExpression_PrivateAccessibility() As Task Dim markup = <a><![CDATA[ Imports System Public Class Base Private Sub Goo(x As Integer) End Sub End Class Public Class Derived Inherits Base Private Sub Test() Dim x as New Base() [|x.Goo($$ |]End Sub Protected Overrides Sub Goo(x As Integer) End Sub End Class ]]></a>.Value Await TestAsync(markup, Nothing) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/968188")> Public Async Function TestInvocationOnBaseExpression_Constructor() As Task Dim markup = <a><![CDATA[ Imports System Public MustInherit Class Base Protected Sub New(x As Integer) End Sub End Class Public Class Derived Inherits Base Public Sub New() [|MyBase.New($$ |]End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("Base.New(x As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/968188"), WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/544989")> Public Async Function TestInvocationOnBaseExpression_Finalizer() As Task Dim markup = <a><![CDATA[ Class C Protected Overrides Sub Finalize() [|MyBase.Finalize($$ |]End Sub End Class]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("Object.Finalize()")) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestInvocationOnSubLambda() As Task Dim markup = <a><![CDATA[ Imports System Class C Sub Goo(a As Integer, b As Integer) Dim bar As Action(Of Integer) = Sub(i) Console.WriteLine(i) [|bar($$ |]End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("Action(Of Integer)(obj As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestInvocationOnFunctionLambda() As Task Dim markup = <a><![CDATA[ Imports System Class C Sub Goo(a As Integer, b As Integer) Dim bar As Func(Of Integer, String) = Function(i) i.ToString() [|bar($$ |]End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("Func(Of Integer, String)(arg As Integer) As String", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestInvocationOnLambdaInsideAnonType() As Task Dim markup = <a><![CDATA[ Class C Sub Goo() Dim lambda = Function() 0 Dim bar = New With {.Value = [|lambda($$} |]End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("Invoke() As Integer", String.Empty, Nothing, currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestInvocationOnMemberAccessExpression() As Task Dim markup = <a><![CDATA[ Class C Shared Sub Bar(a As Integer) End Sub Sub Goo() [|C.Bar($$ |]End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("C.Bar(a As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestExtensionMethod1() As Task Dim markup = <a><![CDATA[ Imports System.Runtime.CompilerServices Class C Sub Method() Dim s As String = "test" [|s.ExtensionMethod($$ |]End Sub End Class Public Module MyExtension <Extension()> Public Function ExtensionMethod(s As String, x As Integer) As Integer Return s.Length End Function End Module ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem($"<{VBFeaturesResources.Extension}> MyExtension.ExtensionMethod(x As Integer) As Integer", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestProperty() As Task Dim markup = <a><![CDATA[ Class C Property goo As Integer Sub bar() [|goo($$ |]End Sub End Class]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("C.goo() As Integer", String.Empty, Nothing, currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/544068")> Public Async Function TestExtension() As Task Dim markup = <a><![CDATA[ Imports System.Runtime.CompilerServices Public Class Goo Sub bar() Me.ExtensionMethod($$ End Sub End Class Module SomeModule <Extension()> Public Sub ExtensionMethod(ByRef f As Goo) End Sub End Module ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() From { New SignatureHelpTestItem($"<{VBFeaturesResources.Extension}> SomeModule.ExtensionMethod()", String.Empty, Nothing, currentParameterIndex:=0) } Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestInvocationOnAnonymousType() As Task Dim markup = <a><![CDATA[ Imports System.Collections.Generic Module Program Sub Main(args As String()) Dim x = New With {.A = 0, .B = 1} M(x).Add($$ End Sub Function M(Of T)(goo As T) As List(Of T) End Function End Module]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem( $"List(Of 'a).Add(item As 'a) {FeaturesResources.Types_colon} 'a {FeaturesResources.is_} New With {{ .A As Integer, .B As Integer }}", String.Empty, String.Empty, currentParameterIndex:=0, description:=$" {FeaturesResources.Types_colon} 'a {FeaturesResources.is_} New With {{ .A As Integer, .B As Integer }}")) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/545118")> Public Async Function TestStatic1() As Task Dim markup = <a><![CDATA[ Class C Shared Sub Goo() Bar($$ End Sub Shared Sub Bar() End Sub Sub Bar(i As Integer) End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() From { New SignatureHelpTestItem("C.Bar()", currentParameterIndex:=0) } Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/545118")> Public Async Function TestStatic2() As Task Dim markup = <a><![CDATA[ Class C Sub Goo() Bar($$ End Sub Shared Sub Bar() End Sub Sub Bar(i As Integer) End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() From { New SignatureHelpTestItem("C.Bar()", currentParameterIndex:=0), New SignatureHelpTestItem("C.Bar(i As Integer)", currentParameterIndex:=0) } Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/539111")> Public Async Function TestFilteringInOverloadedGenericMethods() As Task Dim markup = <a><![CDATA[ Class C Sub M() GenericMethod(Of String, Integer)(Nothing, 42$$) End Sub ''' <summary> ''' Hello Generic World! ''' </summary> ''' <typeparam name="T1">Type Param 1</typeparam> ''' <param name="i">Param 1 of type T1</param> ''' <returns>Null</returns> Function GenericMethod(Of T1)(i As T1) As C Return Nothing End Function ''' <summary> ''' Hello Generic World 2.0! ''' </summary> ''' <typeparam name="T1">Type Param 1</typeparam> ''' <typeparam name="T2">Type Param 2</typeparam> ''' <param name="i">Param 1 of type T1</param> ''' <param name="i2">Param 2 of type T2</param> ''' <returns>Null</returns> Function GenericMethod(Of T1, T2)(i As T1, i2 As T2) As C Return Nothing End Function End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add( New SignatureHelpTestItem(signature:="C.GenericMethod(Of String, Integer)(i As String, i2 As Integer) As C", methodDocumentation:="Hello Generic World 2.0!", parameterDocumentation:="Param 2 of type T2", currentParameterIndex:=1)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestAwaitableItem() As Task Dim markup = <a><![CDATA[ Imports System.Threading.Tasks Class C ''' <summary> ''' Doc Comment! ''' </summary> Async Function Goo() As Task Me.Goo($$ End Function End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() From { New SignatureHelpTestItem("C.Goo() As Task", currentParameterIndex:=0, methodDocumentation:=String.Empty) } Await TestSignatureHelpWithMscorlib45Async(markup, expectedOrderedItems, LanguageNames.VisualBasic) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestAwaitableItem2() As Task Dim markup = <a><![CDATA[ Imports System.Threading.Tasks Class C ''' <summary> ''' Doc Comment! ''' </summary> Async Function Goo() As Task(Of Integer) Me.Goo($$ End Function End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() From { New SignatureHelpTestItem("C.Goo() As Task(Of Integer)", currentParameterIndex:=0, methodDocumentation:=String.Empty) } Await TestSignatureHelpWithMscorlib45Async(markup, expectedOrderedItems, LanguageNames.VisualBasic) End Function #End Region #Region "Default Properties" <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestDefaultProperty() As Task Dim markup = <a><![CDATA[ Class C Default Public Property item(index As Integer) As String Get Return "goo" End Get Set(ByVal value As String) End Set End Property End Class Class D Sub Goo Dim obj As New C [|obj($$ |]End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("C(index As Integer) As String", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function #End Region #Region "Current Parameter Name" <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestCurrentParameterName() As Task Dim markup = <a><![CDATA[ Class C Sub Goo(someParameter As Integer, something As Boolean) Goo(something:=false, someParameter:=$$) End Sub End Class ]]></a>.Value Await VerifyCurrentParameterNameAsync(markup, "someParameter") End Function #End Region #Region "Trigger tests" <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestInvocationOnTriggerParens() As Task Dim markup = <a><![CDATA[ Class C Sub Goo() [|Goo($$ |]End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("C.Goo()", String.Empty, Nothing, currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems, usePreviousCharAsTrigger:=True) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestInvocationOnTriggerComma() As Task Dim markup = <a><![CDATA[ Class C Sub Goo(a As Integer, b As Integer) [|Goo(a,$$ |]End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("C.Goo(a As Integer, b As Integer)", String.Empty, String.Empty, currentParameterIndex:=1)) Await TestAsync(markup, expectedOrderedItems, usePreviousCharAsTrigger:=True) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestNoInvocationOnSpace() As Task Dim markup = <a><![CDATA[ Class C Sub Goo(a As Integer, b As Integer) [|Goo(a, $$|] End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() Await TestAsync(markup, expectedOrderedItems, usePreviousCharAsTrigger:=True) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestConditionalIndexing() As Task Dim markup = <a><![CDATA[ Class C Dim x as String = Nothing Sub Goo() x?($$) End Sub End Class ]]></a>.Value Dim expected = New SignatureHelpTestItem("String(index As Integer) As Char", currentParameterIndex:=0) Await TestAsync(markup, {expected}, experimental:=True) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestConditionalMethodCall() As Task Dim markup = <a><![CDATA[ Class C Dim x as String = Nothing Sub Goo() x?.ToString($$) End Sub End Class ]]></a>.Value Dim expected = {New SignatureHelpTestItem("String.ToString() As String", currentParameterIndex:=0), New SignatureHelpTestItem("String.ToString(provider As System.IFormatProvider) As String", currentParameterIndex:=0)} Await TestAsync(markup, expected, experimental:=True) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestConditionalDelegateInvocation() As Task Dim markup = <a><![CDATA[ Imports System Class C Sub Goo() Dim x As Func(Of Integer, Integer) x?($$ End Sub End Class ]]></a>.Value Dim expected = {New SignatureHelpTestItem("Func(Of Integer, Integer)(arg As Integer) As Integer", currentParameterIndex:=0)} Await TestAsync(markup, expected, experimental:=True) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestNonIdentifierConditionalIndexer() As Task Dim expected = {New SignatureHelpTestItem("String(index As Integer) As Char")} ' inline with a string literal Await TestAsync(" Class C Sub M() Dim c = """"?($$ End Sub End Class ", expected) ' parenthesized expression Await TestAsync(" Class C Sub M() Dim c = ("""")?($$ End Sub End Class ", expected) ' new object expression Await TestAsync(" Class C Sub M() Dim c = (New System.String("" ""c, 1))?($$ End Sub End Class ", expected) ' more complicated parenthesized expression Await TestAsync(" Class C Sub M() Dim c = (CType(Nothing, System.Collections.Generic.List(Of Integer)))?($$ End Sub End Class ", {New SignatureHelpTestItem("System.Collections.Generic.List(Of Integer)(index As Integer) As Integer")}) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestTriggerCharacterInComment01() As Task Dim markup = " Class C Sub M(p As String) M(',$$ End Sub End Class " Await TestAsync(markup, Enumerable.Empty(Of SignatureHelpTestItem)(), usePreviousCharAsTrigger:=True) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestTriggerCharacterInString01() As Task Dim markup = " Class C Sub M(p As String) M("",$$"" End Sub End Class " Await TestAsync(markup, Enumerable.Empty(Of SignatureHelpTestItem)(), usePreviousCharAsTrigger:=True) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Sub TestTriggerCharacters() Dim expectedTriggerCharacters() As Char = {","c, "("c} Dim unexpectedTriggerCharacters() As Char = {" "c, "["c, "<"c} VerifyTriggerCharacters(expectedTriggerCharacters, unexpectedTriggerCharacters) End Sub #End Region #Region "EditorBrowsable tests" <Fact, Trait(Traits.Feature, Traits.Features.Completion)> <WorkItem(7336, "DevDiv_Projects/Roslyn")> Public Async Function TestEditorBrowsable_Method_BrowsableStateAlways() As Task Dim markup = <Text><![CDATA[ Class Program Sub M() Goo.Bar($$ End Sub End Class ]]></Text>.Value Dim referencedCode = <Text><![CDATA[ Public Class Goo <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Always)> Public Shared Sub Bar() End Sub End Class ]]></Text>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("Goo.Bar()", String.Empty, Nothing, currentParameterIndex:=0)) Await TestSignatureHelpInEditorBrowsableContextsAsync(markup:=markup, referencedCode:=referencedCode, expectedOrderedItemsMetadataReference:=expectedOrderedItems, expectedOrderedItemsSameSolution:=expectedOrderedItems, sourceLanguage:=LanguageNames.VisualBasic, referencedLanguage:=LanguageNames.VisualBasic) End Function <Fact, Trait(Traits.Feature, Traits.Features.Completion)> <WorkItem(7336, "DevDiv_Projects/Roslyn")> Public Async Function TestEditorBrowsable_Method_BrowsableStateNever() As Task Dim markup = <Text><![CDATA[ Class Program Sub M() Goo.Bar($$ End Sub End Class ]]></Text>.Value Dim referencedCode = <Text><![CDATA[ Public Class Goo <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)> Public Shared Sub Bar() End Sub End Class ]]></Text>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("Goo.Bar()", String.Empty, Nothing, currentParameterIndex:=0)) Await TestSignatureHelpInEditorBrowsableContextsAsync(markup:=markup, referencedCode:=referencedCode, expectedOrderedItemsMetadataReference:=New List(Of SignatureHelpTestItem), expectedOrderedItemsSameSolution:=expectedOrderedItems, sourceLanguage:=LanguageNames.VisualBasic, referencedLanguage:=LanguageNames.VisualBasic) End Function <Fact, Trait(Traits.Feature, Traits.Features.Completion)> <WorkItem(7336, "DevDiv_Projects/Roslyn")> Public Async Function TestEditorBrowsable_Method_BrowsableStateAdvanced() As Task Dim markup = <Text><![CDATA[ Class Program Sub M() Dim f As Goo f.Bar($$ End Sub End Class ]]></Text>.Value Dim referencedCode = <Text><![CDATA[ Public Class Goo <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)> Public Sub Bar() End Sub End Class ]]></Text>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("Goo.Bar()", String.Empty, Nothing, currentParameterIndex:=0)) Await TestSignatureHelpInEditorBrowsableContextsAsync(markup:=markup, referencedCode:=referencedCode, expectedOrderedItemsMetadataReference:=New List(Of SignatureHelpTestItem), expectedOrderedItemsSameSolution:=expectedOrderedItems, sourceLanguage:=LanguageNames.VisualBasic, referencedLanguage:=LanguageNames.VisualBasic, hideAdvancedMembers:=True) Await TestSignatureHelpInEditorBrowsableContextsAsync(markup:=markup, referencedCode:=referencedCode, expectedOrderedItemsMetadataReference:=expectedOrderedItems, expectedOrderedItemsSameSolution:=expectedOrderedItems, sourceLanguage:=LanguageNames.VisualBasic, referencedLanguage:=LanguageNames.VisualBasic, hideAdvancedMembers:=False) End Function <Fact, Trait(Traits.Feature, Traits.Features.Completion)> <WorkItem(7336, "DevDiv_Projects/Roslyn")> Public Async Function TestEditorBrowsable_Method_Overloads_OneBrowsableAlways_OneBrowsableNever() As Task Dim markup = <Text><![CDATA[ Class Program Sub M() Dim f As Goo f.Bar($$ End Sub End Class ]]></Text>.Value Dim referencedCode = <Text><![CDATA[ Public Class Goo <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Always)> Public Sub Bar() End Sub <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)> Public Sub Bar(x As Integer) End Sub End Class ]]></Text>.Value Dim expectedOrderedItemsMetadataReference = New List(Of SignatureHelpTestItem)() expectedOrderedItemsMetadataReference.Add(New SignatureHelpTestItem("Goo.Bar()", String.Empty, Nothing, currentParameterIndex:=0)) Dim expectedOrderedItemsSameSolution = New List(Of SignatureHelpTestItem)() expectedOrderedItemsSameSolution.Add(New SignatureHelpTestItem("Goo.Bar()", String.Empty, Nothing, currentParameterIndex:=0)) expectedOrderedItemsSameSolution.Add(New SignatureHelpTestItem("Goo.Bar(x As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestSignatureHelpInEditorBrowsableContextsAsync(markup:=markup, referencedCode:=referencedCode, expectedOrderedItemsMetadataReference:=expectedOrderedItemsMetadataReference, expectedOrderedItemsSameSolution:=expectedOrderedItemsSameSolution, sourceLanguage:=LanguageNames.VisualBasic, referencedLanguage:=LanguageNames.VisualBasic) End Function <Fact, Trait(Traits.Feature, Traits.Features.Completion)> <WorkItem(7336, "DevDiv_Projects/Roslyn")> Public Async Function TestEditorBrowsable_Method_Overloads_BothBrowsableNever() As Task Dim markup = <Text><![CDATA[ Class Program Sub M() New Goo().Bar($$ End Sub End Class ]]></Text>.Value Dim referencedCode = <Text><![CDATA[ Public Class Goo <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)> Public Sub Bar() End Sub <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)> Public Sub Bar(x As Integer) End Sub End Class ]]></Text>.Value Await TestSignatureHelpInEditorBrowsableContextsAsync(markup:=markup, referencedCode:=referencedCode, expectedOrderedItemsMetadataReference:=New List(Of SignatureHelpTestItem), expectedOrderedItemsSameSolution:=New List(Of SignatureHelpTestItem), sourceLanguage:=LanguageNames.VisualBasic, referencedLanguage:=LanguageNames.VisualBasic) End Function <Fact, Trait(Traits.Feature, Traits.Features.Completion)> <WorkItem(7336, "DevDiv_Projects/Roslyn")> Public Async Function TestOverriddenSymbolsFilteredFromSigHelp() As Task Dim markup = <Text><![CDATA[ Class Program Sub M() Dim dd as D dd.Goo($$ End Sub End Class ]]></Text>.Value Dim referencedCode = <Text><![CDATA[ Public Class B Public Overridable Sub Goo(original As Integer) End Sub End Class Public Class D Inherits B Public Overrides Sub Goo(derived As Integer) End Sub End Class ]]></Text>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("D.Goo(derived As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestSignatureHelpInEditorBrowsableContextsAsync(markup:=markup, referencedCode:=referencedCode, expectedOrderedItemsMetadataReference:=expectedOrderedItems, expectedOrderedItemsSameSolution:=expectedOrderedItems, sourceLanguage:=LanguageNames.VisualBasic, referencedLanguage:=LanguageNames.VisualBasic) End Function <Fact, Trait(Traits.Feature, Traits.Features.Completion)> <WorkItem(7336, "DevDiv_Projects/Roslyn")> Public Async Function TestEditorBrowsable_BrowsableStateAlwaysMethodInBrowsableStateNeverClass() As Task Dim markup = <Text><![CDATA[ Class Program Sub M() Dim x As C x.Goo($$ End Sub End Class ]]></Text>.Value Dim referencedCode = <Text><![CDATA[ <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)> Public Class C Public Sub Goo() End Sub End Class ]]></Text>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("C.Goo()", String.Empty, Nothing, currentParameterIndex:=0)) Await TestSignatureHelpInEditorBrowsableContextsAsync(markup:=markup, referencedCode:=referencedCode, expectedOrderedItemsMetadataReference:=expectedOrderedItems, expectedOrderedItemsSameSolution:=expectedOrderedItems, sourceLanguage:=LanguageNames.VisualBasic, referencedLanguage:=LanguageNames.VisualBasic) End Function <Fact, Trait(Traits.Feature, Traits.Features.Completion)> <WorkItem(7336, "DevDiv_Projects/Roslyn")> Public Async Function TestEditorBrowsable_BrowsableStateAlwaysMethodInBrowsableStateNeverBaseClass() As Task Dim markup = <Text><![CDATA[ Class Program Sub M() Dim x As D x.Goo($$ End Sub End Class ]]></Text>.Value Dim referencedCode = <Text><![CDATA[ <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)> Public Class B Public Sub Goo() End Sub End Class Public Class D Inherits B Public Overloads Sub Goo(x As Integer) End Sub End Class ]]></Text>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem) From { New SignatureHelpTestItem("B.Goo()", String.Empty, Nothing, currentParameterIndex:=0), New SignatureHelpTestItem("D.Goo(x As Integer)", String.Empty, String.Empty, currentParameterIndex:=0) } Await TestSignatureHelpInEditorBrowsableContextsAsync(markup:=markup, referencedCode:=referencedCode, expectedOrderedItemsMetadataReference:=expectedOrderedItems, expectedOrderedItemsSameSolution:=expectedOrderedItems, sourceLanguage:=LanguageNames.VisualBasic, referencedLanguage:=LanguageNames.VisualBasic) End Function <Fact, Trait(Traits.Feature, Traits.Features.Completion)> <WorkItem(7336, "DevDiv_Projects/Roslyn")> Public Async Function TestEditorBrowsable_HidingWithDifferentParameterList() As Task Dim markup = <Text><![CDATA[ Class Program Sub M() Dim x As D x.Goo($$ End Sub End Class ]]></Text>.Value Dim referencedCode = <Text><![CDATA[ Public Class B Public Sub Goo() End Sub End Class Public Class D Inherits B Public Sub Goo(x As Integer) End Sub End Class ]]></Text>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("D.Goo(x As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestSignatureHelpInEditorBrowsableContextsAsync(markup:=markup, referencedCode:=referencedCode, expectedOrderedItemsMetadataReference:=expectedOrderedItems, expectedOrderedItemsSameSolution:=expectedOrderedItems, sourceLanguage:=LanguageNames.VisualBasic, referencedLanguage:=LanguageNames.VisualBasic) End Function <Fact, Trait(Traits.Feature, Traits.Features.Completion)> <WorkItem(7336, "DevDiv_Projects/Roslyn")> Public Async Function TestEditorBrowsable_BrowsableStateNeverMethodsInBaseClass() As Task Dim markup = <Text><![CDATA[ Class Program Inherits B Sub M() Goo($$ End Sub End Class ]]></Text>.Value Dim referencedCode = <Text><![CDATA[ Public Class B <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)> Public Sub Goo() End Sub End Class ]]></Text>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("B.Goo()", String.Empty, Nothing, currentParameterIndex:=0)) Await TestSignatureHelpInEditorBrowsableContextsAsync(markup:=markup, referencedCode:=referencedCode, expectedOrderedItemsMetadataReference:=New List(Of SignatureHelpTestItem), expectedOrderedItemsSameSolution:=expectedOrderedItems, sourceLanguage:=LanguageNames.VisualBasic, referencedLanguage:=LanguageNames.VisualBasic) End Function <Fact, Trait(Traits.Feature, Traits.Features.Completion)> <WorkItem(7336, "DevDiv_Projects/Roslyn")> Public Async Function TestEditorBrowsable_GenericTypeCausingMethodSignatureEquality_BothBrowsableAlways() As Task Dim markup = <Text><![CDATA[ Class Program Sub M() Dim ci = New C(Of Integer)() ci.Goo($$ End Sub End Class ]]></Text>.Value Dim referencedCode = <Text><![CDATA[ Public Class C(Of T) Public Sub Goo(t As T) End Sub Public Sub Goo(i As Integer) End Sub End Class ]]></Text>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("C(Of Integer).Goo(t As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) expectedOrderedItems.Add(New SignatureHelpTestItem("C(Of Integer).Goo(i As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestSignatureHelpInEditorBrowsableContextsAsync(markup:=markup, referencedCode:=referencedCode, expectedOrderedItemsMetadataReference:=expectedOrderedItems, expectedOrderedItemsSameSolution:=expectedOrderedItems, sourceLanguage:=LanguageNames.VisualBasic, referencedLanguage:=LanguageNames.VisualBasic) End Function <Fact, Trait(Traits.Feature, Traits.Features.Completion)> <WorkItem(7336, "DevDiv_Projects/Roslyn")> Public Async Function TestEditorBrowsable_GenericTypeCausingMethodSignatureEquality_BrowsableMixed1() As Task Dim markup = <Text><![CDATA[ Class Program Sub M() Dim ci = New C(Of Integer)() ci.Goo($$ End Sub End Class ]]></Text>.Value Dim referencedCode = <Text><![CDATA[ Public Class C(Of T) <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)> Public Sub Goo(t As T) End Sub Public Sub Goo(i As Integer) End Sub End Class ]]></Text>.Value Dim expectedOrderedItemsMetadataReference = New List(Of SignatureHelpTestItem)() expectedOrderedItemsMetadataReference.Add(New SignatureHelpTestItem("C(Of Integer).Goo(i As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Dim expectedOrderedItemsSameSolution = New List(Of SignatureHelpTestItem)() expectedOrderedItemsSameSolution.Add(New SignatureHelpTestItem("C(Of Integer).Goo(t As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) expectedOrderedItemsSameSolution.Add(New SignatureHelpTestItem("C(Of Integer).Goo(i As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestSignatureHelpInEditorBrowsableContextsAsync(markup:=markup, referencedCode:=referencedCode, expectedOrderedItemsMetadataReference:=expectedOrderedItemsMetadataReference, expectedOrderedItemsSameSolution:=expectedOrderedItemsSameSolution, sourceLanguage:=LanguageNames.VisualBasic, referencedLanguage:=LanguageNames.VisualBasic) End Function <Fact, Trait(Traits.Feature, Traits.Features.Completion)> <WorkItem(7336, "DevDiv_Projects/Roslyn")> Public Async Function TestEditorBrowsable_GenericTypeCausingMethodSignatureEquality_BrowsableMixed2() As Task Dim markup = <Text><![CDATA[ Class Program Sub M() Dim ci = New C(Of Integer)() ci.Goo($$ End Sub End Class ]]></Text>.Value Dim referencedCode = <Text><![CDATA[ Public Class C(Of T) Public Sub Goo(t As T) End Sub <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)> Public Sub Goo(i As Integer) End Sub End Class ]]></Text>.Value Dim expectedOrderedItemsMetadataReference = New List(Of SignatureHelpTestItem)() expectedOrderedItemsMetadataReference.Add(New SignatureHelpTestItem("C(Of Integer).Goo(t As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Dim expectedOrderedItemsSameSolution = New List(Of SignatureHelpTestItem)() expectedOrderedItemsSameSolution.Add(New SignatureHelpTestItem("C(Of Integer).Goo(t As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) expectedOrderedItemsSameSolution.Add(New SignatureHelpTestItem("C(Of Integer).Goo(i As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestSignatureHelpInEditorBrowsableContextsAsync(markup:=markup, referencedCode:=referencedCode, expectedOrderedItemsMetadataReference:=expectedOrderedItemsMetadataReference, expectedOrderedItemsSameSolution:=expectedOrderedItemsSameSolution, sourceLanguage:=LanguageNames.VisualBasic, referencedLanguage:=LanguageNames.VisualBasic) End Function <Fact, Trait(Traits.Feature, Traits.Features.Completion)> <WorkItem(7336, "DevDiv_Projects/Roslyn")> Public Async Function TestEditorBrowsable_GenericTypeCausingMethodSignatureEquality_BothBrowsableNever() As Task Dim markup = <Text><![CDATA[ Class Program Sub M() Dim ci = New C(Of Integer)() ci.Goo($$ End Sub End Class ]]></Text>.Value Dim referencedCode = <Text><![CDATA[ Public Class C(Of T) <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)> Public Sub Goo(t As T) End Sub <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)> Public Sub Goo(i As Integer) End Sub End Class ]]></Text>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("C(Of Integer).Goo(t As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) expectedOrderedItems.Add(New SignatureHelpTestItem("C(Of Integer).Goo(i As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestSignatureHelpInEditorBrowsableContextsAsync(markup:=markup, referencedCode:=referencedCode, expectedOrderedItemsMetadataReference:=New List(Of SignatureHelpTestItem), expectedOrderedItemsSameSolution:=expectedOrderedItems, sourceLanguage:=LanguageNames.VisualBasic, referencedLanguage:=LanguageNames.VisualBasic) End Function <Fact, Trait(Traits.Feature, Traits.Features.Completion)> <WorkItem(7336, "DevDiv_Projects/Roslyn")> Public Async Function TestEditorBrowsable_GenericType2CausingMethodSignatureEquality_BothBrowsableAlways() As Task Dim markup = <Text><![CDATA[ Class Program Sub M() Dim cii As C(Of Integer, Integer) cii.Goo($$ End Sub End Class ]]></Text>.Value Dim referencedCode = <Text><![CDATA[ Public Class C(Of T, U) Public Sub Goo(t As T) End Sub Public Sub Goo(u As U) End Sub End Class ]]></Text>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("C(Of Integer, Integer).Goo(t As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) expectedOrderedItems.Add(New SignatureHelpTestItem("C(Of Integer, Integer).Goo(u As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestSignatureHelpInEditorBrowsableContextsAsync(markup:=markup, referencedCode:=referencedCode, expectedOrderedItemsMetadataReference:=expectedOrderedItems, expectedOrderedItemsSameSolution:=expectedOrderedItems, sourceLanguage:=LanguageNames.VisualBasic, referencedLanguage:=LanguageNames.VisualBasic) End Function <Fact, Trait(Traits.Feature, Traits.Features.Completion)> <WorkItem(7336, "DevDiv_Projects/Roslyn")> Public Async Function TestEditorBrowsable_GenericType2CausingMethodSignatureEquality_BrowsableMixed() As Task Dim markup = <Text><![CDATA[ Class Program Sub M() Dim cii As C(Of Integer, Integer) cii.Goo($$ End Sub End Class ]]></Text>.Value Dim referencedCode = <Text><![CDATA[ Public Class C(Of T, U) <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)> Public Sub Goo(t As T) End Sub Public Sub Goo(u As U) End Sub End Class ]]></Text>.Value Dim expectedOrderedItemsMetadataReference = New List(Of SignatureHelpTestItem)() expectedOrderedItemsMetadataReference.Add(New SignatureHelpTestItem("C(Of Integer, Integer).Goo(u As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Dim expectedOrderedItemsSameSolution = New List(Of SignatureHelpTestItem)() expectedOrderedItemsSameSolution.Add(New SignatureHelpTestItem("C(Of Integer, Integer).Goo(t As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) expectedOrderedItemsSameSolution.Add(New SignatureHelpTestItem("C(Of Integer, Integer).Goo(u As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestSignatureHelpInEditorBrowsableContextsAsync(markup:=markup, referencedCode:=referencedCode, expectedOrderedItemsMetadataReference:=expectedOrderedItemsMetadataReference, expectedOrderedItemsSameSolution:=expectedOrderedItemsSameSolution, sourceLanguage:=LanguageNames.VisualBasic, referencedLanguage:=LanguageNames.VisualBasic) End Function <Fact, Trait(Traits.Feature, Traits.Features.Completion)> <WorkItem(7336, "DevDiv_Projects/Roslyn")> Public Async Function TestEditorBrowsable_GenericType2CausingMethodSignatureEquality_BothBrowsableNever() As Task Dim markup = <Text><![CDATA[ Class Program Sub M() Dim cii as C(Of Integer, Integer) cii.Goo($$ End Sub End Class ]]></Text>.Value Dim referencedCode = <Text><![CDATA[ Public Class C(Of T, U) <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)> Public Sub Goo(t As T) End Sub <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)> Public Sub Goo(u As U) End Sub End Class ]]></Text>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("C(Of Integer, Integer).Goo(t As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) expectedOrderedItems.Add(New SignatureHelpTestItem("C(Of Integer, Integer).Goo(u As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestSignatureHelpInEditorBrowsableContextsAsync(markup:=markup, referencedCode:=referencedCode, expectedOrderedItemsMetadataReference:=New List(Of SignatureHelpTestItem), expectedOrderedItemsSameSolution:=expectedOrderedItems, sourceLanguage:=LanguageNames.VisualBasic, referencedLanguage:=LanguageNames.VisualBasic) End Function <Fact, Trait(Traits.Feature, Traits.Features.Completion)> <WorkItem(7336, "DevDiv_Projects/Roslyn")> Public Async Function TestEditorBrowsable_DefaultProperty_BrowsableStateAlways() As Task Dim markup = <Text><![CDATA[ Class Program Sub M() Dim cc As C cc($$ End Sub End Class ]]></Text>.Value Dim referencedCode = <Text><![CDATA[ Public Class C <System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Always)> Default Public Property Prop1(x As Integer) As String Get Return "Hi" End Get Set(value As String) End Set End Property End Class ]]></Text>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("C(x As Integer) As String", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestSignatureHelpInEditorBrowsableContextsAsync(markup:=markup, referencedCode:=referencedCode, expectedOrderedItemsMetadataReference:=expectedOrderedItems, expectedOrderedItemsSameSolution:=expectedOrderedItems, sourceLanguage:=LanguageNames.VisualBasic, referencedLanguage:=LanguageNames.VisualBasic) End Function <Fact, Trait(Traits.Feature, Traits.Features.Completion)> <WorkItem(7336, "DevDiv_Projects/Roslyn")> Public Async Function TestEditorBrowsable_DefaultProperty_BrowsableStateNever() As Task Dim markup = <Text><![CDATA[ Class Program Sub M() Dim cc As C cc($$ End Sub End Class ]]></Text>.Value Dim referencedCode = <Text><![CDATA[ Public Class C <System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)> Default Public Property Prop1(x As Integer) As String Get Return "Hi" End Get Set(value As String) End Set End Property End Class ]]></Text>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("C(x As Integer) As String", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestSignatureHelpInEditorBrowsableContextsAsync(markup:=markup, referencedCode:=referencedCode, expectedOrderedItemsMetadataReference:=New List(Of SignatureHelpTestItem)(), expectedOrderedItemsSameSolution:=expectedOrderedItems, sourceLanguage:=LanguageNames.VisualBasic, referencedLanguage:=LanguageNames.VisualBasic) End Function <Fact, Trait(Traits.Feature, Traits.Features.Completion)> <WorkItem(7336, "DevDiv_Projects/Roslyn")> Public Async Function TestEditorBrowsable_DefaultProperty_BrowsableStateAdvanced() As Task Dim markup = <Text><![CDATA[ Class Program Sub M() Dim cc As C cc($$ End Sub End Class ]]></Text>.Value Dim referencedCode = <Text><![CDATA[ Public Class C <System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)> Default Public Property Prop1(x As Integer) As String Get Return "Hi" End Get Set(value As String) End Set End Property End Class ]]></Text>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("C(x As Integer) As String", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestSignatureHelpInEditorBrowsableContextsAsync(markup:=markup, referencedCode:=referencedCode, expectedOrderedItemsMetadataReference:=New List(Of SignatureHelpTestItem)(), expectedOrderedItemsSameSolution:=expectedOrderedItems, sourceLanguage:=LanguageNames.VisualBasic, referencedLanguage:=LanguageNames.VisualBasic, hideAdvancedMembers:=True) Await TestSignatureHelpInEditorBrowsableContextsAsync(markup:=markup, referencedCode:=referencedCode, expectedOrderedItemsMetadataReference:=expectedOrderedItems, expectedOrderedItemsSameSolution:=expectedOrderedItems, sourceLanguage:=LanguageNames.VisualBasic, referencedLanguage:=LanguageNames.VisualBasic, hideAdvancedMembers:=False) End Function #End Region <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/543038")> Public Async Function TestSignatureHelpWhenALambdaExpressionDeclaredAndInvokedAtTheSameTime() As Task Dim markup = <text> Class C Private ReadOnly field As Integer Sub New field = Function(ByVal arg As Integer) Return 2 End Function($$ End Sub End Class </text>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("Invoke(arg As Integer) As Integer", currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestMethodUnavailableInOneLinkedFile() As Task Dim markup = <text><![CDATA[<Workspace> <Project Language="Visual Basic" CommonReferences="true" AssemblyName="Proj1" PreprocessorSymbols="GOO=true"> <Document FilePath="SourceDocument"> class C #if GOO sub bar() end sub #endif sub goo() bar($$ end sub end class </Document> </Project> <Project Language="Visual Basic" CommonReferences="true" AssemblyName="Proj2"> <Document IsLinkFile="true" LinkAssemblyName="Proj1" LinkFilePath="SourceDocument"/> </Project> </Workspace>]]></text>.Value.NormalizeLineEndings() Dim expectedDescription = New SignatureHelpTestItem("C.bar()" + vbCrLf + vbCrLf + " " + String.Format(FeaturesResources._0_1, "Proj1", FeaturesResources.Available) + vbCrLf + " " + String.Format(FeaturesResources._0_1, "Proj2", FeaturesResources.Not_Available) + vbCrLf + vbCrLf + FeaturesResources.You_can_use_the_navigation_bar_to_switch_contexts, currentParameterIndex:=0) Await VerifyItemWithReferenceWorkerAsync(markup, {expectedDescription}, False) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> Public Async Function TestExcludeLinkedFilesWithInactiveRegions() As Task Dim markup = <text><![CDATA[<Workspace> <Project Language="Visual Basic" CommonReferences="true" AssemblyName="Proj1" PreprocessorSymbols="GOO=true,BAR=true"> <Document FilePath="SourceDocument"> class C #if GOO sub bar() end sub #endif #if BAR sub goo() bar($$ end sub #endif </Document> </Project> <Project Language = "Visual Basic" CommonReferences="true" AssemblyName="Proj2"> <Document IsLinkFile = "true" LinkAssemblyName="Proj1" LinkFilePath="SourceDocument"/> </Project> <Project Language = "Visual Basic" CommonReferences="true" AssemblyName="Proj3" PreprocessorSymbols="BAR=true"> <Document IsLinkFile = "true" LinkAssemblyName="Proj1" LinkFilePath="SourceDocument"/> </Project> </Workspace>]]></text>.Value.NormalizeLineEndings() Dim expectedDescription = New SignatureHelpTestItem("C.bar()" + $"\r\n\r\n {String.Format(FeaturesResources._0_1, "Proj1", FeaturesResources.Available)}\r\n {String.Format(FeaturesResources._0_1, "Proj3", FeaturesResources.Not_Available)}\r\n\r\n{FeaturesResources.You_can_use_the_navigation_bar_to_switch_contexts}".Replace("\r\n", vbCrLf), currentParameterIndex:=0) Await VerifyItemWithReferenceWorkerAsync(markup, {expectedDescription}, False) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> <WorkItem("https://github.com/dotnet/roslyn/issues/699")> <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/1068424")> Public Async Function TestGenericParameters1() As Task Dim markup = <a><![CDATA[ Class C Sub M() Goo(""$$) End Sub Sub Goo(Of T)(a As T) End Sub Sub Goo(Of T, U)(a As T, b As U) End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem) From { New SignatureHelpTestItem("C.Goo(Of String)(a As String)", String.Empty, String.Empty, currentParameterIndex:=0), New SignatureHelpTestItem("C.Goo(Of T, U)(a As T, b As U)", String.Empty) } Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> <WorkItem("https://github.com/dotnet/roslyn/issues/699")> <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/1068424")> Public Async Function TestGenericParameters2() As Task Dim markup = <a><![CDATA[ Class C Sub M() Goo("", $$) End Sub Sub Goo(Of T)(a As T) End Sub Sub Goo(Of T, U)(a As T, b As U) End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem) From { New SignatureHelpTestItem("C.Goo(Of T)(a As T)", String.Empty), New SignatureHelpTestItem("C.Goo(Of T, U)(a As T, b As U)", String.Empty, String.Empty, currentParameterIndex:=1) } Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> <WorkItem("https://github.com/dotnet/roslyn/issues/3537")> Public Async Function TestEscapedIdentifiers() As Task Dim markup = " Class C Sub [Next]() Dim x As New C x.Next($$) End Sub End Class " Await TestAsync(markup, SpecializedCollections.SingletonEnumerable(New SignatureHelpTestItem("C.Next()", String.Empty))) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> <WorkItem("https://github.com/dotnet/roslyn/issues/4144")> Public Async Function TestSigHelpIsVisibleOnInaccessibleItem() As Task Dim markup = " Imports System.Collections.Generic Class A Dim args As List(Of Integer) End Class Class B Inherits A Sub M() args.Add($$ End Sub End Class " Await TestAsync(markup, {New SignatureHelpTestItem("List(Of Integer).Add(item As Integer)")}) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> <WorkItem("https://github.com/dotnet/roslyn/issues/2579")> Public Async Function TestInvocationOnMeExpression_Constructor() As Task Dim markup = <a><![CDATA[ Imports System Public Class A Public Sub New() [|Me.New($$ |]End Sub Public Sub New(x As Integer) End Sub End Class ]]></a>.Value Dim expectedOrderedItems = New List(Of SignatureHelpTestItem)() expectedOrderedItems.Add(New SignatureHelpTestItem("A.New(x As Integer)", String.Empty, String.Empty, currentParameterIndex:=0)) Await TestAsync(markup, expectedOrderedItems) End Function <Fact, Trait(Traits.Feature, Traits.Features.SignatureHelp)> <WorkItem("https://github.com/dotnet/roslyn/issues/40451")> Public Async Function TestSigHelpIsVisibleWithDuplicateMethodNames() As Task Dim markup = " Class C Shared Sub Test() M(1, 2$$) End Sub Sub M(y As Integer) End Sub Shared Sub M(x As Integer, y As Integer) End Sub End Class " Await TestAsync(markup, {New SignatureHelpTestItem("C.M(x As Integer, y As Integer)")}) End Function End Class End Namespace