internal static SymbolInfo Create(ImmutableArray<Symbol> symbols, LookupResultKind resultKind, bool isDynamic) { if (isDynamic) { if (symbols.Length == 1) { return new SymbolInfo(symbols[0], CandidateReason.LateBound); } else { return new SymbolInfo(StaticCast<ISymbol>.From(symbols), CandidateReason.LateBound); } } else if (resultKind == LookupResultKind.Viable) { if (symbols.Length > 0) { Debug.Assert(symbols.Length == 1); return new SymbolInfo(symbols[0]); } else { return SymbolInfo.None; } } else { return new SymbolInfo(StaticCast<ISymbol>.From(symbols), (symbols.Length > 0) ? resultKind.ToCandidateReason() : CandidateReason.None); } }
internal static SymbolInfo Create( ImmutableArray <Symbol> symbols, LookupResultKind resultKind, bool isDynamic ) { if (isDynamic) { if (symbols.Length == 1) { return(new SymbolInfo(symbols[0].GetPublicSymbol(), CandidateReason.LateBound)); } else { return(new SymbolInfo(symbols.GetPublicSymbols(), CandidateReason.LateBound)); } } else if (resultKind == LookupResultKind.Viable) { if (symbols.Length > 0) { Debug.Assert(symbols.Length == 1); return(new SymbolInfo(symbols[0].GetPublicSymbol())); } else { return(SymbolInfo.None); } } else { return(new SymbolInfo( symbols.GetPublicSymbols(), (symbols.Length > 0) ? resultKind.ToCandidateReason() : CandidateReason.None )); } }
internal static SymbolInfo Create(ImmutableArray <Symbol> symbols, LookupResultKind resultKind) { if (resultKind == LookupResultKind.Viable) { if (symbols.Length > 0) { Debug.Assert(symbols.Length == 1); return(new SymbolInfo(symbols[0])); } else { return(SymbolInfo.None); } } else { return(new SymbolInfo(StaticCast <ISymbol> .From(symbols), (symbols.Length > 0) ? resultKind.ToCandidateReason() : CandidateReason.None)); } }