dotnet/roslyn

Confusing doc comments and method names in implementation of VB's PENamespaceSymbol

Offen

#73.870 geöffnet am 06.06.2024

 (0 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)C# (4.257 Forks)batch import
Area-CompilersConcept-APIConcept-Design Debthelp wanted

Repository-Metriken

Stars
 (20.414 Sterne)
PR-Merge-Metriken
 (PR-Metriken ausstehend)

Beschreibung

Members dealing with both namespaces and types are documented/named to imply that the types are not involved:

        ''' <summary>
        ''' A map of namespaces immediately contained within this namespace 
        ''' grouped by their name (case-insensitively).
        ''' </summary>
        Protected m_lazyMembers As Dictionary(Of String, ImmutableArray(Of Symbol))

        ...

        ''' <summary>
        ''' Create symbols for nested namespaces and initialize m_Namespaces map.
        ''' </summary>
        Private Sub LazyInitializeNamespaces(
            childNamespaces As IEnumerable(Of KeyValuePair(Of String, IEnumerable(Of IGrouping(Of String, TypeDefinitionHandle))))
        )
            If m_lazyMembers Is Nothing Then

                Dim members As New Dictionary(Of String, ImmutableArray(Of Symbol))(CaseInsensitiveComparison.Comparer)

                ' Add namespaces
                For Each child In childNamespaces
                    Dim ns = New PENestedNamespaceSymbol(child.Key, Me, child.Value)
                    members.Add(ns.Name, ImmutableArray.Create(Of Symbol)(ns))
                Next

                ' Merge in the types

                For Each typeSymbols As ImmutableArray(Of PENamedTypeSymbol) In m_lazyTypes.Values
                    Dim name = typeSymbols(0).Name
                    Dim symbols As ImmutableArray(Of Symbol) = Nothing

                    If Not members.TryGetValue(name, symbols) Then
                        members.Add(name, StaticCast(Of Symbol).From(typeSymbols))
                    Else
                        members(name) = symbols.Concat(StaticCast(Of Symbol).From(typeSymbols))
                    End If
                Next

                Interlocked.CompareExchange(m_lazyMembers, members, Nothing)
            End If
        End Sub

Contributor Guide