Mono.CompilerServices.SymbolWriter.SymbolWriterImpl.GetCurrentNamespace C# (CSharp) Method

GetCurrentNamespace() private method

private GetCurrentNamespace ( ISymbolDocumentWriter doc ) : int
doc ISymbolDocumentWriter
return int
        int GetCurrentNamespace(ISymbolDocumentWriter doc)
        {
            if (namespaceStack.Count == 0) {
                OpenNamespace ("");
            }

            NamespaceInfo ni = (NamespaceInfo) namespaceStack.Peek ();
            if (ni.NamespaceID == -1)
            {
                string[] usings = (string[]) ni.UsingClauses.ToArray (typeof(string));

                int parentId = 0;
                if (namespaceStack.Count > 1) {
                    namespaceStack.Pop ();
                    parentId = ((NamespaceInfo) namespaceStack.Peek ()).NamespaceID;
                    namespaceStack.Push (ni);
                }

                ni.NamespaceID = msw.DefineNamespace (ni.Name, ((ICompileUnit)doc).Entry, usings, parentId);
            }
            return ni.NamespaceID;
        }