SemanticQuickInfoSourceTests.vb 85.6 KB
Newer Older
1 2 3
' Copyright (c) Microsoft.  All Rights Reserved.  Licensed under the Apache License, Version 2.0.  See License.txt in the project root for license information.

Imports System.Threading
C
Cyrus Najmabadi 已提交
4
Imports System.Threading.Tasks
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Imports Microsoft.CodeAnalysis.Editor.Shared.Utilities
Imports Microsoft.CodeAnalysis.Editor.UnitTests.Extensions
Imports Microsoft.CodeAnalysis.Editor.UnitTests.QuickInfo
Imports Microsoft.CodeAnalysis.Editor.UnitTests.Workspaces
Imports Microsoft.CodeAnalysis.Editor.VisualBasic.QuickInfo
Imports Microsoft.CodeAnalysis.Shared.TestHooks
Imports Microsoft.VisualStudio.Language.Intellisense
Imports Microsoft.VisualStudio.Text
Imports Microsoft.VisualStudio.Text.Editor
Imports Microsoft.VisualStudio.Text.Projection
Imports Microsoft.VisualStudio.Utilities

Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.QuickInfo
    Public Class SemanticQuickInfoSourceTests
        Inherits AbstractSemanticQuickInfoSourceTests

C
Cyrus Najmabadi 已提交
21 22 23
        Protected Overrides Function TestAsync(markup As String, ParamArray expectedResults() As Action(Of Object)) As Task
            Return TestWithReferencesAsync(markup, Array.Empty(Of String)(), expectedResults)
        End Function
24

25
        Protected Async Function TestSharedAsync(workspace As TestWorkspace, position As Integer, ParamArray expectedResults() As Action(Of Object)) As Task
26 27 28 29 30 31 32 33 34
            Dim noListeners = SpecializedCollections.EmptyEnumerable(Of Lazy(Of IAsynchronousOperationListener, FeatureMetadata))()

            Dim provider = New SemanticQuickInfoProvider(
             workspace.GetService(Of IProjectionBufferFactoryService),
             workspace.GetService(Of IEditorOptionsFactoryService),
             workspace.GetService(Of ITextEditorFactoryService),
             workspace.GetService(Of IGlyphService),
             workspace.GetService(Of ClassificationTypeMap))

35
            Await TestSharedAsync(workspace, provider, position, expectedResults)
36 37 38

            ' speculative semantic model
            Dim document = workspace.CurrentSolution.Projects.First().Documents.First()
39
            If Await CanUseSpeculativeSemanticModelAsync(document, position) Then
40 41 42 43 44 45
                Dim buffer = workspace.Documents.Single().TextBuffer
                Using edit = buffer.CreateEdit()
                    edit.Replace(0, buffer.CurrentSnapshot.Length, buffer.CurrentSnapshot.GetText())
                    edit.Apply()
                End Using

46
                Await TestSharedAsync(workspace, provider, position, expectedResults)
47
            End If
48
        End Function
49

50 51 52
        Private Async Function TestSharedAsync(workspace As TestWorkspace, provider As SemanticQuickInfoProvider, position As Integer, expectedResults() As Action(Of Object)) As Task
            Dim state = Await provider.GetItemAsync(workspace.CurrentSolution.Projects.First().Documents.First(),
                                         position, cancellationToken:=CancellationToken.None)
53 54 55 56 57 58 59 60 61 62 63 64 65 66

            If state IsNot Nothing Then
                WaitForDocumentationComment(state.Content)
            End If

            If expectedResults Is Nothing Then
                Assert.Null(state)
            Else
                Assert.NotNull(state)

                For Each expected In expectedResults
                    expected(state.Content)
                Next
            End If
67
        End Function
68

C
Cyrus Najmabadi 已提交
69
        Protected Async Function TestFromXmlAsync(markup As String, ParamArray expectedResults As Action(Of Object)()) As Task
C
Cyrus Najmabadi 已提交
70
            Using workspace = Await TestWorkspace.CreateAsync(markup)
71
                Await TestSharedAsync(workspace, workspace.Documents.First().CursorPosition.Value, expectedResults)
72
            End Using
C
Cyrus Najmabadi 已提交
73
        End Function
74

C
Cyrus Najmabadi 已提交
75
        Protected Async Function TestWithReferencesAsync(markup As String, metadataReferences As String(), ParamArray expectedResults() As Action(Of Object)) As Task
76 77 78 79
            Dim code As String = Nothing
            Dim position As Integer = Nothing
            MarkupTestFile.GetPosition(markup, code, position)

C
Cyrus Najmabadi 已提交
80
            Using workspace = Await TestWorkspace.CreateVisualBasicAsync(code, Nothing, metadataReferences:=metadataReferences)
81
                Await TestSharedAsync(workspace, position, expectedResults)
82
            End Using
C
Cyrus Najmabadi 已提交
83
        End Function
84

C
Cyrus Najmabadi 已提交
85
        Protected Async Function TestWithImportsAsync(markup As String, ParamArray expectedResults() As Action(Of Object)) As Task
86 87 88 89 90 91
            Dim markupWithImports =
             "Imports System" & vbCrLf &
             "Imports System.Collections.Generic" & vbCrLf &
             "Imports System.Linq" & vbCrLf &
             markup

C
Cyrus Najmabadi 已提交
92 93
            Await TestAsync(markupWithImports, expectedResults)
        End Function
94

C
Cyrus Najmabadi 已提交
95
        Protected Async Function TestInClassAsync(markup As String, ParamArray expectedResults() As Action(Of Object)) As Task
96 97 98 99 100
            Dim markupInClass =
             "Class C" & vbCrLf &
             markup & vbCrLf &
             "End Class"

C
Cyrus Najmabadi 已提交
101 102
            Await TestWithImportsAsync(markupInClass, expectedResults)
        End Function
103

C
Cyrus Najmabadi 已提交
104
        Protected Async Function TestInMethodAsync(markup As String, ParamArray expectedResults() As Action(Of Object)) As Task
105 106 107 108 109 110 111
            Dim markupInClass =
             "Class C" & vbCrLf &
             "Sub M()" & vbCrLf &
             markup & vbCrLf &
             "End Sub" & vbCrLf &
             "End Class"

C
Cyrus Najmabadi 已提交
112 113
            Await TestWithImportsAsync(markupInClass, expectedResults)
        End Function
114

115
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
116 117
        Public Async Function TestInt32() As Task
            Await TestInClassAsync("Dim i As $$Int32",
118
             MainDescription("Structure System.Int32"))
C
Cyrus Najmabadi 已提交
119
        End Function
120

121
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
122 123
        Public Async Function TestInteger() As Task
            Await TestInClassAsync("Dim i As $$Integer",
124 125 126 127 128 129 130
             MainDescription("Structure System.Int32",
              ExpectedClassifications(
               Keyword("Structure"),
               WhiteSpace(" "),
               Identifier("System"),
               Operators.Dot,
               Struct("Int32"))))
C
Cyrus Najmabadi 已提交
131
        End Function
132

133
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
134 135
        Public Async Function TestString() As Task
            Await TestInClassAsync("Dim i As $$String",
136 137 138 139 140 141 142
             MainDescription("Class System.String",
              ExpectedClassifications(
               Keyword("Class"),
               WhiteSpace(" "),
               Identifier("System"),
               Operators.Dot,
               [Class]("String"))))
C
Cyrus Najmabadi 已提交
143
        End Function
144

145
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
146 147
        Public Async Function TestStringAtEndOfToken() As Task
            Await TestInClassAsync("Dim i As String$$",
148
             MainDescription("Class System.String"))
C
Cyrus Najmabadi 已提交
149
        End Function
150

151
        <WorkItem(1280, "https://github.com/dotnet/roslyn/issues/1280")>
152
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
153 154
        Public Async Function TestStringLiteral() As Task
            Await TestInClassAsync("Dim i = ""cat""$$",
155
             MainDescription("Class System.String"))
C
Cyrus Najmabadi 已提交
156
        End Function
157 158

        <WorkItem(1280, "https://github.com/dotnet/roslyn/issues/1280")>
159
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
160 161 162 163 164 165
        Public Async Function TestInterpolatedStringLiteral() As Task
            Await TestInClassAsync("Dim i = $""cat""$$", MainDescription("Class System.String"))
            Await TestInClassAsync("Dim i = $""c$$at""", MainDescription("Class System.String"))
            Await TestInClassAsync("Dim i = $""$$cat""", MainDescription("Class System.String"))
            Await TestInClassAsync("Dim i = $""cat {1$$ + 2} dog""", MainDescription("Structure System.Int32"))
        End Function
166

167
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
168 169
        Public Async Function TestListOfString() As Task
            Await TestInClassAsync("Dim l As $$List(Of String)",
170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185
             MainDescription("Class System.Collections.Generic.List(Of T)",
              ExpectedClassifications(
               Keyword("Class"),
               WhiteSpace(" "),
               Identifier("System"),
               Operators.Dot,
               Identifier("Collections"),
               Operators.Dot,
               Identifier("Generic"),
               Operators.Dot,
               [Class]("List"),
               Punctuation.OpenParen,
               Keyword("Of"),
               WhiteSpace(" "),
               TypeParameter("T"),
               Punctuation.CloseParen)),
186
             TypeParameterMap(vbCrLf & $"T {FeaturesResources.is_} String",
187 188 189 190
              ExpectedClassifications(
                  WhiteSpace(vbCrLf),
               TypeParameter("T"),
               WhiteSpace(" "),
191
               Text(FeaturesResources.is_),
192 193
               WhiteSpace(" "),
               Keyword("String"))))
C
Cyrus Najmabadi 已提交
194
        End Function
195

196
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
197 198
        Public Async Function TestListOfT() As Task
            Await TestWithImportsAsync(<Text>
199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218
                    Class C(Of T)
                        Dim l As $$List(Of T)
                    End Class
                </Text>.NormalizedValue,
             MainDescription("Class System.Collections.Generic.List(Of T)",
              ExpectedClassifications(
               Keyword("Class"),
               WhiteSpace(" "),
               Identifier("System"),
               Operators.Dot,
               Identifier("Collections"),
               Operators.Dot,
               Identifier("Generic"),
               Operators.Dot,
               [Class]("List"),
               Punctuation.OpenParen,
               Keyword("Of"),
               WhiteSpace(" "),
               TypeParameter("T"),
               Punctuation.CloseParen)))
C
Cyrus Najmabadi 已提交
219
        End Function
220

221
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
222 223
        Public Async Function TestListOfT2() As Task
            Await TestWithImportsAsync(<Text>
224 225 226 227 228
                    Class C(Of T)
                        Dim l As Lis$$t(Of T)
                    End Class
                 </Text>.NormalizedValue,
             MainDescription("Class System.Collections.Generic.List(Of T)"))
C
Cyrus Najmabadi 已提交
229
        End Function
230

231
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
232 233
        Public Async Function TestListOfT3() As Task
            Await TestWithImportsAsync(<Text>
234 235 236 237 238
                    Class C(Of T)
                        Dim l As List$$(Of T)
                    End Class
                </Text>.NormalizedValue,
             MainDescription("Class System.Collections.Generic.List(Of T)"))
C
Cyrus Najmabadi 已提交
239
        End Function
240

241
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
242 243
        Public Async Function TestListOfT4() As Task
            Await TestWithImportsAsync(<Text>
244 245 246 247 248
                    Class C(Of T)
                        Dim l As List $$(Of T)
                    End Class
                </Text>.NormalizedValue,
             Nothing)
C
Cyrus Najmabadi 已提交
249
        End Function
250

251
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
252 253
        Public Async Function TestDictionaryOfIntegerAndString() As Task
            Await TestWithImportsAsync(<Text>
254 255 256 257 258 259
                    Class C
                        Dim d As $$Dictionary(Of Integer, String)
                    End Class
                </Text>.NormalizedValue,
             MainDescription("Class System.Collections.Generic.Dictionary(Of TKey, TValue)"),
             TypeParameterMap(
260 261
              Lines(vbCrLf & $"TKey {FeaturesResources.is_} Integer",
                 $"TValue {FeaturesResources.is_} String")))
C
Cyrus Najmabadi 已提交
262
        End Function
263

264
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
265 266
        Public Async Function TestDictionaryOfTAndU() As Task
            Await TestWithImportsAsync(<Text>
267 268 269 270 271 272
                    Class C(Of T, U)
                        Dim d As $$Dictionary(Of T, U)
                    End Class
                </Text>.NormalizedValue,
             MainDescription("Class System.Collections.Generic.Dictionary(Of TKey, TValue)"),
             TypeParameterMap(
273 274
              Lines(vbCrLf & $"TKey {FeaturesResources.is_} T",
                 $"TValue {FeaturesResources.is_} U")))
C
Cyrus Najmabadi 已提交
275
        End Function
276

277
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
278 279
        Public Async Function TestIEnumerableOfInteger() As Task
            Await TestInClassAsync("Dim ie As $$IEnumerable(Of Integer)",
280
             MainDescription("Interface System.Collections.Generic.IEnumerable(Of Out T)"),
281
             TypeParameterMap(vbCrLf & $"T {FeaturesResources.is_} Integer"))
C
Cyrus Najmabadi 已提交
282
        End Function
283

J
Jared Parsons 已提交
284
        <WorkItem(542157, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/542157")>
285
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
286 287
        Public Async Function TestEvent() As Task
            Await TestInMethodAsync("AddHandler System.Console.$$CancelKeyPress, AddressOf S",
288 289 290 291 292 293 294 295 296 297 298
             MainDescription("Event Console.CancelKeyPress As ConsoleCancelEventHandler",
              ExpectedClassifications(
               Keyword("Event"),
               WhiteSpace(" "),
               [Class]("Console"),
               Operators.Dot,
               Identifier("CancelKeyPress"),
               WhiteSpace(" "),
               Keyword("As"),
               WhiteSpace(" "),
               [Delegate]("ConsoleCancelEventHandler"))))
C
Cyrus Najmabadi 已提交
299
        End Function
300

301
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
302 303
        Public Async Function TestEventHandler() As Task
            Await TestInClassAsync("Dim e As $$EventHandler",
304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328
             MainDescription("Delegate Sub System.EventHandler(sender As Object, e As System.EventArgs)",
              ExpectedClassifications(
               Keyword("Delegate"),
               WhiteSpace(" "),
               Keyword("Sub"),
               WhiteSpace(" "),
               Identifier("System"),
               Operators.Dot,
               [Delegate]("EventHandler"),
               Punctuation.OpenParen,
               Identifier("sender"),
               WhiteSpace(" "),
               Keyword("As"),
               WhiteSpace(" "),
               Keyword("Object"),
               Punctuation.Comma,
               WhiteSpace(" "),
               Identifier("e"),
               WhiteSpace(" "),
               Keyword("As"),
               WhiteSpace(" "),
               Identifier("System"),
               Operators.Dot,
               [Class]("EventArgs"),
               Punctuation.CloseParen)))
C
Cyrus Najmabadi 已提交
329
        End Function
330

331
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
332 333
        Public Async Function TestTypeParameter() As Task
            Await TestAsync(StringFromLines("Class C(Of T)",
334 335
                  "    Dim t As $$T",
                  "End Class"),
336
             MainDescription($"T {FeaturesResources.in_} C(Of T)"))
C
Cyrus Najmabadi 已提交
337
        End Function
338

339
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
340 341
        Public Async Function TestNullableOfInteger() As Task
            Await TestInClassAsync("Dim n As $$Nullable(Of Integer)",
342
             MainDescription("Structure System.Nullable(Of T As Structure)"),
343
             TypeParameterMap(vbCrLf & $"T {FeaturesResources.is_} Integer"))
C
Cyrus Najmabadi 已提交
344
        End Function
345

346
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
347 348
        Public Async Function TestGenericTypeDeclaredOnMethod1() As Task
            Await TestAsync(<Text>
349 350 351 352 353 354
                    Class C
                        Shared Sub Meth1(Of T1)
                            Dim i As $$T1
                        End Sub
                    End Class
                </Text>.NormalizedValue,
355
             MainDescription($"T1 {FeaturesResources.in_} C.Meth1(Of T1)"))
C
Cyrus Najmabadi 已提交
356
        End Function
357

358
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
359 360
        Public Async Function TestGenericTypeDeclaredOnMethod2() As Task
            Await TestAsync(<Text>
361 362 363 364 365 366
                    Class C
                        Shared Sub Meth1(Of T1 As Class)
                            Dim i As $$T1
                        End Sub
                    End Class
                </Text>.NormalizedValue,
367
             MainDescription($"T1 {FeaturesResources.in_} C.Meth1(Of T1 As Class)"))
C
Cyrus Najmabadi 已提交
368
        End Function
369

J
Jared Parsons 已提交
370
        <WorkItem(538732, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/538732")>
371
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
372 373
        Public Async Function TestParameter() As Task
            Await TestWithImportsAsync(<Text>
374 375 376 377 378 379
                    Module C
                        Shared Sub Foo(Of T1 As Class)
                            Console.Wr$$ite(5)
                        End Sub
                    End Class
                </Text>.NormalizedValue,
380
             MainDescription($"Sub Console.Write(value As Integer) (+ 17 {FeaturesResources.overloads_})",
381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399
              ExpectedClassifications(
               Keyword("Sub"),
               WhiteSpace(" "),
               [Class]("Console"),
               Operators.Dot,
               Identifier("Write"),
               Punctuation.OpenParen,
               Identifier("value"),
               WhiteSpace(" "),
               Keyword("As"),
               WhiteSpace(" "),
               Keyword("Integer"),
               Punctuation.CloseParen,
               WhiteSpace(" "),
               Punctuation.OpenParen,
               Punctuation.Text("+"),
               WhiteSpace(" "),
               Text("17"),
               WhiteSpace(" "),
400
               Text(FeaturesResources.overloads_),
401
               Punctuation.CloseParen)))
C
Cyrus Najmabadi 已提交
402
        End Function
403

404
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
405 406
        Public Async Function TestOnFieldDeclaration() As Task
            Await TestInClassAsync("Dim $$i As Int32",
407
             MainDescription($"({FeaturesResources.field}) C.i As Integer"))
C
Cyrus Najmabadi 已提交
408
        End Function
409

410
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
411 412
        Public Async Function TestMinimal1() As Task
            Await TestAsync(<Text>
413 414 415 416 417
                     Imports System.Collections.Generic
                     Class C
                     Dim p as New Li$$st(Of string)
                     End Class
                 </Text>.NormalizedValue,
418
              MainDescription($"Sub List(Of String).New() (+ 2 {FeaturesResources.overloads_})"))
C
Cyrus Najmabadi 已提交
419
        End Function
420

421
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
422 423
        Public Async Function TestMinimal2() As Task
            Await TestAsync(<Text>
424 425 426 427 428 429
                     Imports System.Collections.Generic
                     Class C
                     function $$P() as List(Of string)
                     End Class
                 </Text>.NormalizedValue,
              MainDescription("Function C.P() As List(Of String)"))
C
Cyrus Najmabadi 已提交
430
        End Function
431

432
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
433 434
        Public Async Function TestAnd() As Task
            Await TestAsync(<Text>
435 436 437 438 439 440 441 442 443
                     Imports System.Collections.Generic
                     Class C
                        sub s()
                            dim x as Boolean
                            x= true a$$nd False
                        end sub
                     End Class
                 </Text>.NormalizedValue,
              MainDescription("Operator Boolean.And(left As Boolean, right As Boolean) As Boolean"))
C
Cyrus Najmabadi 已提交
444
        End Function
445

J
Jared Parsons 已提交
446
        <WorkItem(538822, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/538822")>
447
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
448 449
        Public Async Function TestDelegate() As Task
            Await TestAsync(<Text>
450 451 452 453 454 455 456 457 458
                     Imports System
                     Class C
                        sub s()
                            dim F as F$$unc(of Integer, String)
                        end sub
                     End Class
                 </Text>.NormalizedValue,
              MainDescription("Delegate Function System.Func(Of In T, Out TResult)(arg As T) As TResult"),
              TypeParameterMap(
459 460
               Lines(vbCrLf & $"T {FeaturesResources.is_} Integer",
                  $"TResult {FeaturesResources.is_} String")))
C
Cyrus Najmabadi 已提交
461
        End Function
462

J
Jared Parsons 已提交
463
        <WorkItem(538824, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/538824")>
464
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
465 466
        Public Async Function TestOnDelegateInvocation() As Task
            Await TestAsync(<Text>
467 468 469 470 471 472 473
                    Class Program
                        delegate sub D1()
                        shared sub Main()
                            dim d as D1
                            $$d()
                        end sub
                    end class</Text>.NormalizedValue,
474
            MainDescription($"({FeaturesResources.local_variable}) d As D1"))
C
Cyrus Najmabadi 已提交
475
        End Function
476

J
Jared Parsons 已提交
477
        <WorkItem(538786, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/538786")>
478
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
479 480
        Public Async Function TestOnGenericOverloads1() As Task
            Await TestAsync(<Text>
481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498
Module C
    Sub M()
    End Sub

    Sub M(Of T)()
    End Sub

    Sub M(Of T, U)()
    End Sub
End Module
 
Class Test
    Sub MySub()
        C.$$M() 
        C.M(Of Integer)() 
    End Sub
End Class
</Text>.NormalizedValue,
499
            MainDescription($"Sub C.M() (+ 2 {FeaturesResources.overloads_})"))
C
Cyrus Najmabadi 已提交
500
        End Function
501

J
Jared Parsons 已提交
502
        <WorkItem(538786, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/538786")>
503
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
504 505
        Public Async Function TestOnGenericOverloads2() As Task
            Await TestAsync(<Text>
506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524
Module C
    Sub M()
    End Sub

    Sub M(Of T)()
    End Sub

    Sub M(Of T, U)()
    End Sub
End Module
 
Class Test
    Sub MySub()
        C.M() 
        C.$$M(Of Integer)() 
    End Sub
End Class
</Text>.NormalizedValue,
            MainDescription("Sub C.M(Of Integer)()"))
C
Cyrus Najmabadi 已提交
525
        End Function
526

J
Jared Parsons 已提交
527
        <WorkItem(538773, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/538773")>
528
        <Fact>
C
Cyrus Najmabadi 已提交
529 530
        Public Async Function TestOverriddenMethod() As Task
            Await TestAsync(<Text>
531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548
Class A
    Public Overridable Sub G()
    End Sub
End Class

Class B
    Inherits A
    Public Overrides Sub G()
    End Sub
End Class

Class C
    Sub Test()
        Dim x As New B
        x.G$$()
    End Sub
End Class
</Text>.NormalizedValue,
549
            MainDescription($"Sub B.G() (+ 1 {FeaturesResources.overload})"))
C
Cyrus Najmabadi 已提交
550
        End Function
551

J
Jared Parsons 已提交
552
        <WorkItem(538918, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/538918")>
553
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
554 555
        Public Async Function TestOnMe() As Task
            Await TestAsync(<Text>
556 557 558 559 560 561 562 563 564 565 566
class C
    Sub Test()
        $$Me.Test()
    End Sub
End class
</Text>.NormalizedValue,
            MainDescription("Class C",
             ExpectedClassifications(
              Keyword("Class"),
              WhiteSpace(" "),
              [Class]("C"))))
C
Cyrus Najmabadi 已提交
567
        End Function
568

J
Jared Parsons 已提交
569
        <WorkItem(539240, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/539240")>
570
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
571 572
        Public Async Function TestOnArrayCreation1() As Task
            Await TestAsync(<Text>
573 574 575 576 577 578 579
class C
    Sub Test()
        Dim a As Integer() = N$$ew Integer(3) { }
    End Sub
End class
</Text>.NormalizedValue,
            Nothing)
C
Cyrus Najmabadi 已提交
580
        End Function
581

J
Jared Parsons 已提交
582
        <WorkItem(539240, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/539240")>
583
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
584 585
        Public Async Function TestOnArrayCreation2() As Task
            Await TestAsync(<Text>
586 587 588 589 590 591 592
class C
    Sub Test()
        Dim a As Integer() = New In$$teger(3) { }
    End Sub
End class
</Text>.NormalizedValue,
            MainDescription("Structure System.Int32"))
C
Cyrus Najmabadi 已提交
593
        End Function
594

595
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
596 597 598
        Public Async Function TestDimInFieldDeclaration() As Task
            Await TestInClassAsync("Dim$$ a As Integer", MainDescription("Structure System.Int32"))
        End Function
599

600
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
601
        Public Async Function TestDimMultipleInFieldDeclaration() As Task
602
            Await TestInClassAsync("$$Dim x As Integer, y As String", MainDescription(VBEditorResources.Multiple_Types))
C
Cyrus Najmabadi 已提交
603
        End Function
604

605
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
606 607
        Public Async Function TestDimInFieldDeclarationCustomType() As Task
            Await TestAsync(<Text>
608 609 610 611 612 613 614
Module Program
    Di$$m z As CustomClass	
    Private Class CustomClass
    End Class
End Module
</Text>.NormalizedValue,
            MainDescription("Class Program.CustomClass"))
C
Cyrus Najmabadi 已提交
615
        End Function
616

617
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
618 619 620
        Public Async Function TestDimInLocalDeclaration() As Task
            Await TestInMethodAsync("Dim$$ a As Integer", MainDescription("Structure System.Int32"))
        End Function
621

622
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
623
        Public Async Function TestDimMultipleInLocalDeclaration() As Task
624
            Await TestInMethodAsync("$$Dim x As Integer, y As String", MainDescription(VBEditorResources.Multiple_Types))
C
Cyrus Najmabadi 已提交
625
        End Function
626

627
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
628 629
        Public Async Function TestDimInLocalDeclarationCustomType() As Task
            Await TestAsync(<Text>
630 631 632 633 634 635 636 637 638
Module Program
    Sub Main(args As String())
        D$$im z As CustomClass
    End Sub	
    Private Class CustomClass
    End Class
End Module
</Text>.NormalizedValue,
            MainDescription("Class Program.CustomClass"))
C
Cyrus Najmabadi 已提交
639
        End Function
640

641
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
642 643
        Public Async Function TestDefaultProperty1() As Task
            Await TestAsync(<Text>
644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669
Class X
    Public ReadOnly Property Foo As Y
        Get
            Return Nothing
        End Get
    End Property
End Class
Class Y
    Public Default ReadOnly Property Item(ByVal a As Integer) As String
        Get
            Return "hi"
        End Get
    End Property
End Class
Module M1
    Sub Main()
        Dim a As String
        Dim b As X
        b = New X()
        a = b.F$$oo(4)
    End Sub
End Module


</Text>.NormalizedValue,
            MainDescription("ReadOnly Property X.Foo As Y"))
C
Cyrus Najmabadi 已提交
670
        End Function
671

672
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
673 674
        Public Async Function TestDefaultProperty2() As Task
            Await TestAsync(<Text>
675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700
Class X
    Public ReadOnly Property Foo As Y
        Get
            Return Nothing
        End Get
    End Property
End Class
Class Y
    Public Default ReadOnly Property Item(ByVal a As Integer) As String
        Get
            Return "hi"
        End Get
    End Property
End Class
Module M1
    Sub Main()
        Dim a As String
        Dim b As X
        b = New X()
        a = b.Foo.I$$tem(4)
    End Sub
End Module


</Text>.NormalizedValue,
            MainDescription("ReadOnly Property Y.Item(a As Integer) As String"))
C
Cyrus Najmabadi 已提交
701
        End Function
702

J
Jared Parsons 已提交
703
        <WorkItem(541582, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/541582")>
704
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
705 706
        Public Async Function TestLambdaExpression() As Task
            Await TestAsync(<Text>Imports System
707 708 709 710 711 712 713 714 715 716
Imports System.Collections.Generic
Imports System.Linq

Module Module1
    Sub Main(ByVal args As String())
        Dim increment2 As Func(Of Integer, UInt16) = Function(x42)$$
                                                         Return x42 + 2
                                                     End Function
    End Sub
End Module</Text>.NormalizedValue, Nothing)
C
Cyrus Najmabadi 已提交
717
        End Function
718

J
Jared Parsons 已提交
719
        <WorkItem(541353, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/541353")>
720
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
721 722 723
        Public Async Function TestUnboundMethodInvocation() As Task
            Await TestInMethodAsync("Me.Fo$$o()", Nothing)
        End Function
724

J
Jared Parsons 已提交
725
        <WorkItem(541582, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/541582")>
726
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
727 728
        Public Async Function TestQuickInfoOnExtensionMethod() As Task
            Await TestAsync(<Text><![CDATA[Imports System.Runtime.CompilerServices
729 730 731 732 733 734 735 736 737 738 739 740 741
Class Program
    Private Shared Sub Main(args As String())
        Dim values As Integer() = New Integer() {1}
        Dim isArray As Boolean = 7.Co$$unt(values)
    End Sub
End Class

Module MyExtensions
    <Extension> _
    Public Function Count(Of T)(o As T, items As IEnumerable(Of T)) As Boolean
        Return True
    End Function
End Module]]></Text>.NormalizedValue,
742
            MainDescription($"<{VBFeaturesResources.Extension}> Function Integer.Count(items As IEnumerable(Of Integer)) As Boolean"))
C
Cyrus Najmabadi 已提交
743
        End Function
744

745
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
746 747
        Public Async Function TestQuickInfoOnExtensionMethodOverloads() As Task
            Await TestAsync(<Text><![CDATA[Imports System.Runtime.CompilerServices
748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765
Class Program
    Private Shared Sub Main(args As String())
        Dim i as string = "1"
        i.Test$$Ext()
    End Sub
End Class

Module Ex
    <Extension()>
    Public Sub TestExt(Of T)(ex As T)
    End Sub
    <Extension()>
    Public Sub TestExt(Of T)(ex As T, arg As T)
    End Sub
    <Extension()>
    Public Sub TestExt(ex As String, arg As Integer)
    End Sub
End Module]]></Text>.NormalizedValue,
766
            MainDescription($"<{VBFeaturesResources.Extension}> Sub String.TestExt() (+ 2 {FeaturesResources.overloads_})"))
C
Cyrus Najmabadi 已提交
767
        End Function
768

769
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
770 771
        Public Async Function TestQuickInfoOnExtensionMethodOverloads2() As Task
            Await TestAsync(<Text><![CDATA[Imports System.Runtime.CompilerServices
772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789
Class Program
    Private Shared Sub Main(args As String())
        Dim i as string = "1"
        i.Test$$Ext()
    End Sub
End Class

Module Ex
    <Extension()>
    Public Sub TestExt(Of T)(ex As T)
    End Sub
    <Extension()>
    Public Sub TestExt(Of T)(ex As T, arg As T)
    End Sub
    <Extension()>
    Public Sub TestExt(ex As Integer, arg As Integer)
    End Sub
End Module]]></Text>.NormalizedValue,
790
            MainDescription($"<{VBFeaturesResources.Extension}> Sub String.TestExt() (+ 1 {FeaturesResources.overload})"))
C
Cyrus Najmabadi 已提交
791
        End Function
792

J
Jared Parsons 已提交
793
        <WorkItem(541960, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/541960")>
794
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
795 796
        Public Async Function TestDontRemoveAttributeSuffixAndProduceInvalidIdentifier1() As Task
            Await TestAsync(<Text><![CDATA[
797 798 799 800 801 802
Imports System
Class _Attribute
    Inherits Attribute

    Dim x$$ As _Attribute
End Class]]></Text>.NormalizedValue,
803
            MainDescription($"({FeaturesResources.field}) _Attribute.x As _Attribute"))
C
Cyrus Najmabadi 已提交
804
        End Function
805

J
Jared Parsons 已提交
806
        <WorkItem(541960, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/541960")>
807
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
808 809
        Public Async Function TestDontRemoveAttributeSuffixAndProduceInvalidIdentifier2() As Task
            Await TestAsync(<Text><![CDATA[
810 811 812 813 814 815
Imports System
Class ClassAttribute
    Inherits Attribute

    Dim x$$ As ClassAttribute
End Class]]></Text>.NormalizedValue,
816
            MainDescription($"({FeaturesResources.field}) ClassAttribute.x As ClassAttribute"))
C
Cyrus Najmabadi 已提交
817
        End Function
818

J
Jared Parsons 已提交
819
        <WorkItem(541960, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/541960")>
820
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
821 822
        Public Async Function TestDontRemoveAttributeSuffix1() As Task
            Await TestAsync(<Text><![CDATA[
823 824 825 826 827 828
Imports System
Class Class1Attribute
    Inherits Attribute

    Dim x$$ As Class1Attribute
End Class]]></Text>.NormalizedValue,
829
            MainDescription($"({FeaturesResources.field}) Class1Attribute.x As Class1Attribute"))
C
Cyrus Najmabadi 已提交
830
        End Function
831

832
        <WorkItem(1696, "https://github.com/dotnet/roslyn/issues/1696")>
833
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
834 835
        Public Async Function TestAttributeQuickInfoBindsToClassTest() As Task
            Await TestAsync("
836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852
Imports System

''' <summary>
''' class comment
''' </summary>
<Some$$>
Class SomeAttribute
    Inherits Attribute

    ''' <summary>
    ''' ctor comment
    ''' </summary>
    Public Sub New()
    End Sub
End Class
",
                Documentation("class comment"))
C
Cyrus Najmabadi 已提交
853
        End Function
854 855

        <WorkItem(1696, "https://github.com/dotnet/roslyn/issues/1696")>
856
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
857 858
        Public Async Function TestAttributeConstructorQuickInfo() As Task
            Await TestAsync("
859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875
Imports System

''' <summary>
''' class comment
''' </summary>
Class SomeAttribute
    Inherits Attribute

    ''' <summary>
    ''' ctor comment
    ''' </summary>
    Public Sub New()
        Dim s = New Some$$Attribute()
    End Sub
End Class
",
                Documentation("ctor comment"))
C
Cyrus Najmabadi 已提交
876
        End Function
877

J
Jared Parsons 已提交
878
        <WorkItem(542613, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/542613")>
879
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
880 881
        Public Async Function TestUnboundGeneric() As Task
            Await TestAsync(<Text><![CDATA[
882 883 884 885 886 887 888 889 890
Imports System
Imports System.Collections.Generic
Class C
    Sub M()
        Dim t As Type = GetType(L$$ist(Of ))
    End Sub
End Class]]></Text>.NormalizedValue,
            MainDescription("Class System.Collections.Generic.List(Of T)"),
            NoTypeParameterMap)
C
Cyrus Najmabadi 已提交
891
        End Function
892

J
Jared Parsons 已提交
893
        <WorkItem(543209, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/543209")>
894
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
895 896
        Public Async Function TestQuickInfoForAnonymousType1() As Task
            Await TestAsync(<Text><![CDATA[
897 898 899 900 901 902 903
Class C
    Sub S
        Dim product = $$New With {Key .Name = "", Key .Price = 0}
    End Sub
End Class]]></Text>.NormalizedValue,
            MainDescription("AnonymousType 'a"),
            NoTypeParameterMap,
904
            AnonymousTypes(vbCrLf & FeaturesResources.Anonymous_Types_colon & vbCrLf & $"    'a {FeaturesResources.is_} New With {{ Key .Name As String, Key .Price As Integer }}"))
C
Cyrus Najmabadi 已提交
905
        End Function
906

J
Jared Parsons 已提交
907
        <WorkItem(543226, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/543226")>
908
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
909 910
        Public Async Function TestQuickInfoForAnonymousType2() As Task
            Await TestAsync(<Text><![CDATA[
911 912 913 914 915 916 917 918 919 920 921
Imports System.Linq
Module Program
    Sub Main(args As String())
        Dim product = New With {Key .Name = "", Key .Price = 0}
        Dim products = Enumerable.Repeat(product, 1)
        Dim namePriceQuery = From prod In products
                             Select prod.$$Name, prod.Price
    End Sub
End Module]]></Text>.NormalizedValue,
            MainDescription("ReadOnly Property 'a.Name As String"),
            NoTypeParameterMap,
922
            AnonymousTypes(vbCrLf & FeaturesResources.Anonymous_Types_colon & vbCrLf & $"    'a {FeaturesResources.is_} New With {{ Key .Name As String, Key .Price As Integer }}"))
C
Cyrus Najmabadi 已提交
923
        End Function
924

J
Jared Parsons 已提交
925
        <WorkItem(543223, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/543223")>
926
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
927 928
        Public Async Function TestQuickInfoForAnonymousType3() As Task
            Await TestAsync(<Text><![CDATA[
929 930 931 932 933 934 935 936
Class C
    Sub S
        Dim x = $$New With {Key .Foo = x}
    End Sub
End Class
]]></Text>.NormalizedValue,
            MainDescription("AnonymousType 'a"),
            NoTypeParameterMap,
937
            AnonymousTypes(vbCrLf & FeaturesResources.Anonymous_Types_colon & vbCrLf & $"    'a {FeaturesResources.is_} New With {{ Key .Foo As ? }}"))
C
Cyrus Najmabadi 已提交
938
        End Function
939

J
Jared Parsons 已提交
940
        <WorkItem(543242, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/543242")>
941
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
942 943
        Public Async Function TestQuickInfoForUnboundLabel() As Task
            Await TestAsync(<Text><![CDATA[
944 945 946 947 948 949 950 951
Option Infer On
Option Strict On
Public Class D
    Public Sub foo()
        GoTo $$oo
    End Sub
End Class]]></Text>.NormalizedValue,
            Nothing)
C
Cyrus Najmabadi 已提交
952
        End Function
953

J
Jared Parsons 已提交
954 955
        <WorkItem(543624, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/543624")>
        <WorkItem(543275, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/543275")>
956
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
957 958
        Public Async Function TestQuickInfoForAnonymousDelegate1() As Task
            Await TestAsync(<Text><![CDATA[
959 960 961 962 963 964 965 966
Imports System

Module Program
    Sub Main
        Dim $$a = Sub() Return
    End Sub
End Module
]]></Text>.NormalizedValue,
967
            MainDescription($"({FeaturesResources.local_variable}) a As <Sub()>"))
C
Cyrus Najmabadi 已提交
968
        End Function
969

J
Jared Parsons 已提交
970 971
        <WorkItem(543624, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/543624")>
        <WorkItem(543275, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/543275")>
972
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
973 974
        Public Async Function TestQuickInfoForAnonymousDelegate2() As Task
            Await TestAsync(<Text><![CDATA[
975 976 977 978 979 980 981 982
Imports System

Module Program
    Sub Main
        Dim $$a = Function() 1
    End Sub
End Module
]]></Text>.NormalizedValue,
983
            MainDescription($"({FeaturesResources.local_variable}) a As <Function() As Integer>"))
C
Cyrus Najmabadi 已提交
984
        End Function
985

J
Jared Parsons 已提交
986
        <WorkItem(543624, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/543624")>
987
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
988 989
        Public Async Function TestQuickInfoForAnonymousDelegate3() As Task
            Await TestAsync(<Text><![CDATA[
990 991 992 993 994 995 996 997
Imports System

Module Program
    Sub Main
        Dim $$a = Function() New With {.Foo = "Foo"}
    End Sub
End Module
]]></Text>.NormalizedValue,
998 999 1000
            MainDescription($"({FeaturesResources.local_variable}) a As <Function() As 'a>"),
            AnonymousTypes(vbCrLf & FeaturesResources.Anonymous_Types_colon & vbCrLf &
                           $"    'a {FeaturesResources.is_} New With {{ .Foo As String }}"))
C
Cyrus Najmabadi 已提交
1001
        End Function
1002

J
Jared Parsons 已提交
1003 1004
        <WorkItem(543624, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/543624")>
        <WorkItem(543275, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/543275")>
1005
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1006 1007
        Public Async Function TestQuickInfoForAnonymousDelegate4() As Task
            Await TestAsync(<Text><![CDATA[
1008 1009 1010 1011 1012 1013 1014 1015
Imports System

Module Program
    Sub Main
        Dim $$a = Function(i As Integer) New With {.Sq = i * i, .M = Function(j As Integer) i * i}
    End Sub
End Module
]]></Text>.NormalizedValue,
1016 1017 1018
            MainDescription($"({FeaturesResources.local_variable}) a As <Function(i As Integer) As 'a>"),
            AnonymousTypes(vbCrLf & FeaturesResources.Anonymous_Types_colon & vbCrLf &
                           $"    'a {FeaturesResources.is_} New With {{ .Sq As Integer, .M As <Function(j As Integer) As Integer> }}"))
C
Cyrus Najmabadi 已提交
1019
        End Function
1020

J
Jared Parsons 已提交
1021
        <WorkItem(543389, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/543389")>
1022
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1023 1024
        Public Async Function TestImplicitMemberNameLocal1() As Task
            Await TestAsync(<Text><![CDATA[
1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037
Imports System

Module Program
    ReadOnly Property Prop As Long
        Get
            Pr$$op = 1
            Dim a = New With {.id = Prop}
            Return 1
        End Get
    End Property
End Module
]]></Text>.NormalizedValue,
            MainDescription("ReadOnly Property Program.Prop As Long"))
C
Cyrus Najmabadi 已提交
1038
        End Function
1039

J
Jared Parsons 已提交
1040
        <WorkItem(543389, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/543389")>
1041
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1042 1043
        Public Async Function TestImplicitMemberNameLocal2() As Task
            Await TestAsync(<Text><![CDATA[
1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056
Imports System

Module Program
    ReadOnly Property Prop As Long
        Get
            Prop = 1
            Dim a = New With {.id = Pr$$op}
            Return 1
        End Get
    End Property
End Module
]]></Text>.NormalizedValue,
            MainDescription("ReadOnly Property Program.Prop As Long"))
C
Cyrus Najmabadi 已提交
1057
        End Function
1058

J
Jared Parsons 已提交
1059
        <WorkItem(543389, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/543389")>
1060
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1061 1062
        Public Async Function TestImplicitMemberNameLocal3() As Task
            Await TestAsync(<Text><![CDATA[
1063 1064 1065 1066 1067 1068 1069 1070 1071
Imports System

Module Program
    Function Foo() As Integer
        Fo$$o = 1
    End Function
End Module
]]></Text>.NormalizedValue,
            MainDescription("Function Program.Foo() As Integer"))
C
Cyrus Najmabadi 已提交
1072
        End Function
1073

1074
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1075 1076
        Public Async Function TestBinaryConditionalExpression() As Task
            Await TestInMethodAsync("Dim x = If$$(True, False)",
1077 1078
                MainDescription($"If({VBWorkspaceResources.expression}, {VBWorkspaceResources.expressionIfNothing}) As Boolean"),
                Documentation(VBWorkspaceResources.If_expression_evaluates_to_a_reference_or_Nullable_value_that_is_not_Nothing_the_function_returns_that_value_Otherwise_it_calculates_and_returns_expressionIfNothing))
C
Cyrus Najmabadi 已提交
1079
        End Function
1080

1081
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1082 1083
        Public Async Function TestTernaryConditionalExpression() As Task
            Await TestInMethodAsync("Dim x = If$$(True, ""Foo"", ""Bar"")",
1084 1085
                MainDescription($"If({VBWorkspaceResources.condition} As Boolean, {VBWorkspaceResources.expressionIfTrue}, {VBWorkspaceResources.expressionIfFalse}) As String"),
                Documentation(VBWorkspaceResources.If_condition_returns_True_the_function_calculates_and_returns_expressionIfTrue_Otherwise_it_returns_expressionIfFalse))
C
Cyrus Najmabadi 已提交
1086
        End Function
1087

J
Jared Parsons 已提交
1088
        <WorkItem(957082, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/957082")>
1089
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1090 1091
        Public Async Function TestAddHandlerStatement() As Task
            Await TestInMethodAsync("$$AddHandler foo, bar",
1092 1093
                MainDescription($"AddHandler {VBWorkspaceResources.event_}, {VBWorkspaceResources.handler}"),
                Documentation(VBWorkspaceResources.Associates_an_event_with_an_event_handler_delegate_or_lambda_expression_at_run_time),
1094
                SymbolGlyph(Glyph.Keyword))
C
Cyrus Najmabadi 已提交
1095
        End Function
1096

J
Jared Parsons 已提交
1097
        <WorkItem(957082, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/957082")>
1098
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1099 1100
        Public Async Function TestRemoveHandlerStatement() As Task
            Await TestInMethodAsync("$$RemoveHandler foo, bar",
1101 1102
                MainDescription($"RemoveHandler {VBWorkspaceResources.event_}, {VBWorkspaceResources.handler}"),
                Documentation(VBWorkspaceResources.Removes_the_association_between_an_event_and_an_event_handler_or_delegate_at_run_time),
1103
                SymbolGlyph(Glyph.Keyword))
C
Cyrus Najmabadi 已提交
1104
        End Function
1105

1106
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1107 1108
        Public Async Function TestGetTypeExpression() As Task
            Await TestInMethodAsync("Dim x = GetType$$(String)",
1109
                MainDescription("GetType(String) As Type"),
1110
                Documentation(VBWorkspaceResources.Returns_a_System_Type_object_for_the_specified_type_name))
C
Cyrus Najmabadi 已提交
1111
        End Function
1112

J
Jared Parsons 已提交
1113
        <WorkItem(544140, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/544140")>
1114
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1115 1116
        Public Async Function TestGetXmlNamespaceExpression() As Task
            Await TestWithReferencesAsync(
1117 1118 1119 1120 1121 1122 1123 1124
                <text>
class C
    sub M()
        Dim x = GetXmlNamespace$$()
    end sub()
end class
                </text>.NormalizedValue,
                {GetType(System.Xml.XmlAttribute).Assembly.Location, GetType(System.Xml.Linq.XAttribute).Assembly.Location},
1125 1126
                MainDescription($"GetXmlNamespace([{VBWorkspaceResources.xmlNamespacePrefix}]) As Xml.Linq.XNamespace"),
                Documentation(VBWorkspaceResources.Returns_the_System_Xml_Linq_XNamespace_object_corresponding_to_the_specified_XML_namespace_prefix))
C
Cyrus Najmabadi 已提交
1127
        End Function
1128

1129
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1130 1131
        Public Async Function TestTryCastExpression() As Task
            Await TestInMethodAsync("Dim x = TryCast$$(a, String)",
1132 1133
                MainDescription($"TryCast({VBWorkspaceResources.expression}, String) As String"),
                Documentation(VBWorkspaceResources.Introduces_a_type_conversion_operation_that_does_not_throw_an_exception_If_an_attempted_conversion_fails_TryCast_returns_Nothing_which_your_program_can_test_for))
C
Cyrus Najmabadi 已提交
1134
        End Function
1135

1136
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1137 1138
        Public Async Function TestDirectCastExpression() As Task
            Await TestInMethodAsync("Dim x = DirectCast$$(a, String)",
1139 1140
                MainDescription($"DirectCast({VBWorkspaceResources.expression}, String) As String"),
                Documentation(VBWorkspaceResources.Introduces_a_type_conversion_operation_similar_to_CType_The_difference_is_that_CType_succeeds_as_long_as_there_is_a_valid_conversion_whereas_DirectCast_requires_that_one_type_inherit_from_or_implement_the_other_type))
C
Cyrus Najmabadi 已提交
1141
        End Function
1142

1143
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1144 1145
        Public Async Function TestCTypeCastExpression() As Task
            Await TestInMethodAsync("Dim x = CType$$(a, String)",
1146 1147
                MainDescription($"CType({VBWorkspaceResources.expression}, String) As String"),
                Documentation(VBWorkspaceResources.Returns_the_result_of_explicitly_converting_an_expression_to_a_specified_data_type))
C
Cyrus Najmabadi 已提交
1148
        End Function
1149

1150
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1151 1152
        Public Async Function TestCBoolExpression() As Task
            Await TestInMethodAsync("Dim x = CBool$$(a)",
1153 1154
                MainDescription($"CBool({VBWorkspaceResources.expression}) As Boolean"),
                Documentation(String.Format(VBWorkspaceResources.Converts_an_expression_to_the_0_data_type, "Boolean")))
C
Cyrus Najmabadi 已提交
1155
        End Function
1156

1157
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1158 1159
        Public Async Function TestCByteExpression() As Task
            Await TestInMethodAsync("Dim x = CByte$$(a)",
1160 1161
                MainDescription($"CByte({VBWorkspaceResources.expression}) As Byte"),
                Documentation(String.Format(VBWorkspaceResources.Converts_an_expression_to_the_0_data_type, "Byte")))
C
Cyrus Najmabadi 已提交
1162
        End Function
1163

1164
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1165 1166
        Public Async Function TestCCharExpression() As Task
            Await TestInMethodAsync("Dim x = CChar$$(a)",
1167 1168
                MainDescription($"CChar({VBWorkspaceResources.expression}) As Char"),
                Documentation(String.Format(VBWorkspaceResources.Converts_an_expression_to_the_0_data_type, "Char")))
C
Cyrus Najmabadi 已提交
1169
        End Function
1170

1171
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1172 1173
        Public Async Function TestCDateExpression() As Task
            Await TestInMethodAsync("Dim x = CDate$$(a)",
1174 1175
                MainDescription($"CDate({VBWorkspaceResources.expression}) As Date"),
                Documentation(String.Format(VBWorkspaceResources.Converts_an_expression_to_the_0_data_type, "Date")))
C
Cyrus Najmabadi 已提交
1176
        End Function
1177

1178
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1179 1180
        Public Async Function TestCDblExpression() As Task
            Await TestInMethodAsync("Dim x = CDbl$$(a)",
1181 1182
                MainDescription($"CDbl({VBWorkspaceResources.expression}) As Double"),
                Documentation(String.Format(VBWorkspaceResources.Converts_an_expression_to_the_0_data_type, "Double")))
C
Cyrus Najmabadi 已提交
1183
        End Function
1184

1185
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1186 1187
        Public Async Function TestCDecExpression() As Task
            Await TestInMethodAsync("Dim x = CDec$$(a)",
1188 1189
                MainDescription($"CDec({VBWorkspaceResources.expression}) As Decimal"),
                Documentation(String.Format(VBWorkspaceResources.Converts_an_expression_to_the_0_data_type, "Decimal")))
C
Cyrus Najmabadi 已提交
1190
        End Function
1191

1192
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1193 1194
        Public Async Function TestCIntExpression() As Task
            Await TestInMethodAsync("Dim x = CInt$$(a)",
1195 1196
                MainDescription($"CInt({VBWorkspaceResources.expression}) As Integer"),
                Documentation(String.Format(VBWorkspaceResources.Converts_an_expression_to_the_0_data_type, "Integer")))
C
Cyrus Najmabadi 已提交
1197
        End Function
1198

1199
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1200 1201
        Public Async Function TestCLngExpression() As Task
            Await TestInMethodAsync("Dim x = CLng$$(a)",
1202 1203
                MainDescription($"CLng({VBWorkspaceResources.expression}) As Long"),
                Documentation(String.Format(VBWorkspaceResources.Converts_an_expression_to_the_0_data_type, "Long")))
C
Cyrus Najmabadi 已提交
1204
        End Function
1205

1206
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1207 1208
        Public Async Function TestCObjExpression() As Task
            Await TestInMethodAsync("Dim x = CObj$$(a)",
1209 1210
                MainDescription($"CObj({VBWorkspaceResources.expression}) As Object"),
                Documentation(String.Format(VBWorkspaceResources.Converts_an_expression_to_the_0_data_type, "Object")))
C
Cyrus Najmabadi 已提交
1211
        End Function
1212

1213
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1214 1215
        Public Async Function TestCSByteExpression() As Task
            Await TestInMethodAsync("Dim x = CSByte$$(a)",
1216 1217
                MainDescription($"CSByte({VBWorkspaceResources.expression}) As SByte"),
                Documentation(String.Format(VBWorkspaceResources.Converts_an_expression_to_the_0_data_type, "SByte")))
C
Cyrus Najmabadi 已提交
1218
        End Function
1219

1220
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1221 1222
        Public Async Function TestCShortExpression() As Task
            Await TestInMethodAsync("Dim x = CShort$$(a)",
1223 1224
                MainDescription($"CShort({VBWorkspaceResources.expression}) As Short"),
                Documentation(String.Format(VBWorkspaceResources.Converts_an_expression_to_the_0_data_type, "Short")))
C
Cyrus Najmabadi 已提交
1225
        End Function
1226

1227
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1228 1229
        Public Async Function TestCSngExpression() As Task
            Await TestInMethodAsync("Dim x = CSng$$(a)",
1230 1231
                MainDescription($"CSng({VBWorkspaceResources.expression}) As Single"),
                Documentation(String.Format(VBWorkspaceResources.Converts_an_expression_to_the_0_data_type, "Single")))
C
Cyrus Najmabadi 已提交
1232
        End Function
1233

1234
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1235 1236
        Public Async Function TestCStrExpression() As Task
            Await TestInMethodAsync("Dim x = CStr$$(a)",
1237 1238
                MainDescription($"CStr({VBWorkspaceResources.expression}) As String"),
                Documentation(String.Format(VBWorkspaceResources.Converts_an_expression_to_the_0_data_type, "String")))
C
Cyrus Najmabadi 已提交
1239
        End Function
1240

1241
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1242 1243
        Public Async Function TestCUIntExpression() As Task
            Await TestInMethodAsync("Dim x = CUInt$$(a)",
1244 1245
                MainDescription($"CUInt({VBWorkspaceResources.expression}) As UInteger"),
                Documentation(String.Format(VBWorkspaceResources.Converts_an_expression_to_the_0_data_type, "UInteger")))
C
Cyrus Najmabadi 已提交
1246
        End Function
1247

1248
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1249 1250
        Public Async Function TestCULngExpression() As Task
            Await TestInMethodAsync("Dim x = CULng$$(a)",
1251 1252
                MainDescription($"CULng({VBWorkspaceResources.expression}) As ULong"),
                Documentation(String.Format(VBWorkspaceResources.Converts_an_expression_to_the_0_data_type, "ULong")))
C
Cyrus Najmabadi 已提交
1253
        End Function
1254

1255
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1256 1257
        Public Async Function TestCUShortExpression() As Task
            Await TestInMethodAsync("Dim x = CUShort$$(a)",
1258 1259
                MainDescription($"CUShort({VBWorkspaceResources.expression}) As UShort"),
                Documentation(String.Format(VBWorkspaceResources.Converts_an_expression_to_the_0_data_type, "UShort")))
C
Cyrus Najmabadi 已提交
1260
        End Function
1261

1262
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1263 1264
        Public Async Function TestMidAssignmentStatement1() As Task
            Await TestInMethodAsync("$$Mid(""foo"", 0) = ""bar""",
1265 1266
                MainDescription($"Mid({VBWorkspaceResources.stringName}, {VBWorkspaceResources.startIndex}, [{VBWorkspaceResources.length}]) = {VBWorkspaceResources.stringExpression}"),
                Documentation(VBWorkspaceResources.Replaces_a_specified_number_of_characters_in_a_String_variable_with_characters_from_another_string))
C
Cyrus Najmabadi 已提交
1267
        End Function
1268

1269
        <WpfFact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1270 1271
        Public Async Function TestMidAssignmentStatement2() As Task
            Await TestInMethodAsync("$$Mid(""foo"", 0, 0) = ""bar""",
1272 1273
                MainDescription($"Mid({VBWorkspaceResources.stringName}, {VBWorkspaceResources.startIndex}, [{VBWorkspaceResources.length}]) = {VBWorkspaceResources.stringExpression}"),
                Documentation(VBWorkspaceResources.Replaces_a_specified_number_of_characters_in_a_String_variable_with_characters_from_another_string))
C
Cyrus Najmabadi 已提交
1274
        End Function
1275

1276
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1277 1278
        Public Async Function TestConstantField() As Task
            Await TestInClassAsync("const $$F = 1",
1279
                MainDescription($"({FeaturesResources.constant}) C.F As Integer = 1"))
C
Cyrus Najmabadi 已提交
1280
        End Function
1281

1282
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1283 1284
        Public Async Function TestMultipleConstantFields() As Task
            Await TestInClassAsync("Public Const X As Double = 1.0, Y As Double = 2.0, $$Z As Double = 3.5",
1285
                MainDescription($"({FeaturesResources.constant}) C.Z As Double = 3.5"))
C
Cyrus Najmabadi 已提交
1286
        End Function
1287

1288
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1289 1290
        Public Async Function TestConstantDependencies() As Task
            Await TestAsync(<Text><![CDATA[
1291 1292 1293 1294 1295 1296 1297 1298 1299 1300
Imports System

Class A
    Public Const $$X As Integer = B.Z + 1
    Public Const Y As Integer = 10
End Class
Class B
    Public Const Z As Integer = A.Y + 1
End Class
]]></Text>.NormalizedValue,
1301
                MainDescription($"({FeaturesResources.constant}) A.X As Integer = B.Z + 1"))
C
Cyrus Najmabadi 已提交
1302
        End Function
1303

1304
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1305 1306
        Public Async Function TestConstantCircularDependencies() As Task
            Await TestAsync(<Text><![CDATA[
1307 1308 1309 1310 1311 1312 1313 1314 1315
Imports System

Class A
    Public Const $$X As Integer = B.Z + 1
End Class
Class B
    Public Const Z As Integer = A.X + 1
End Class
]]></Text>.NormalizedValue,
1316
                MainDescription($"({FeaturesResources.constant}) A.X As Integer = B.Z + 1"))
C
Cyrus Najmabadi 已提交
1317
        End Function
1318

J
Jared Parsons 已提交
1319
        <WorkItem(544620, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/544620")>
1320
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1321 1322
        Public Async Function TestConstantOverflow() As Task
            Await TestInClassAsync("Public Const $$Z As Integer = Integer.MaxValue + 1",
1323
                MainDescription($"({FeaturesResources.constant}) C.Z As Integer = Integer.MaxValue + 1"))
C
Cyrus Najmabadi 已提交
1324
        End Function
1325

1326
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1327 1328
        Public Async Function TestEnumInConstantField() As Task
            Await TestAsync(<Text><![CDATA[
1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343
Public Class EnumTest
    Private Enum Days
        Sun
        Mon
        Tue
        Wed
        Thu
        Fri
        Sat
    End Enum
    Private Shared Sub Main()
        Const $$x As Integer = CInt(Days.Sun)
    End Sub
End Class
]]></Text>.NormalizedValue,
1344
                MainDescription($"({FeaturesResources.local_constant}) x As Integer = CInt(Days.Sun)"))
C
Cyrus Najmabadi 已提交
1345
        End Function
1346

1347
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1348 1349
        Public Async Function TestEnumInConstantField2() As Task
            Await TestAsync(<Text><![CDATA[
1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364
Public Class EnumTest
    Private Enum Days
        Sun
        Mon
        Tue
        Wed
        Thu
        Fri
        Sat
    End Enum
    Private Shared Sub Main()
        Const $$x As Days = Days.Sun
    End Sub
End Class
]]></Text>.NormalizedValue,
1365
                MainDescription($"({FeaturesResources.local_constant}) x As Days = Days.Sun"))
C
Cyrus Najmabadi 已提交
1366
        End Function
1367

1368
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1369 1370
        Public Async Function TestConstantParameter() As Task
            Await TestInClassAsync("Sub Bar(optional $$b as Integer = 1)",
1371
                MainDescription($"({FeaturesResources.parameter}) b As Integer = 1"))
C
Cyrus Najmabadi 已提交
1372
        End Function
1373

1374
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1375 1376
        Public Async Function TestConstantLocal() As Task
            Await TestInMethodAsync("const $$loc = 1",
1377
                MainDescription($"({FeaturesResources.local_constant}) loc As Integer = 1"))
C
Cyrus Najmabadi 已提交
1378
        End Function
1379

1380
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1381 1382
        Public Async Function TestEnumValue1() As Task
            Await TestInMethodAsync("Const $$sunday = DayOfWeek.Sunday",
1383
                MainDescription($"({FeaturesResources.local_constant}) sunday As DayOfWeek = DayOfWeek.Sunday"))
C
Cyrus Najmabadi 已提交
1384
        End Function
1385

1386
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1387 1388
        Public Async Function TestEnumValue2() As Task
            Await TestInMethodAsync("Const $$v = AttributeTargets.Constructor or AttributeTargets.Class",
1389
                MainDescription($"({FeaturesResources.local_constant}) v As AttributeTargets = AttributeTargets.Constructor or AttributeTargets.Class"))
C
Cyrus Najmabadi 已提交
1390
        End Function
1391

1392
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1393 1394
        Public Async Function TestComplexConstantParameter() As Task
            Await TestInClassAsync("Sub Bar(optional $$b as Integer = 1 + True)",
1395
                MainDescription($"({FeaturesResources.parameter}) b As Integer = 1 + True"))
C
Cyrus Najmabadi 已提交
1396
        End Function
1397

J
Jared Parsons 已提交
1398
        <WorkItem(546849, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/546849")>
1399
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1400 1401
        Public Async Function TestIndexedPropertyWithOptionalParameter() As Task
            Await TestAsync(<Text><![CDATA[
1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417
Class Test
    Public Property Prop(p1 As Integer, Optional p2 As Integer = 0) As Integer
        Get
            Return 0
        End Get
        Set(value As Integer)

        End Set
    End Property
    Sub Foo()
        Dim x As New Test
        x.Pr$$op(0) = 0
    End Sub
End Class
]]></Text>.NormalizedValue,
                 MainDescription("Property Test.Prop(p1 As Integer, [p2 As Integer = 0]) As Integer"))
C
Cyrus Najmabadi 已提交
1418
        End Function
1419

1420
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1421
        Public Async Function TestAwaitableMethod() As Task
1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435
            Dim markup = <Workspace>
                             <Project Language="Visual Basic" CommonReferencesNet45="true">
                                 <Document FilePath="SourceDocument">
Imports System.Threading.Tasks

Class C
    Async Function foo() As Task
        fo$$o()
    End Function
End Class
        </Document>
                             </Project>
                         </Workspace>.ToString()

1436
            Dim description = <File>&lt;<%= VBFeaturesResources.Awaitable %>&gt; Function C.foo() As Task</File>.ConvertTestSourceTag()
1437

1438
            Dim doc = StringFromLines("", WorkspacesResources.Usage_colon, $"  {SyntaxFacts.GetText(SyntaxKind.AwaitKeyword)} foo()")
1439

C
Cyrus Najmabadi 已提交
1440
            Await TestFromXmlAsync(markup,
1441
                 MainDescription(description), Usage(doc))
C
Cyrus Najmabadi 已提交
1442
        End Function
1443

1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460
        <WorkItem(7100, "https://github.com/dotnet/roslyn/issues/7100")>
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
        Public Async Function TestObjectWithOptionStrictOffIsntAwaitable() As Task
            Dim markup = "
Option Strict Off
Class C
    Function D() As Object
        Return Nothing
    End Function
    Sub M()
        D$$()
    End Sub
End Class
"
            Await TestAsync(markup, MainDescription("Function C.D() As Object"))
        End Function

1461
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1462 1463
        Public Async Function TestObsoleteItem() As Task
            Await TestAsync(<Text><![CDATA[
1464 1465 1466 1467 1468 1469 1470 1471 1472
Imports System

Class C
    <Obsolete>
    Sub Foo()
        Fo$$o()
    End Sub
End Class
]]></Text>.NormalizedValue,
1473
                MainDescription($"({VBFeaturesResources.Deprecated}) Sub C.Foo()"))
C
Cyrus Najmabadi 已提交
1474
        End Function
1475

1476
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1477
        Public Async Function TestEnumMemberNameFromMetadata() As Task
1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488
            Dim code =
<Code>
Imports System

Class C
    Sub M()
        Dim c = ConsoleColor.Bla$$ck
    End Sub
End Class
</Code>.NormalizedValue()

C
Cyrus Najmabadi 已提交
1489
            Await TestAsync(code,
1490
                MainDescription("ConsoleColor.Black = 0"))
C
Cyrus Najmabadi 已提交
1491
        End Function
1492

1493
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1494
        Public Async Function TestEnumMemberNameFromSource1() As Task
1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509
            Dim code =
<Code>
Enum Foo
    A = 1 &lt;&lt; 0
    B = 1 &lt;&lt; 1
    C = 1 &lt;&lt; 2
End Enum

Class C
    Sub M()
        Dim e = Foo.B$$
    End Sub
End Class
</Code>.NormalizedValue()

C
Cyrus Najmabadi 已提交
1510
            Await TestAsync(code,
1511
                MainDescription("Foo.B = 1 << 1"))
C
Cyrus Najmabadi 已提交
1512
        End Function
1513

1514
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1515
        Public Async Function TestEnumMemberNameFromSource2() As Task
1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530
            Dim code =
<Code>
Enum Foo
    A
    B
    C
End Enum

Class C
    Sub M()
        Dim e = Foo.B$$
    End Sub
End Class
</Code>.NormalizedValue()

C
Cyrus Najmabadi 已提交
1531
            Await TestAsync(code,
1532
                MainDescription("Foo.B = 1"))
C
Cyrus Najmabadi 已提交
1533
        End Function
1534

1535
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1536 1537
        Public Async Function TestTextOnlyDocComment() As Task
            Await TestAsync(<text><![CDATA[
1538 1539 1540 1541 1542
''' <summary>
        '''foo
        ''' </summary>
Class C$$
End Class]]></text>.NormalizedValue(), Documentation("foo"))
C
Cyrus Najmabadi 已提交
1543
        End Function
1544

1545
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1546 1547
        Public Async Function TestTrimConcatMultiLine() As Task
            Await TestAsync(<text><![CDATA[
1548 1549 1550 1551 1552 1553
''' <summary>
        ''' foo
        ''' bar
        ''' </summary>
Class C$$
End Class]]></text>.NormalizedValue(), Documentation("foo bar"))
C
Cyrus Najmabadi 已提交
1554
        End Function
1555

1556
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1557 1558
        Public Async Function TestCref() As Task
            Await TestAsync(<text><![CDATA[
1559 1560 1561 1562 1563 1564
''' <summary>
        ''' <see cref="C"/>
        ''' <seealso cref="C"/>
        ''' </summary>
Class C$$
End Class]]></text>.NormalizedValue(), Documentation("C C"))
C
Cyrus Najmabadi 已提交
1565
        End Function
1566

1567
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1568 1569
        Public Async Function TestExcludeTextOutsideSummaryBlock() As Task
            Await TestAsync(<text><![CDATA[
1570 1571 1572 1573 1574 1575 1576
''' red
        ''' <summary>
        ''' green
        ''' </summary>
        ''' yellow
Class C$$
End Class]]></text>.NormalizedValue(), Documentation("green"))
C
Cyrus Najmabadi 已提交
1577
        End Function
1578

1579
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1580 1581
        Public Async Function TestNewlineAfterPara() As Task
            Await TestAsync(<text><![CDATA[
1582 1583 1584 1585 1586
''' <summary>
        ''' <para>foo</para>
        ''' </summary>
Class C$$
End Class]]></text>.NormalizedValue(), Documentation("foo"))
C
Cyrus Najmabadi 已提交
1587
        End Function
1588

1589
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1590 1591
        Public Async Function TestParam() As Task
            Await TestAsync(<text><![CDATA[
1592 1593 1594 1595 1596 1597 1598 1599
''' <summary></summary>
Public Class C
            ''' <typeparam name="T">A type parameter of <see cref="Foo(Of T) (string(), T)"/></typeparam>
            ''' <param name="args">First parameter of <see cref="Foo(Of T) (string(), T)"/></param>
            ''' <param name="otherParam">Another parameter of <see cref="Foo(Of T)(string(), T)"/></param>
            Public Function Foo(Of T)(arg$$s As String(), otherParam As T)
    End Function
        End Class]]></text>.NormalizedValue(), Documentation("First parameter of C.Foo(Of T)(String(), T)"))
C
Cyrus Najmabadi 已提交
1600
        End Function
1601

1602
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1603 1604
        Public Async Function TestParam2() As Task
            Await TestAsync(<text><![CDATA[
1605 1606 1607 1608 1609 1610 1611 1612
''' <summary></summary>
Public Class C
            ''' <typeparam name="T">A type parameter of <see cref="Foo(Of T) (string(), T)"/></typeparam>
            ''' <param name="args">First parameter of <see cref="Foo(Of T) (string(), T)"/></param>
            ''' <param name="otherParam">Another parameter of <see cref="Foo(Of T)(string(), T)"/></param>
            Public Function Foo(Of T)(args As String(), otherP$$aram As T)
            End Function
        End Class]]></text>.NormalizedValue(), Documentation("Another parameter of C.Foo(Of T)(String(), T)"))
C
Cyrus Najmabadi 已提交
1613
        End Function
1614

1615
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1616 1617
        Public Async Function TestTypeParam() As Task
            Await TestAsync(<text><![CDATA[
1618 1619 1620 1621 1622 1623 1624 1625
''' <summary></summary>
Public Class C
            ''' <typeparam name="T">A type parameter of <see cref="Foo(Of T) (string(), T)"/></typeparam>
            ''' <param name="args">First parameter of <see cref="Foo(Of T) (string(), T)"/></param>
            ''' <param name="otherParam">Another parameter of <see cref="Foo(Of T)(string(), T)"/></param>
            Public Function Foo(Of T$$)( args as String(), otherParam as T)
    End Function
        End Class]]></text>.NormalizedValue(), Documentation("A type parameter of C.Foo(Of T)(String(), T)"))
C
Cyrus Najmabadi 已提交
1626
        End Function
1627

1628
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1629 1630
        Public Async Function TestUnboundCref() As Task
            Await TestAsync(<text><![CDATA[
1631 1632 1633 1634 1635 1636
''' <summary></summary>
Public Class C
            ''' <typeparam name="T">A type parameter of <see cref="foo(Of T) (string, T)"/></typeparam>
            Public Function Foo(Of T$$)( args as String(), otherParam as T)
    End Function
        End Class]]></text>.NormalizedValue(), Documentation("A type parameter of foo(Of T) (string, T)"))
C
Cyrus Najmabadi 已提交
1637
        End Function
1638

1639
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1640 1641
        Public Async Function TestCrefInConstructor() As Task
            Await TestAsync(<text><![CDATA[
1642 1643 1644 1645 1646 1647 1648
Public Class TestClass
            ''' <summary>
            ''' This sample shows how to specify the <see cref="TestClass"/> constructor as a cref attribute.
            ''' </summary>
            Public Sub N$$ew()
    End Sub
        End Class]]></text>.NormalizedValue(), Documentation("This sample shows how to specify the TestClass constructor as a cref attribute."))
C
Cyrus Najmabadi 已提交
1649
        End Function
1650

1651
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1652 1653
        Public Async Function TestCrefInConstructorOverloaded() As Task
            Await TestAsync(<text><![CDATA[
1654 1655
Public Class TestClass
            Public Sub New()
C
Cyrus Najmabadi 已提交
1656
            End Function
1657 1658 1659 1660 1661 1662
            ''' <summary>
            ''' This sample shows how to specify the <see cref="TestClass.New(Integer)"/> constructor as a cref attribute.
            ''' </summary>
            Public Sub Ne$$w(value As Integer)
    End Sub
        End Class]]></text>.NormalizedValue(), Documentation("This sample shows how to specify the New(Integer) constructor as a cref attribute."))
C
Cyrus Najmabadi 已提交
1663
        End Function
1664

J
Jared Parsons 已提交
1665
        <WorkItem(814191, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/814191")>
1666
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1667 1668
        Public Async Function TestCrefInGenericMethod1() As Task
            Await TestAsync(<text><![CDATA[
1669 1670 1671 1672 1673 1674 1675 1676
Public Class TestClass
            ''' <summary>
            ''' This sample shows how to specify the <see cref="GetGenericValue"/> method as a cref attribute.
            ''' </summary>
            Public Shared Function GetGe$$nericValue(Of T)(para As T) As T
        Return para
            End Function
        End Class]]></text>.NormalizedValue(), Documentation("This sample shows how to specify the TestClass.GetGenericValue(Of T)(T) method as a cref attribute."))
C
Cyrus Najmabadi 已提交
1677
        End Function
1678

1679
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1680 1681
        Public Async Function TestCrefInGenericMethod2() As Task
            Await TestAsync(<text><![CDATA[
1682 1683 1684 1685 1686 1687 1688 1689
Public class TestClass
    ''' <summary>
    ''' This sample shows how to specify the <see cref="GetGenericValue(OfT)(T)"/> method as a cref attribute.
    ''' </summary>
    Public Shared Function GetGe$$nericValue(Of T)(para As T) As T
        Return para
    End Function
End Class]]></text>.NormalizedValue(), Documentation("This sample shows how to specify the GetGenericValue(OfT)(T) method as a cref attribute."))
C
Cyrus Najmabadi 已提交
1690
        End Function
1691

J
Jared Parsons 已提交
1692
        <WorkItem(813350, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/813350")>
1693
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1694 1695
        Public Async Function TestCrefInMethodOverloading1() As Task
            Await TestAsync(<text><![CDATA[
1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714
public class TestClass
    Public Shared Function GetZero() As Integer
        GetGenericVa$$lue()
        Return GetGenericValue(5)
    End Function

    ''' <summary>
    ''' This sample shows how to specify the <see cref="GetGenericValue(OfT)(T)"/> method as a cref attribute.
    ''' </summary>
    Public Shared Function GetGenericValue(Of T)(para As T) As T
        Return para
    End Function

    ''' <summary>
    ''' This sample shows how to specify the <see cref="GetGenericValue()"/> method as a cref attribute.
    ''' </summary>
    Public Shared Sub GetGenericValue()
    End Sub
End Class]]></text>.NormalizedValue(), Documentation("This sample shows how to specify the TestClass.GetGenericValue() method as a cref attribute."))
C
Cyrus Najmabadi 已提交
1715
        End Function
1716

J
Jared Parsons 已提交
1717
        <WorkItem(813350, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/813350")>
1718
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1719 1720
        Public Async Function TestCrefInMethodOverloading2() As Task
            Await TestAsync(<text><![CDATA[
1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739
public class TestClass
    Public Shared Function GetZero() As Integer
        GetGenericValue()
        Return GetGe$$nericValue(5)
    End Function

    ''' <summary>
    ''' This sample shows how to specify the <see cref="GetGenericValue(OfT)(T)"/> method as a cref attribute.
    ''' </summary>
    Public Shared Function GetGenericValue(Of T)(para As T) As T
        Return para
    End Function

    ''' <summary>
    ''' This sample shows how to specify the <see cref="GetGenericValue()"/> method as a cref attribute.
    ''' </summary>
    Public Shared Sub GetGenericValue()
    End Sub
End Class]]></text>.NormalizedValue(), Documentation("This sample shows how to specify the GetGenericValue(OfT)(T) method as a cref attribute."))
C
Cyrus Najmabadi 已提交
1740
        End Function
1741

1742
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1743 1744
        Public Async Function TestCrefInGenericType() As Task
            Await TestAsync(<text><![CDATA[
1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761
''' <summary>
''' This sample shows how to specify the <see cref="GenericClass(Of T)"/> cref.
''' </summary>
Public Class Generic$$Class(Of T)
End Class]]></text>.NormalizedValue(),
                 Documentation("This sample shows how to specify the GenericClass(Of T) cref.",
                    ExpectedClassifications(
                        Text("This sample shows how to specify the"),
                        WhiteSpace(" "),
                        [Class]("GenericClass"),
                        Punctuation.OpenParen,
                        Keyword("Of"),
                        WhiteSpace(" "),
                        TypeParameter("T"),
                        Punctuation.CloseParen,
                        WhiteSpace(" "),
                        Text("cref."))))
C
Cyrus Najmabadi 已提交
1762
        End Function
1763 1764 1765 1766 1767 1768 1769

        ''' <Remarks>
        ''' As a part of fix for 756226, quick info for VB Await keyword now displays the type inferred from the AwaitExpression. This is C# behavior.
        ''' In Dev12, quick info for VB Await keyword was the syntactic help "Await &lt;expression&gt;".
        ''' In Roslyn, VB Syntactic quick info is Not yet Implemented. User story: 522342. 
        ''' While implementing this story, determine the correct behavior for quick info on VB Await keyword (syntactic vs semantic) and update these tests.
        ''' </Remarks>
J
Jared Parsons 已提交
1770
        <WorkItem(756226, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/756226"), WorkItem(522342, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/522342")>
1771
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1772
        Public Async Function TestAwaitKeywordOnTaskReturningAsync() As Task
1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786
            Dim markup = <Workspace>
                             <Project Language="Visual Basic" CommonReferencesNet45="true">
                                 <Document FilePath="SourceDocument">
Imports System.Threading.Tasks

Class C
    Async Function foo() As Task
        Aw$$ait foo()
    End Function
End Class
        </Document>
                             </Project>
                         </Workspace>.ToString()

1787
            Dim description = <File><%= FeaturesResources.Awaited_task_returns %><%= " " %><%= FeaturesResources.no_value %></File>.ConvertTestSourceTag()
1788

C
Cyrus Najmabadi 已提交
1789 1790
            Await TestFromXmlAsync(markup, MainDescription(description))
        End Function
1791

J
Jared Parsons 已提交
1792
        <WorkItem(756226, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/756226"), WorkItem(522342, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/522342")>
1793
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1794
        Public Async Function TestAwaitKeywordOnGenericTaskReturningAsync() As Task
1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809
            Dim markup = <Workspace>
                             <Project Language="Visual Basic" CommonReferencesNet45="true">
                                 <Document FilePath="SourceDocument">
Imports System.Threading.Tasks

Class C
    Async Function foo() As Task(Of Integer)
        Dim x = Aw$$ait foo()
        Return 42
    End Function
End Class
        </Document>
                             </Project>
                         </Workspace>.ToString()

1810
            Dim description = <File><%= FeaturesResources.Awaited_task_returns %> Structure System.Int32</File>.ConvertTestSourceTag()
1811

C
Cyrus Najmabadi 已提交
1812 1813
            Await TestFromXmlAsync(markup, MainDescription(description))
        End Function
1814

J
Jared Parsons 已提交
1815
        <WorkItem(756226, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/756226"), WorkItem(522342, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/522342")>
1816
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1817
        Public Async Function TestAwaitKeywordOnTaskReturningAsync2() As Task
1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831
            Dim markup = <Workspace>
                             <Project Language="Visual Basic" CommonReferencesNet45="true">
                                 <Document FilePath="SourceDocument">
Imports System.Threading.Tasks

Class C
    Async Sub Foo()
        Aw$$ait Task.Delay(10)
    End Sub
End Class
        </Document>
                             </Project>
                         </Workspace>.ToString()

1832
            Dim description = <File><%= FeaturesResources.Awaited_task_returns %><%= " " %><%= FeaturesResources.no_value %></File>.ConvertTestSourceTag()
1833

C
Cyrus Najmabadi 已提交
1834 1835
            Await TestFromXmlAsync(markup, MainDescription(description))
        End Function
1836

J
Jared Parsons 已提交
1837
        <WorkItem(756226, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/756226"), WorkItem(522342, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/522342")>
1838
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1839
        Public Async Function TestNestedAwaitKeywords1() As Task
1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868
            Dim markup = <Workspace>
                             <Project Language="Visual Basic" CommonReferencesNet45="true">
                                 <Document FilePath="SourceDocument">
Imports System
Imports System.Threading.Tasks

Class AsyncExample
    Async Function AsyncMethod() As Task(Of Task(Of Integer))
        Return NewMethod()
    End Function

    Private Shared Function NewMethod() As Task(Of Integer)
        Throw New NotImplementedException()
    End Function

    Async Function UseAsync() As Task
        Dim lambda As Func(Of Task(Of Integer)) = Async Function()
                                                      Return Await Await AsyncMethod()
                                                  End Function
        Dim result = Await Await AsyncMethod()
        Dim resultTask As Task(Of Task(Of Integer)) = AsyncMethod()
        result = Await Awai$$t resultTask
        result = Await lambda()
    End Function
End Class
        </Document>
                             </Project>
                         </Workspace>.ToString()

1869 1870
            Dim description = <File>&lt;<%= VBFeaturesResources.Awaitable %>&gt; <%= FeaturesResources.Awaited_task_returns %> Class System.Threading.Tasks.Task(Of TResult)</File>.ConvertTestSourceTag()
            Await TestFromXmlAsync(markup, MainDescription(description), TypeParameterMap(vbCrLf & $"TResult {FeaturesResources.is_} Integer"))
C
Cyrus Najmabadi 已提交
1871
        End Function
1872

J
Jared Parsons 已提交
1873
        <WorkItem(756226, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/756226"), WorkItem(522342, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/522342")>
1874
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1875
        Public Async Function TestNestedAwaitKeywords2() As Task
1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904
            Dim markup = <Workspace>
                             <Project Language="Visual Basic" CommonReferencesNet45="true">
                                 <Document FilePath="SourceDocument">
Imports System
Imports System.Threading.Tasks

Class AsyncExample
    Async Function AsyncMethod() As Task(Of Task(Of Integer))
        Return NewMethod()
    End Function

    Private Shared Function NewMethod() As Task(Of Integer)
        Throw New NotImplementedException()
    End Function

    Async Function UseAsync() As Task
        Dim lambda As Func(Of Task(Of Integer)) = Async Function()
                                                      Return Await Await AsyncMethod()
                                                  End Function
        Dim result = Await Await AsyncMethod()
        Dim resultTask As Task(Of Task(Of Integer)) = AsyncMethod()
        result = Awai$$t Await resultTask
        result = Await lambda()
    End Function
End Class
        </Document>
                             </Project>
                         </Workspace>.ToString()

1905
            Dim description = <File><%= FeaturesResources.Awaited_task_returns %> Structure System.Int32</File>.ConvertTestSourceTag()
C
Cyrus Najmabadi 已提交
1906 1907
            Await TestFromXmlAsync(markup, MainDescription(description))
        End Function
1908

J
Jared Parsons 已提交
1909
        <WorkItem(756226, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/756226"), WorkItem(756337, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/756337"), WorkItem(522342, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/522342")>
1910
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1911
        Public Async Function TestTaskType() As Task
1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926
            Dim markup = <Workspace>
                             <Project Language="Visual Basic" CommonReferencesNet45="true">
                                 <Document FilePath="SourceDocument">
Imports System
Imports System.Threading.Tasks

Class AsyncExample
    Sub Foo()
        Dim v as Tas$$k = Nothing
    End Sub
End Class
        </Document>
                             </Project>
                         </Workspace>.ToString()

1927
            Dim description = <File>&lt;<%= VBFeaturesResources.Awaitable %>&gt; Class System.Threading.Tasks.Task</File>.ConvertTestSourceTag()
C
Cyrus Najmabadi 已提交
1928 1929
            Await TestFromXmlAsync(markup, MainDescription(description))
        End Function
1930

J
Jared Parsons 已提交
1931
        <WorkItem(756226, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/756226"), WorkItem(756337, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/756337"), WorkItem(522342, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/522342")>
1932
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1933
        Public Async Function TestTaskOfTType() As Task
1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948
            Dim markup = <Workspace>
                             <Project Language="Visual Basic" CommonReferencesNet45="true">
                                 <Document FilePath="SourceDocument">
Imports System
Imports System.Threading.Tasks

Class AsyncExample
    Sub Foo()
        Dim v as Tas$$k(Of Integer) = Nothing
    End Sub
End Class
        </Document>
                             </Project>
                         </Workspace>.ToString()

1949
            Dim description = <File>&lt;<%= VBFeaturesResources.Awaitable %>&gt; Class System.Threading.Tasks.Task(Of TResult)</File>.ConvertTestSourceTag()
1950
            Await TestFromXmlAsync(markup, MainDescription(description), TypeParameterMap(vbCrLf & $"TResult {FeaturesResources.is_} Integer"))
C
Cyrus Najmabadi 已提交
1951
        End Function
1952

J
Jared Parsons 已提交
1953
        <WorkItem(756226, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/756226"), WorkItem(756337, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/756337"), WorkItem(522342, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/522342")>
1954
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1955
        Public Async Function TestAwaitablePrefixOnCustomAwaiter() As Task
1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991
            Dim markup = <Workspace>
                             <Project Language="Visual Basic" CommonReferencesNet45="true">
                                 <Document FilePath="SourceDocument">
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Runtime.CompilerServices

Module Program
    Sub Main(args As String())
        Dim x As C$$
    End Sub
End Module

Class C
    Public Function GetAwaiter() As MyAwaiter

    End Function

End Class

Public Class MyAwaiter
    Implements INotifyCompletion

    Public Property IsCompleted As Boolean
    Public Sub GetResult()

    End Sub
    Public Sub OnCompleted(continuation As Action) Implements INotifyCompletion.OnCompleted
        Throw New NotImplementedException()
    End Sub
End Class
        </Document>
                             </Project>
                         </Workspace>.ToString()

1992
            Dim description = <File>&lt;<%= VBFeaturesResources.Awaitable %>&gt; Class C</File>.ConvertTestSourceTag()
C
Cyrus Najmabadi 已提交
1993 1994
            Await TestFromXmlAsync(markup, MainDescription(description))
        End Function
1995

J
Jared Parsons 已提交
1996
        <WorkItem(792629, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/792629")>
1997
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
1998 1999
        Public Async Function TestGenericMethodWithConstraintsAtDeclaration() As Task
            Await TestInClassAsync("Private Function Fo$$o(Of TIn As Class, TOut)(arg As TIn) As TOut
2000 2001 2002
    Foo(Of TIn, TOut)(Nothing)
End Function",
             MainDescription("Function C.Foo(Of TIn As Class, TOut)(arg As TIn) As TOut"))
C
Cyrus Najmabadi 已提交
2003
        End Function
2004

J
Jared Parsons 已提交
2005
        <WorkItem(792629, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/792629")>
2006
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
2007 2008
        Public Async Function TestGenericMethodWithMultipleConstraintsAtDeclaration() As Task
            Await TestInClassAsync("Private Function Fo$$o(Of TIn As {IComparable, New}, TOut)(arg As TIn) As TOut
2009 2010 2011
    Foo(Of TIn, TOut)(Nothing)
End Function",
             MainDescription("Function C.Foo(Of TIn As {IComparable, New}, TOut)(arg As TIn) As TOut"))
C
Cyrus Najmabadi 已提交
2012
        End Function
2013

J
Jared Parsons 已提交
2014
        <WorkItem(792629, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/792629")>
2015
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
2016 2017
        Public Async Function TestUnConstructedGenericMethodWithConstraintsAtInvocation() As Task
            Await TestInClassAsync("Private Function Foo(Of TIn As {Class, New}, TOut)(arg As TIn) As TOut
2018 2019 2020
    F$$oo(Of TIn, TOut)(Nothing)
End Function",
             MainDescription("Function C.Foo(Of TIn As {Class, New}, TOut)(arg As TIn) As TOut"))
C
Cyrus Najmabadi 已提交
2021
        End Function
2022

J
Jared Parsons 已提交
2023
        <WorkItem(991466, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/991466")>
2024
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
C
Cyrus Najmabadi 已提交
2025
        Public Async Function TestDocumentationInImportsDirectiveWithAlias() As Task
2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047
            Dim markup = <Workspace>
                             <Project Language="Visual Basic" CommonReferencesNet45="true">
                                 <Document FilePath="SourceDocument">
Imports I = IFoo
Class C
    Implements I$$

    Public Sub Bar() Implements IFoo.Bar
        Throw New NotImplementedException()
    End Sub
End Class

''' &lt;summary&gt;
''' summary for interface IFoo
''' &lt;/summary&gt;
Interface IFoo
    Sub Bar()
End Interface
        </Document>
                             </Project>
                         </Workspace>.ToString()

C
Cyrus Najmabadi 已提交
2048 2049
            Await TestFromXmlAsync(markup, MainDescription("Interface IFoo"), Documentation("summary for interface IFoo"))
        End Function
2050

2051 2052
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
        <WorkItem(4868, "https://github.com/dotnet/roslyn/issues/4868")>
C
Cyrus Najmabadi 已提交
2053 2054
        Public Async Function TestQuickInfoExceptions() As Task
            Await TestAsync("
2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067
Imports System
Namespace MyNs
    Class MyException1
        Inherits Exception
    End Class
    Class MyException2
        Inherits Exception
    End Class
    Class TestClass
        ''' <exception cref=""MyException1""></exception>
        ''' <exception cref=""T:MyNs.MyException2""></exception>
        ''' <exception cref=""System.Int32""></exception>
        ''' <exception cref=""Double""></exception>
2068
        ''' <exception cref=""Not_A_Class_But_Still_Displayed""></exception>
2069 2070 2071 2072 2073 2074
        Sub M()
            M$$()
        End Sub
    End Class
End Namespace
",
2075
                Exceptions($"{vbCrLf}{WorkspacesResources.Exceptions_colon}{vbCrLf}  MyException1{vbCrLf}  MyException2{vbCrLf}  Integer{vbCrLf}  Double{vbCrLf}  Not_A_Class_But_Still_Displayed"))
C
Cyrus Najmabadi 已提交
2076
        End Function
2077

2078 2079
        <Fact, Trait(Traits.Feature, Traits.Features.QuickInfo)>
        <WorkItem(1516, "https://github.com/dotnet/roslyn/issues/1516")>
C
Cyrus Najmabadi 已提交
2080 2081
        Public Async Function TestQuickInfoWithNonStandardSeeAttributesAppear() As Task
            Await TestAsync("
2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094
Class C
    ''' <summary>
    ''' <see cref=""System.String"" />
    ''' <see href=""http://microsoft.com"" />
    ''' <see langword=""Nothing"" />
    ''' <see unsupported-attribute=""cat"" />
    ''' </summary>
    Sub M()
        M$$()
    End Sub
End Class
",
                 Documentation("String http://microsoft.com Nothing cat"))
C
Cyrus Najmabadi 已提交
2095
        End Function
2096
    End Class
C
Cyrus Najmabadi 已提交
2097
End Namespace