2 instantiations of OverloadResolution
Microsoft.CodeAnalysis.CSharp (1)
Binder\Binder.cs (1)
522Interlocked.CompareExchange(ref _lazyOverloadResolution, new OverloadResolution(this), null);
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (1)
Semantics\OperatorTests.cs (1)
7377var overloadResolution = new OverloadResolution(binder);
82 references to OverloadResolution
Microsoft.CodeAnalysis.CSharp (76)
Binder\Binder.cs (2)
515private OverloadResolution? _lazyOverloadResolution; 516internal OverloadResolution OverloadResolution
Binder\Binder.ValueChecks.cs (1)
617var resolution = this.ResolveMethodGroup(methodGroup, analyzedArguments: null, useSiteInfo: ref useSiteInfo, options: OverloadResolution.Options.None, acceptOnlyMethods: true);
Binder\Binder_Conversions.cs (3)
1365options: OverloadResolution.Options.DynamicResolution | OverloadResolution.Options.DynamicConvertsToAnything, 1500OverloadResolution.GetEffectiveParameterTypes(
Binder\Binder_Expressions.cs (29)
7973var resolution = this.ResolveMethodGroup(methodGroup, analyzedArguments: null, useSiteInfo: ref useSiteInfo, options: OverloadResolution.Options.None, acceptOnlyMethods: true); 8020syntax, name, analyzedArguments: null, receiver, typeArgumentsOpt, options: OverloadResolution.Options.None, 8528OverloadResolution.Options options, 8537Debug.Assert((options & ~(OverloadResolution.Options.IsMethodGroupConversion | 8538OverloadResolution.Options.IsFunctionPointerResolution | 8539OverloadResolution.Options.InferWithDynamic | 8540OverloadResolution.Options.IgnoreNormalFormIfHasValidParamsParameter | 8541OverloadResolution.Options.DisallowExpandedNonArrayParams | 8542OverloadResolution.Options.DynamicResolution | 8543OverloadResolution.Options.DynamicConvertsToAnything)) == 0); 8561options |= OverloadResolution.Options.AllowRefOmittedArguments; 8618OverloadResolution.Options options, 8722OverloadResolution.Options options, 8786options: options | OverloadResolution.Options.IsExtensionMethodResolution, 10587OverloadResolution.Options options, 10593Debug.Assert((options & ~(OverloadResolution.Options.IsMethodGroupConversion | 10594OverloadResolution.Options.IsFunctionPointerResolution | 10595OverloadResolution.Options.InferWithDynamic)) == 0); 10611OverloadResolution.Options options, 10643OverloadResolution.Options options, 10715OverloadResolution.Options options, 10720Debug.Assert((options & ~(OverloadResolution.Options.IsMethodGroupConversion | 10721OverloadResolution.Options.IsFunctionPointerResolution | 10722OverloadResolution.Options.InferWithDynamic | 10723OverloadResolution.Options.IgnoreNormalFormIfHasValidParamsParameter | 10724OverloadResolution.Options.DisallowExpandedNonArrayParams | 10725OverloadResolution.Options.DynamicResolution | 10726OverloadResolution.Options.DynamicConvertsToAnything)) == 0); 10772options |= OverloadResolution.Options.AllowRefOmittedArguments;
Binder\Binder_Invocation.cs (10)
644options: analyzedArguments.HasDynamicArgument ? OverloadResolution.Options.DynamicResolution : OverloadResolution.Options.None); 717options: (ignoreNormalFormIfHasValidParamsParameter ? OverloadResolution.Options.IgnoreNormalFormIfHasValidParamsParameter : OverloadResolution.Options.None) | 718(disallowExpandedNonArrayParams ? OverloadResolution.Options.DisallowExpandedNonArrayParams : OverloadResolution.Options.None) | 719(analyzedArguments.HasDynamicArgument ? OverloadResolution.Options.DynamicResolution : OverloadResolution.Options.None), 875if (OverloadResolution.IsValidParams(this, candidate.LeastOverriddenMember, disallowExpandedNonArrayParams: false, out _) && 2356var resolution = ResolveMethodGroup(methodGroup, analyzedArguments: null, useSiteInfo: ref useSiteInfo, options: OverloadResolution.Options.None, acceptOnlyMethods: true);
Binder\Binder_Operators.cs (12)
151OverloadResolution.GetStaticUserDefinedBinaryOperatorMethodNames(kind, checkOverflowAtRuntime, out string staticOperatorName1, out string? staticOperatorName2Opt); 457OverloadResolution.Options.DisallowExpandedForm | (isExtension ? OverloadResolution.Options.IsExtensionMethodResolution : OverloadResolution.Options.None)); 1112OverloadResolution.GetStaticUserDefinedBinaryOperatorMethodNames(kind, isChecked, out string name1, out string name2Opt); 1956OverloadResolution.GetStaticUserDefinedBinaryOperatorMethodNames(kind, isChecked, out string name1, out string name2Opt); 2158OverloadResolution.GetStaticUserDefinedUnaryOperatorMethodNames(kind, isChecked, out string name1, out string name2Opt); 3181OverloadResolution.GetStaticUserDefinedUnaryOperatorMethodNames(kind, isChecked, out string staticOperatorName1, out string? staticOperatorName2Opt); 3414OverloadResolution.Options.DisallowExpandedForm | (isExtension ? OverloadResolution.Options.IsExtensionMethodResolution : OverloadResolution.Options.None)); 3706var existing = new HashSet<MethodSymbol>(OverloadResolution.PairedExtensionOperatorSignatureComparer.Instance);
Binder\Binder_Statements.cs (1)
2158if (!OverloadResolution.AreRefsCompatibleForMethodConversion(
Binder\ForEachLoopBinder.cs (2)
1464options: OverloadResolution.Options.None); 1538options: OverloadResolution.Options.None,
Binder\Semantics\Conversions\Conversions.cs (6)
259options: OverloadResolution.Options.InferWithDynamic | OverloadResolution.Options.IsMethodGroupConversion | 260(isFunctionPointer ? OverloadResolution.Options.IsFunctionPointerResolution : OverloadResolution.Options.None), 267resolution = binder.ResolveMethodGroup(source, analyzedArguments: null, useSiteInfo: ref useSiteInfo, options: OverloadResolution.Options.IsMethodGroupConversion, acceptOnlyMethods: true); 411options: OverloadResolution.Options.IsMethodGroupConversion,
Binder\Semantics\Conversions\ConversionsBase.cs (1)
1512if (!OverloadResolution.AreRefsCompatibleForMethodConversion(
Binder\Semantics\OverloadResolution\IMemberResolutionResultWithPriority.cs (1)
8/// Abstraction for use in <see cref="OverloadResolution.RemoveLowerPriorityMembers{TMemberResolution, TMember}(PooledObjects.ArrayBuilder{TMemberResolution})"/>,
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (3)
1514options: OverloadResolution.Options.IsMethodGroupConversion | 1515(isFunctionPointerResolution ? OverloadResolution.Options.IsFunctionPointerResolution : OverloadResolution.Options.None),
BoundTree\UnboundLambda.cs (1)
788hasParams: OverloadResolution.IsValidParams(Binder, lambdaSymbol, disallowExpandedNonArrayParams: false, out _),
Compilation\CSharpCompilation.cs (2)
4317var easyOutBinaryKind = OverloadResolution.BinopEasyOut.OpKind(binaryKind, csharpLeftType, csharpRightType); 4540var easyOutUnaryKind = OverloadResolution.UnopEasyOut.OpKind(unaryKind, csharpOperandType);
FlowAnalysis\NullableWalker.cs (2)
8264OverloadResolution.TryInferParamsCollectionIterationType(_binder, type.Type, out paramsIterationType); 8295OverloadResolution.GetEffectiveParameterTypes(
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (6)
Semantics\OperatorTests.cs (6)
7377var overloadResolution = new OverloadResolution(binder); 7386OverloadResolution.GetStaticUserDefinedBinaryOperatorMethodNames(kind, isChecked, out string name1, out string name2Opt); 7571UnaryOperatorKind result = OverloadResolution.UnopEasyOut.OpKind(op, underlying); 8156BinaryOperatorKind result = OverloadResolution.BinopEasyOut.OpKind(op, leftType, rightType); 8235(result = OverloadResolution.BinopEasyOut.OpKind(op, leftType.EnumUnderlyingTypeOrSelf(), rightType)) != BinaryOperatorKind.Error && 8242(result = OverloadResolution.BinopEasyOut.OpKind(op, leftType, rightType.EnumUnderlyingTypeOrSelf())) != BinaryOperatorKind.Error &&