1 instantiation of OverloadResolution
Microsoft.CodeAnalysis.CSharp (1)
Binder\Binder.cs (1)
555Interlocked.CompareExchange(ref _lazyOverloadResolution, new OverloadResolution(this), null);
78 references to OverloadResolution
Microsoft.CodeAnalysis.CSharp (78)
Binder\Binder.cs (2)
548private OverloadResolution? _lazyOverloadResolution; 549internal OverloadResolution OverloadResolution
Binder\Binder.ValueChecks.cs (1)
853var resolution = this.ResolveMethodGroup(methodGroup, analyzedArguments: null, useSiteInfo: ref useSiteInfo, options: OverloadResolution.Options.None, acceptOnlyMethods: true);
Binder\Binder_Conversions.cs (3)
1962options: OverloadResolution.Options.DynamicResolution | OverloadResolution.Options.DynamicConvertsToAnything, 2112OverloadResolution.GetEffectiveParameterTypes(
Binder\Binder_Expressions.cs (30)
8217var resolution = this.ResolveMethodGroup(methodGroup, analyzedArguments: null, useSiteInfo: ref useSiteInfo, options: OverloadResolution.Options.None, acceptOnlyMethods: true); 8264syntax, name, analyzedArguments: null, receiver, typeArgumentsOpt, options: OverloadResolution.Options.None, 8766OverloadResolution.Options options, 8775Debug.Assert((options & ~(OverloadResolution.Options.IsMethodGroupConversion | 8776OverloadResolution.Options.IsFunctionPointerResolution | 8777OverloadResolution.Options.InferWithDynamic | 8778OverloadResolution.Options.IgnoreNormalFormIfHasValidParamsParameter | 8779OverloadResolution.Options.DisallowExpandedNonArrayParams | 8780OverloadResolution.Options.DynamicResolution | 8781OverloadResolution.Options.DynamicConvertsToAnything)) == 0); 8799options |= OverloadResolution.Options.AllowRefOmittedArguments; 8858OverloadResolution.Options options, 9044OverloadResolution.Options options, 9107options: options | OverloadResolution.Options.IsExtensionMethodResolution, 11427resultKind: LookupResultKind.Viable, analyzedArguments: analyzedArguments, actualMethodArguments: ref actualExtensionArguments, useSiteInfo: ref useSiteInfo, options: OverloadResolution.Options.IgnoreNormalFormIfHasValidParamsParameter, 11598OverloadResolution.Options options, 11604Debug.Assert((options & ~(OverloadResolution.Options.IsMethodGroupConversion | 11605OverloadResolution.Options.IsFunctionPointerResolution | 11606OverloadResolution.Options.InferWithDynamic)) == 0); 11622OverloadResolution.Options options, 11654OverloadResolution.Options options, 11726OverloadResolution.Options options, 11731Debug.Assert((options & ~(OverloadResolution.Options.IsMethodGroupConversion | 11732OverloadResolution.Options.IsFunctionPointerResolution | 11733OverloadResolution.Options.InferWithDynamic | 11734OverloadResolution.Options.IgnoreNormalFormIfHasValidParamsParameter | 11735OverloadResolution.Options.DisallowExpandedNonArrayParams | 11736OverloadResolution.Options.DynamicResolution | 11737OverloadResolution.Options.DynamicConvertsToAnything)) == 0); 11783options |= OverloadResolution.Options.AllowRefOmittedArguments;
Binder\Binder_Invocation.cs (10)
651options: analyzedArguments.HasDynamicArgument ? OverloadResolution.Options.DynamicResolution : OverloadResolution.Options.None); 723options: (ignoreNormalFormIfHasValidParamsParameter ? OverloadResolution.Options.IgnoreNormalFormIfHasValidParamsParameter : OverloadResolution.Options.None) | 724(disallowExpandedNonArrayParams ? OverloadResolution.Options.DisallowExpandedNonArrayParams : OverloadResolution.Options.None) | 725(analyzedArguments.HasDynamicArgument ? OverloadResolution.Options.DynamicResolution : OverloadResolution.Options.None), 923if (OverloadResolution.IsValidParams(this, candidate.LeastOverriddenMember, disallowExpandedNonArrayParams: false, out _) && 2466var resolution = ResolveMethodGroup(methodGroup, analyzedArguments: null, useSiteInfo: ref useSiteInfo, options: OverloadResolution.Options.None, acceptOnlyMethods: true);
Binder\Binder_Operators.cs (13)
158OverloadResolution.GetStaticUserDefinedBinaryOperatorMethodNames(kind, checkOverflowAtRuntime, out string staticOperatorName1, out string? staticOperatorName2Opt); 466OverloadResolution.Options.DisallowExpandedForm | (isExtension ? OverloadResolution.Options.IsExtensionMethodResolution : OverloadResolution.Options.None)); 1148OverloadResolution.GetStaticUserDefinedBinaryOperatorMethodNames(kind, isChecked, out string name1, out string name2Opt); 1658OverloadResolution.GetStaticUserDefinedUnaryOperatorMethodNames(kind, isChecked: false, out string staticOperatorName1, out string staticOperatorName2Opt); 2039OverloadResolution.GetStaticUserDefinedBinaryOperatorMethodNames(kind, isChecked, out string name1, out string name2Opt); 2263OverloadResolution.GetStaticUserDefinedUnaryOperatorMethodNames(kind, isChecked, out string name1, out string name2Opt); 3336OverloadResolution.GetStaticUserDefinedUnaryOperatorMethodNames(kind, isChecked, out string staticOperatorName1, out string? staticOperatorName2Opt); 3573OverloadResolution.Options.DisallowExpandedForm | (isExtension ? OverloadResolution.Options.IsExtensionMethodResolution : OverloadResolution.Options.None)); 3890var existing = new HashSet<MethodSymbol>(OverloadResolution.PairedExtensionOperatorSignatureComparer.Instance);
Binder\Binder_Statements.cs (1)
2189if (!OverloadResolution.AreRefsCompatibleForMethodConversion(
Binder\ForEachLoopBinder.cs (2)
1455options: OverloadResolution.Options.None); 1531options: OverloadResolution.Options.None,
Binder\Semantics\Conversions\Conversions.cs (6)
272options: OverloadResolution.Options.InferWithDynamic | OverloadResolution.Options.IsMethodGroupConversion | 273(isFunctionPointer ? OverloadResolution.Options.IsFunctionPointerResolution : OverloadResolution.Options.None), 280resolution = binder.ResolveMethodGroup(source, analyzedArguments: null, useSiteInfo: ref useSiteInfo, options: OverloadResolution.Options.IsMethodGroupConversion, acceptOnlyMethods: true); 424options: OverloadResolution.Options.IsMethodGroupConversion,
Binder\Semantics\Conversions\ConversionsBase.cs (1)
1527if (!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)
1516options: OverloadResolution.Options.IsMethodGroupConversion | 1517(isFunctionPointerResolution ? OverloadResolution.Options.IsFunctionPointerResolution : OverloadResolution.Options.None),
BoundTree\UnboundLambda.cs (1)
811hasParams: OverloadResolution.IsValidParams(Binder, lambdaSymbol, disallowExpandedNonArrayParams: false, out _),
Compilation\CSharpCompilation.cs (2)
4481var easyOutBinaryKind = OverloadResolution.BinopEasyOut.OpKind(binaryKind, csharpLeftType, csharpRightType); 4704var easyOutUnaryKind = OverloadResolution.UnopEasyOut.OpKind(unaryKind, csharpOperandType);
FlowAnalysis\NullableWalker.cs (2)
8701OverloadResolution.TryInferParamsCollectionIterationType(_binder, type.Type, out paramsIterationType); 8732OverloadResolution.GetEffectiveParameterTypes(