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