public int Compare(Symbol x, Symbol y) { int comparison; if (x == y) { return(0); } var xSortKey = x.GetLexicalSortKey(); var ySortKey = y.GetLexicalSortKey(); Debug.Assert((object)x.DeclaringCompilation == y.DeclaringCompilation); comparison = LexicalSortKey.Compare(xSortKey, ySortKey); if (comparison != 0) { return(comparison); } comparison = x.Kind.ToSortOrder() - y.Kind.ToSortOrder(); if (comparison != 0) { return(comparison); } comparison = string.CompareOrdinal(x.Name, y.Name); Debug.Assert(comparison != 0); return(comparison); }
public int Compare(Symbol x, Symbol y) { int comparison; if (x == y) { return(0); } var xSortKey = x.GetLexicalSortKey(); var ySortKey = y.GetLexicalSortKey(); comparison = LexicalSortKey.Compare(xSortKey, ySortKey); if (comparison != 0) { return(comparison); } comparison = ((ISymbol)x).Kind.ToSortOrder() - ((ISymbol)y).Kind.ToSortOrder(); if (comparison != 0) { return(comparison); } comparison = string.CompareOrdinal(x.Name, y.Name); Debug.Assert(comparison != 0); return(comparison); }
public LexicalSortKey GetLexicalSortKey(CSharpCompilation compilation) { LexicalSortKey sortKey = new LexicalSortKey(Declarations[0].NameLocation, compilation); for (var i = 1; i < Declarations.Length; i++) { sortKey = LexicalSortKey.First(sortKey, new LexicalSortKey(Declarations[i].NameLocation, compilation)); } return sortKey; }