internal ContainerBinder(Binder containingScope, NamespaceReference mergedContainer, IEnumerable<ImportedSymbol> imports)
     : base(containingScope)
 {
     this.mergedContainer = mergedContainer;
     foreach(var import in imports)
         this.imports.Add(import.AliasName, import);
 }
        private static IReadOnlyList<DeclarationReference> GetMembersSlow(IEnumerable<Declaration> symbols)
        {
            var lookup = symbols
                .ToLookup(s => s is Namespace);

            var childSymbols = lookup[false].Cast<Entity>()
                .Select(e => (DeclarationReference)new EntityReference(e)).ToList();
            var childNamespaces = lookup[true].ToList();
            if(childNamespaces.Any())
            {
                var childNamespace = new NamespaceReference(childNamespaces.Cast<Namespace>());
                childSymbols.Add(childNamespace);
            }

            return childSymbols;
        }
Example #3
0
        private static IReadOnlyList <DeclarationReference> GetMembersSlow(IEnumerable <Declaration> symbols)
        {
            var lookup = symbols
                         .ToLookup(s => s is Namespace);

            var childSymbols = lookup[false].Cast <Entity>()
                               .Select(e => (DeclarationReference) new EntityReference(e)).ToList();
            var childNamespaces = lookup[true].ToList();

            if (childNamespaces.Any())
            {
                var childNamespace = new NamespaceReference(childNamespaces.Cast <Namespace>());
                childSymbols.Add(childNamespace);
            }

            return(childSymbols);
        }
 internal NamespaceBinder(Binder containingScope, NamespaceReference mergedContainer, IEnumerable<ImportedSymbol> imports)
     : base(containingScope, mergedContainer, imports)
 {
 }