示例#1
0
        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);
            }
        }