// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System.Collections.Immutable; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; using Microsoft.CodeAnalysis.Shared.Utilities; internal readonly struct CSharpLightweightOverloadResolution( SemanticModel semanticModel, SeparatedSyntaxList<ArgumentSyntax> arguments, int? position = null) { private readonly LightweightOverloadResolution _overloadResolution = new(CSharpSemanticFacts.Instance, semanticModel, arguments, position); public IMethodSymbol? RefineOverload(SymbolInfo symbolInfo, ImmutableArray<IMethodSymbol> candidates) => _overloadResolution.RefineOverload(symbolInfo, candidates); public (IMethodSymbol? method, int parameterIndex) RefineOverloadAndPickParameter(SymbolInfo symbolInfo, ImmutableArray<IMethodSymbol> candidates) => _overloadResolution.RefineOverloadAndPickParameter(symbolInfo, candidates); public int FindParameterIndexIfCompatibleMethod(IMethodSymbol method) => _overloadResolution.FindParameterIndexIfCompatibleMethod(method); } |