Skip to content

Commit

Permalink
Merge pull request #64565 from CyrusNajmabadi/simplifySymbolKey
Browse files Browse the repository at this point in the history
Simplify SymbolKey implementation
  • Loading branch information
CyrusNajmabadi authored Oct 7, 2022
2 parents fa58432 + 428ba49 commit 8664540
Showing 1 changed file with 7 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -310,9 +310,7 @@ private static PooledArrayBuilder<TSymbol> GetMembersOfNamedType<TSymbol>(
foreach (var member in members)
{
if (member is TSymbol symbol)
{
result.AddIfNotNull(symbol);
}
}
}

Expand All @@ -335,8 +333,8 @@ private static int GetDataStartPosition(string key)
return 0;

using var reader = SymbolKeyReader.GetReader(key, compilation: null!, ignoreAssemblyKey: false, CancellationToken.None);
reader.ReadFormatVersion();
reader.ReadString();
_ = reader.ReadFormatVersion();
_ = reader.ReadString();
return reader.Position;
}

Expand All @@ -351,7 +349,7 @@ public override int GetHashCode()

return hashCode;
#else
return string.GetHashCode(_symbolKeyData.AsSpan()[position..]);
return string.GetHashCode(_symbolKeyData.AsSpan(position));
#endif
}

Expand All @@ -366,12 +364,11 @@ private bool Equals(SymbolKey other, bool ignoreCase)
var position1 = GetDataStartPosition(_symbolKeyData);
var position2 = GetDataStartPosition(other._symbolKeyData);

var keySpan1 = _symbolKeyData.AsSpan()[position1..];
var keySpan2 = other._symbolKeyData.AsSpan()[position2..];
var keySpan1 = _symbolKeyData.AsSpan(position1);
var keySpan2 = other._symbolKeyData.AsSpan(position2);

return ignoreCase
? CaseInsensitiveComparison.Equals(keySpan1, keySpan2)
: keySpan1.SequenceEqual(keySpan2);
var comparison = ignoreCase ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal;
return keySpan1.Equals(keySpan2, comparison);
}
}
}

0 comments on commit 8664540

Please sign in to comment.