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