File: BoundTree\BoundMethodOrPropertyGroup.vb
Web Access
Project: src\src\Compilers\VisualBasic\Portable\Microsoft.CodeAnalysis.VisualBasic.vbproj (Microsoft.CodeAnalysis.VisualBasic)
' Licensed to the .NET Foundation under one or more agreements.
' The .NET Foundation licenses this file to you under the MIT license.
' See the LICENSE file in the project root for more information.
 
Imports Microsoft.CodeAnalysis.Text
Imports Microsoft.CodeAnalysis.VisualBasic.Symbols
Imports Microsoft.CodeAnalysis.VisualBasic.Syntax
 
Namespace Microsoft.CodeAnalysis.VisualBasic
    Partial Friend Class BoundMethodOrPropertyGroup
 
        ''' <summary>
        ''' returns name used to lookup the method/property in the group.
        ''' </summary>
        Friend ReadOnly Property MemberName() As String
            Get
                'NOTE: type characters are not included in method names.
                Select Case Me.Kind
                    Case BoundKind.MethodGroup
                        Dim methods = DirectCast(Me, BoundMethodGroup).Methods
                        Dim name As String = methods(0).Name
 
                        Debug.Assert(methods.All(Function(m) IdentifierComparison.Comparer.Compare(m.Name, name) = 0))
                        Return name
 
                    Case BoundKind.PropertyGroup
                        Dim properties = DirectCast(Me, BoundPropertyGroup).Properties
                        Dim name As String = properties(0).Name
 
                        Debug.Assert(properties.All(Function(m) IdentifierComparison.Comparer.Compare(m.Name, name) = 0))
                        Return name
                End Select
 
                Throw ExceptionUtilities.UnexpectedValue(Me.Kind)
            End Get
        End Property
 
        ''' <summary>
        ''' returns the container of the first member in the group.
        ''' </summary>
        Friend ReadOnly Property ContainerOfFirstInGroup() As TypeSymbol
            Get
                Select Case Me.Kind
                    Case BoundKind.MethodGroup
                        Return DirectCast(Me, BoundMethodGroup).Methods(0).ContainingType
 
                    Case BoundKind.PropertyGroup
                        Return DirectCast(Me, BoundPropertyGroup).Properties(0).ContainingType
                End Select
 
                Throw ExceptionUtilities.UnexpectedValue(Me.Kind)
            End Get
        End Property
    End Class
End Namespace