File: EditAndContinue\DeclarationBody\FieldWithMultipleArrayBoundsDeclarationBody.vb
Web Access
Project: src\src\Features\VisualBasic\Portable\Microsoft.CodeAnalysis.VisualBasic.Features.vbproj (Microsoft.CodeAnalysis.VisualBasic.Features)
' Licensed to the .NET Foundation under one or more agreements.
' The .NET Foundation licenses this file to you under the MIT license.
' See the LICENSE file in the project root for more information.
 
Imports System.Collections.Immutable
Imports Microsoft.CodeAnalysis.VisualBasic.Syntax
 
Namespace Microsoft.CodeAnalysis.VisualBasic.EditAndContinue
    ''' <summary>
    ''' A field that's part of declaration with multiple identifiers with array bounds.
    ''' 
    ''' Dim [|a(n)|], [|b(n)|] As Integer
    ''' </summary>
    Friend NotInheritable Class FieldWithMultipleArrayBoundsDeclarationBody
        Inherits FieldOrPropertyDeclarationBody
 
        Private ReadOnly _identifier As ModifiedIdentifierSyntax
 
        Public Sub New(identifier As ModifiedIdentifierSyntax)
            _identifier = identifier
        End Sub
 
        Public Overrides ReadOnly Property InitializerActiveStatement As SyntaxNode
            Get
                Return _identifier
            End Get
        End Property
 
        Public Overrides ReadOnly Property OtherActiveStatementContainer As SyntaxNode
            Get
                Return _identifier.ArrayBounds
            End Get
        End Property
 
        Public Overrides Function GetCapturedVariables(model As SemanticModel) As ImmutableArray(Of ISymbol)
            ' Edge case, no need to be efficient, currently there can either be no captured variables or just "Me".
            ' Dim a((Function(n) n + 1).Invoke(1), (Function(n) n + 2).Invoke(2)) As Integer
            Return SyntaxUtilities.GetArrayBoundsCapturedVariables(model, _identifier.ArrayBounds)
        End Function
    End Class
End Namespace