private void AppendSymbolsWithName(ArrayBuilder<Symbol> results, string name, Binder binder, NamespaceOrTypeSymbol container, LookupOptions options, LookupSymbolsInfo info) { LookupSymbolsInfo.IArityEnumerable arities; Symbol uniqueSymbol; if (info.TryGetAritiesAndUniqueSymbol(name, out arities, out uniqueSymbol)) { if ((object)uniqueSymbol != null) { // This name mapped to something unique. We don't need to proceed // with a costly lookup. Just add it straight to the results. results.Add(uniqueSymbol); } else { // The name maps to multiple symbols. Actually do a real lookup so // that we will properly figure out hiding and whatnot. if (arities != null) { foreach (var arity in arities) { this.AppendSymbolsWithNameAndArity(results, name, arity, binder, container, options); } } else { //non-unique symbol with non-zero arity doesn't seem possible. this.AppendSymbolsWithNameAndArity(results, name, 0, binder, container, options); } } } }