53 references to OperatorAnalysisResultKind
Microsoft.CodeAnalysis.CSharp (53)
Binder\Binder.OperatorResolutionForReporting.cs (25)
89
var results = ArrayBuilder<(MethodSymbol?,
OperatorAnalysisResultKind
)>.GetInstance();
100
ArrayBuilder<(MethodSymbol? member,
OperatorAnalysisResultKind
resultKind)> results,
105
assertNone(results,
OperatorAnalysisResultKind
.Undefined);
112
if (results.Any(m => m.resultKind ==
OperatorAnalysisResultKind
.Applicable))
117
assertNone(results,
OperatorAnalysisResultKind
.Applicable);
119
if (results.Any(m => m.resultKind ==
OperatorAnalysisResultKind
.Worse))
124
assertNone(results,
OperatorAnalysisResultKind
.Worse);
126
Debug.Assert(results.All(r => r.resultKind ==
OperatorAnalysisResultKind
.Inapplicable));
165
static
OperatorAnalysisResultKind
getBestKind(object result)
167
OperatorAnalysisResultKind
bestKind =
OperatorAnalysisResultKind
.Undefined;
174
var
kind = mapKind(res.Result.Kind);
221
static bool hadAmbiguousBestMethods(ArrayBuilder<(MethodSymbol?,
OperatorAnalysisResultKind
)> results, SyntaxNode node, Binder binder, BindingDiagnosticBag diagnostics)
245
static void assertNone(ArrayBuilder<(MethodSymbol? member,
OperatorAnalysisResultKind
resultKind)> results,
OperatorAnalysisResultKind
kind)
250
static bool tryGetTwoBest(ArrayBuilder<(MethodSymbol?,
OperatorAnalysisResultKind
)> results, [NotNullWhen(true)] out MethodSymbol? first, [NotNullWhen(true)] out MethodSymbol? second)
263
if (resultKind ==
OperatorAnalysisResultKind
.Applicable)
282
static void populateResults(ArrayBuilder<(MethodSymbol?,
OperatorAnalysisResultKind
)> results, object? result)
289
OperatorAnalysisResultKind
kind = mapKind(res.Result.Kind);
314
static
OperatorAnalysisResultKind
mapKind(MemberResolutionKind kind)
318
MemberResolutionKind.ApplicableInExpandedForm =>
OperatorAnalysisResultKind
.Applicable,
319
MemberResolutionKind.ApplicableInNormalForm =>
OperatorAnalysisResultKind
.Applicable,
320
MemberResolutionKind.Worse =>
OperatorAnalysisResultKind
.Worse,
321
MemberResolutionKind.Worst =>
OperatorAnalysisResultKind
.Worse,
322
_ =>
OperatorAnalysisResultKind
.Inapplicable,
Binder\Semantics\Operators\BinaryOperatorAnalysisResult.cs (7)
20
public readonly
OperatorAnalysisResultKind
Kind;
22
private BinaryOperatorAnalysisResult(
OperatorAnalysisResultKind
kind, BinaryOperatorSignature signature, Conversion leftConversion, Conversion rightConversion)
32
get { return this.Kind ==
OperatorAnalysisResultKind
.Applicable; }
37
get { return this.Kind !=
OperatorAnalysisResultKind
.Undefined; }
57
return new BinaryOperatorAnalysisResult(
OperatorAnalysisResultKind
.Applicable, signature, leftConversion, rightConversion);
62
return new BinaryOperatorAnalysisResult(
OperatorAnalysisResultKind
.Inapplicable, signature, leftConversion, rightConversion);
67
return new BinaryOperatorAnalysisResult(
OperatorAnalysisResultKind
.Worse, this.Signature, this.LeftConversion, this.RightConversion);
Binder\Semantics\Operators\BinaryOperatorOverloadResolution.cs (5)
1132
if (candidates[index].Kind !=
OperatorAnalysisResultKind
.Inapplicable && index != bestIndex)
1143
if (candidates[i].Kind !=
OperatorAnalysisResultKind
.Applicable)
1151
if (candidates[j].Kind ==
OperatorAnalysisResultKind
.Inapplicable)
1178
if (candidates[index].Kind !=
OperatorAnalysisResultKind
.Applicable)
1207
if (candidates[index].Kind ==
OperatorAnalysisResultKind
.Inapplicable)
Binder\Semantics\Operators\BinaryOperatorOverloadResolutionResult.cs (2)
89
else if (CountKind(
OperatorAnalysisResultKind
.Applicable) > 1)
107
private int CountKind(
OperatorAnalysisResultKind
kind)
Binder\Semantics\Operators\UnaryOperatorAnalysisResult.cs (7)
17
public readonly
OperatorAnalysisResultKind
Kind;
19
private UnaryOperatorAnalysisResult(
OperatorAnalysisResultKind
kind, UnaryOperatorSignature signature, Conversion conversion)
28
get { return this.Kind ==
OperatorAnalysisResultKind
.Applicable; }
33
get { return this.Kind !=
OperatorAnalysisResultKind
.Undefined; }
41
return new UnaryOperatorAnalysisResult(
OperatorAnalysisResultKind
.Applicable, signature, conversion);
46
return new UnaryOperatorAnalysisResult(
OperatorAnalysisResultKind
.Inapplicable, signature, conversion);
51
return new UnaryOperatorAnalysisResult(
OperatorAnalysisResultKind
.Worse, this.Signature, this.Conversion);
Binder\Semantics\Operators\UnaryOperatorOverloadResolution.cs (5)
337
if (candidates[index].Kind !=
OperatorAnalysisResultKind
.Inapplicable && index != bestIndex)
348
if (candidates[i].Kind !=
OperatorAnalysisResultKind
.Applicable)
356
if (candidates[j].Kind ==
OperatorAnalysisResultKind
.Inapplicable)
382
if (candidates[index].Kind !=
OperatorAnalysisResultKind
.Applicable)
411
if (candidates[index].Kind ==
OperatorAnalysisResultKind
.Inapplicable)
Binder\Semantics\Operators\UnaryOperatorOverloadResolutionResult.cs (2)
89
else if (CountKind(
OperatorAnalysisResultKind
.Applicable) > 1)
107
private int CountKind(
OperatorAnalysisResultKind
kind)