private DataType AssignReferencedSymbolAndType( NameSyntax identifier, FixedList <ISymbol> memberSymbols) { switch (memberSymbols.Count) { case 0: diagnostics.Add(NameBindingError.CouldNotBindMember(file, identifier.Span)); identifier.ReferencedSymbol = UnknownSymbol.Instance; return(identifier.Type = DataType.Unknown); case 1: var memberSymbol = memberSymbols.Single(); identifier.ReferencedSymbol = memberSymbol; return(identifier.Type = memberSymbol.Type); default: diagnostics.Add(NameBindingError.AmbiguousName(file, identifier.Span)); identifier.ReferencedSymbol = UnknownSymbol.Instance; return(identifier.Type = DataType.Unknown); } }