From 10d25c8d4a7f5b53ca9d533b169cb27afe6e40dc Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Wed, 10 Jul 2019 21:30:07 -0700 Subject: [PATCH] Simplify --- .../SymbolKey/SymbolKey.MethodSymbolKey.cs | 45 +++++-------------- 1 file changed, 12 insertions(+), 33 deletions(-) diff --git a/src/Workspaces/Core/Portable/SymbolKey/SymbolKey.MethodSymbolKey.cs b/src/Workspaces/Core/Portable/SymbolKey/SymbolKey.MethodSymbolKey.cs index 1cccc7688b9..7682cc7f8cf 100644 --- a/src/Workspaces/Core/Portable/SymbolKey/SymbolKey.MethodSymbolKey.cs +++ b/src/Workspaces/Core/Portable/SymbolKey/SymbolKey.MethodSymbolKey.cs @@ -113,7 +113,7 @@ public static void Create(IMethodSymbol symbol, SymbolKeyWriter visitor) public static SymbolKeyResolution Resolve(SymbolKeyReader reader) { var metadataName = reader.ReadString(); - var containingSymbolResolution = reader.ReadSymbolKey(); + var containingTypeResolution = reader.ReadSymbolKey(); var arity = reader.ReadInteger(); var isPartialMethodImplementationPart = reader.ReadBoolean(); using var parameterRefKinds = reader.ReadRefKindArray(); @@ -128,23 +128,21 @@ public static SymbolKeyResolution Resolve(SymbolKeyReader reader) // point. var beforeParametersPosition = reader.Position; + using var methods = GetMembersOfNamedType(containingTypeResolution, metadataNameOpt: null); using var result = PooledArrayBuilder.GetInstance(); - foreach (var symbol in containingSymbolResolution) + foreach (var candidate in methods) { - if (symbol is INamedTypeSymbol namedType) - { - var method = Resolve(reader, metadataName, arity, isPartialMethodImplementationPart, - parameterRefKinds, beforeParametersPosition, namedType); + var method = Resolve(reader, metadataName, arity, isPartialMethodImplementationPart, + parameterRefKinds, beforeParametersPosition, candidate); - // Note: after finding the first method that matches we stop. That's necessary - // as we cache results while searching. We don't want to override these positive - // matches with a negative ones if we were to continue searching. - if (method != null) - { - result.AddIfNotNull(method); - break; - } + // Note: after finding the first method that matches we stop. That's necessary + // as we cache results while searching. We don't want to override these positive + // matches with a negative ones if we were to continue searching. + if (method != null) + { + result.AddIfNotNull(method); + break; } } @@ -168,25 +166,6 @@ public static SymbolKeyResolution Resolve(SymbolKeyReader reader) return CreateSymbolInfo(result); } - private static IMethodSymbol Resolve( - SymbolKeyReader reader, string metadataName, int arity, bool isPartialMethodImplementationPart, - PooledArrayBuilder parameterRefKinds, int beforeParametersPosition, - INamedTypeSymbol namedType) - { - foreach (var method in namedType.GetMembers().OfType()) - { - var result = Resolve(reader, metadataName, arity, isPartialMethodImplementationPart, - parameterRefKinds, beforeParametersPosition, method); - - if (result != null) - { - return result; - } - } - - return null; - } - private static IMethodSymbol Resolve( SymbolKeyReader reader, string metadataName, int arity, bool isPartialMethodImplementationPart, PooledArrayBuilder parameterRefKinds, int beforeParametersPosition, -- GitLab