/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/EditorFeatures/Test2/InlineHints/VisualBasicInlineParameterNameHintsTests.vb
953 строки
29 KB
Cyrus Najmabadi
Organize VB imports
27 июн 2025, 21:53
27 июн 2025, 21:53
e9c47fd
Код
Авторство
О чём код?
' 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. Namespace Microsoft.CodeAnalysis.Editor.UnitTests.InlineHints <Trait(Traits.Feature, Traits.Features.InlineHints)> Public Class VisualBasicInlineParameterNameHintsTests Inherits AbstractInlineHintsTests <WpfFact> Public Async Function TestNoParameterSimpleCase() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class Foo Sub Main(args As String()) TestMethod() End Sub Sub TestMethod() End Sub End Class </Document> </Project> </Workspace> Await VerifyParamHints(input, input) End Function <WpfFact> Public Async Function TestOneParameterSimpleCase() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class Foo Sub Main(args As String()) TestMethod({|x:|}5) End Sub Sub TestMethod(x As Integer) End Sub End Class </Document> </Project> </Workspace> Dim output = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class Foo Sub Main(args As String()) TestMethod(x:=5) End Sub Sub TestMethod(x As Integer) End Sub End Class </Document> </Project> </Workspace> Await VerifyParamHints(input, output) End Function <WpfFact> Public Async Function TestTwoParametersSimpleCase() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class Foo Sub Main(args As String()) TestMethod({|x:|}5, {|y:|}2.2) End Sub Sub TestMethod(x As Integer, y As Double) End Sub End Class </Document> </Project> </Workspace> Dim output = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class Foo Sub Main(args As String()) TestMethod(x:=5, y:=2.2) End Sub Sub TestMethod(x As Integer, y As Double) End Sub End Class </Document> </Project> </Workspace> Await VerifyParamHints(input, output) End Function <WpfFact> Public Async Function TestNegativeNumberParametersSimpleCase() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class Foo Sub Main(args As String()) TestMethod({|x:|}-5, {|y:|}2.2) End Sub Sub TestMethod(x As Integer, y As Double) End Sub End Class </Document> </Project> </Workspace> Dim output = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class Foo Sub Main(args As String()) TestMethod(x:=-5, y:=2.2) End Sub Sub TestMethod(x As Integer, y As Double) End Sub End Class </Document> </Project> </Workspace> Await VerifyParamHints(input, output) End Function <WpfFact> Public Async Function TestCIntCast() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class Foo Sub Main(args As String()) TestMethod({|x:|}CInt(5.5), {|y:|}2.2) End Sub Sub TestMethod(x As Integer, y As Double) End Sub End Class </Document> </Project> </Workspace> Dim output = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class Foo Sub Main(args As String()) TestMethod(x:=CInt(5.5), y:=2.2) End Sub Sub TestMethod(x As Integer, y As Double) End Sub End Class </Document> </Project> </Workspace> Await VerifyParamHints(input, output) End Function <WpfFact> Public Async Function TestCTypeCast() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class Foo Sub Main(args As String()) TestMethod({|x:|}CType(5.5, Integer), {|y:|}2.2) End Sub Sub TestMethod(x As Integer, y As Double) End Sub End Class </Document> </Project> </Workspace> Dim output = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class Foo Sub Main(args As String()) TestMethod(x:=CType(5.5, Integer), y:=2.2) End Sub Sub TestMethod(x As Integer, y As Double) End Sub End Class </Document> </Project> </Workspace> Await VerifyParamHints(input, output) End Function <WpfFact> Public Async Function TestTryCastCase() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Public Class Test Public Sub test(x As String) End Sub Public Sub Main() test({|x:|}TryCast(New Object(), String)) End Sub End Class </Document> </Project> </Workspace> Dim output = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Public Class Test Public Sub test(x As String) End Sub Public Sub Main() test(x:=TryCast(New Object(), String)) End Sub End Class </Document> </Project> </Workspace> Await VerifyParamHints(input, output) End Function <WpfFact> Public Async Function TestDirectCastCase() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Public Class Test Public Sub test(x As String) End Sub Public Sub Main() test({|x:|}DirectCast(New Object(), String)) End Sub End Class </Document> </Project> </Workspace> Dim output = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Public Class Test Public Sub test(x As String) End Sub Public Sub Main() test(x:=DirectCast(New Object(), String)) End Sub End Class </Document> </Project> </Workspace> Await VerifyParamHints(input, output) End Function <WpfFact> Public Async Function TestCastingANegativeSimpleCase() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class Foo Sub Main(args As String()) TestMethod({|x:|}CInt(-5.5), {|y:|}2.2) End Sub Sub TestMethod(x As Integer, y As Double) End Sub End Class </Document> </Project> </Workspace> Dim output = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class Foo Sub Main(args As String()) TestMethod(x:=CInt(-5.5), y:=2.2) End Sub Sub TestMethod(x As Integer, y As Double) End Sub End Class </Document> </Project> </Workspace> Await VerifyParamHints(input, output) End Function <WpfFact> Public Async Function TestObjectCreationParametersSimpleCase() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class Foo Sub Main(args As String()) TestMethod({|x:|}CInt(-5.5), {|y:|}2.2, {|obj:|}New Object()) End Sub Sub TestMethod(x As Integer, y As Double, obj As Object) End Sub End Class </Document> </Project> </Workspace> Dim output = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class Foo Sub Main(args As String()) TestMethod(x:=CInt(-5.5), y:=2.2, obj:=New Object()) End Sub Sub TestMethod(x As Integer, y As Double, obj As Object) End Sub End Class </Document> </Project> </Workspace> Await VerifyParamHints(input, output) End Function <WpfFact> Public Async Function TestMissingParameterNameSimpleCase() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class Foo Sub Main(args As String()) TestMethod() End Sub Sub TestMethod(As Integer) End Sub End Class </Document> </Project> </Workspace> Await VerifyParamHints(input, input) End Function <WpfFact> Public Async Function TestDelegateParameter() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Public Class Test Public Delegate Sub TestDelegate(ByVal str As String) Public Sub TestTheDelegate(ByVal test As TestDelegate) test({|str:|}"Test") End Sub End Class </Document> </Project> </Workspace> Dim output = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Public Class Test Public Delegate Sub TestDelegate(ByVal str As String) Public Sub TestTheDelegate(ByVal test As TestDelegate) test(str:="Test") End Sub End Class </Document> </Project> </Workspace> Await VerifyParamHints(input, output) End Function <WpfFact> Public Async Function TestParamsArgument() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Public Class Test Public Sub UseParams(ParamArray args() As Integer) End Sub Public Sub Main() UseParams({|args:|}1, 2, 3, 4, 5) End Sub End Class </Document> </Project> </Workspace> Dim output = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Public Class Test Public Sub UseParams(ParamArray args() As Integer) End Sub Public Sub Main() UseParams(1, 2, 3, 4, 5) End Sub End Class </Document> </Project> </Workspace> Await VerifyParamHints(input, output) End Function <WpfFact> Public Async Function TestAttributesArgument() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> <Obsolete({|message:|}"test")> Public Class Foo Sub TestMethod() End Sub End Class </Document> </Project> </Workspace> Dim output = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> <Obsolete(message:="test")> Public Class Foo Sub TestMethod() End Sub End Class </Document> </Project> </Workspace> Await VerifyParamHints(input, output) End Function <WpfFact> Public Async Function TestIncompleteFunctionCall() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class Foo Sub Main(args As String()) TestMethod({|x:|}5,) End Sub Sub TestMethod(x As Integer, y As Double) End Sub End Class </Document> </Project> </Workspace> Dim output = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class Foo Sub Main(args As String()) TestMethod(x:=5,) End Sub Sub TestMethod(x As Integer, y As Double) End Sub End Class </Document> </Project> </Workspace> Await VerifyParamHints(input, output) End Function <WpfFact> Public Async Function TestInterpolatedString() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class Foo Sub Main(args As String()) TestMethod({|x:|}$"") End Sub Sub TestMethod(x As String) End Sub End Class </Document> </Project> </Workspace> Dim output = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class Foo Sub Main(args As String()) TestMethod(x:=$"") End Sub Sub TestMethod(x As String) End Sub End Class </Document> </Project> </Workspace> Await VerifyParamHints(input, output) End Function <WpfFact, WorkItem("https://github.com/dotnet/roslyn/issues/47597")> Public Async Function TestNotOnEnableDisableBoolean1() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> class A sub EnableLogging(value as boolean) end sub sub Main() EnableLogging(true) end sub end class </Document> </Project> </Workspace> Await VerifyParamHints(input, input) End Function <WpfFact, WorkItem("https://github.com/dotnet/roslyn/issues/47597")> Public Async Function TestNotOnEnableDisableBoolean2() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> class A sub DisableLogging(value as boolean) end sub sub Main() DisableLogging(true) end sub end class </Document> </Project> </Workspace> Await VerifyParamHints(input, input) End Function <WpfFact, WorkItem("https://github.com/dotnet/roslyn/issues/47597")> Public Async Function TestOnEnableDisableNonBoolean1() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> class A sub EnableLogging(value as string) end sub sub Main() EnableLogging({|value:|}"IO") end sub end class </Document> </Project> </Workspace> Dim output = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> class A sub EnableLogging(value as string) end sub sub Main() EnableLogging(value:="IO") end sub end class </Document> </Project> </Workspace> Await VerifyParamHints(input, output) End Function <WpfFact, WorkItem("https://github.com/dotnet/roslyn/issues/47597")> Public Async Function TestOnEnableDisableNonBoolean2() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> class A sub DisableLogging(value as string) end sub sub Main() DisableLogging({|value:|}"IO") end sub end class </Document> </Project> </Workspace> Dim output = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> class A sub DisableLogging(value as string) end sub sub Main() DisableLogging(value:="IO") end sub end class </Document> </Project> </Workspace> Await VerifyParamHints(input, output) End Function <WpfFact, WorkItem("https://github.com/dotnet/roslyn/issues/47597")> Public Async Function TestOnSetMethodWithClearContext() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> class A sub SetClassification(classification as string) end sub sub Main() SetClassification("IO") end sub end class </Document> </Project> </Workspace> Await VerifyParamHints(input, input) End Function <WpfFact, WorkItem("https://github.com/dotnet/roslyn/issues/47597")> Public Async Function TestOnSetMethodWithUnclearContext() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> class A sub SetClassification(values as string) end sub sub Main() SetClassification({|values:|}"IO") end sub end class </Document> </Project> </Workspace> Dim output = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> class A sub SetClassification(values as string) end sub sub Main() SetClassification(values:="IO") end sub end class </Document> </Project> </Workspace> Await VerifyParamHints(input, output) End Function <WpfFact, WorkItem("https://github.com/dotnet/roslyn/issues/47597")> Public Async Function TestMethodWithAlphaSuffix1() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> class A sub Goo(objA as integer, objB as integer, objC as integer) end sub sub Main() Goo(1, 2, 3) end sub end class </Document> </Project> </Workspace> Await VerifyParamHints(input, input) End Function <WpfFact, WorkItem("https://github.com/dotnet/roslyn/issues/47597")> Public Async Function TestMethodWithNonAlphaSuffix1() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> class A sub Goo(objA as integer, objB as integer, nonobjC as integer) end sub sub Main() Goo({|objA:|}1, {|objB:|}2, {|nonobjC:|}3) end sub end class </Document> </Project> </Workspace> Dim output = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> class A sub Goo(objA as integer, objB as integer, nonobjC as integer) end sub sub Main() Goo(objA:=1, objB:=2, nonobjC:=3) end sub end class </Document> </Project> </Workspace> Await VerifyParamHints(input, output) End Function <WpfFact, WorkItem("https://github.com/dotnet/roslyn/issues/47597")> Public Async Function TestMethodWithNumericSuffix1() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> class A sub Goo(obj1 as integer, obj2 as integer, obj3 as integer) end sub sub Main() Goo(1, 2, 3) end sub end class </Document> </Project> </Workspace> Await VerifyParamHints(input, input) End Function <WpfFact, WorkItem("https://github.com/dotnet/roslyn/issues/47597")> Public Async Function TestMethodWithNonNumericSuffix1() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> class A sub Goo(obj1 as integer, obj2 as integer, nonobj3 as integer) end sub sub Main() Goo({|obj1:|}1, {|obj2:|}2, {|nonobj3:|}3) end sub end class </Document> </Project> </Workspace> Dim output = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> class A sub Goo(obj1 as integer, obj2 as integer, nonobj3 as integer) end sub sub Main() Goo(obj1:=1, obj2:=2, nonobj3:=3) end sub end class </Document> </Project> </Workspace> Await VerifyParamHints(input, output) End Function <WpfFact, WorkItem("https://github.com/dotnet/roslyn/issues/66817")> Public Async Function TestParameterNameIsReservedKeyword() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class C Sub M() N({|Integer:|}1) End Sub Sub N([Integer] As Integer) End Sub End Class </Document> </Project> </Workspace> Dim output = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class C Sub M() N(Integer:=1) End Sub Sub N([Integer] As Integer) End Sub End Class </Document> </Project> </Workspace> Await VerifyParamHints(input, output) End Function <WpfFact, WorkItem("https://github.com/dotnet/roslyn/issues/66817")> Public Async Function TestParameterNameIsContextualKeyword() As Task Dim input = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class C Sub M() N({|Async:|}True) End Sub Sub N(Async As Boolean) End Sub End Class </Document> </Project> </Workspace> Dim output = <Workspace> <Project Language="Visual Basic" CommonReferences="true"> <Document> Class C Sub M() N(Async:=True) End Sub Sub N(Async As Boolean) End Sub End Class </Document> </Project> </Workspace> Await VerifyParamHints(input, output) End Function End Class End Namespace