Binder\Semantics\Operators\BinaryOperatorOverloadResolution.cs (18)
838var existingSignature = result[i].Signature;
973if (SourceMemberContainerTypeSymbol.DoOperatorsPair(signature1.Method, operators2[i].Method))
1024MethodSymbol op = operators[i].Method;
1132if (candidates[index].Kind != OperatorAnalysisResultKind.Inapplicable && index != bestIndex)
1134candidates[index] = candidates[index].Worse();
1143if (candidates[i].Kind != OperatorAnalysisResultKind.Applicable)
1151if (candidates[j].Kind == OperatorAnalysisResultKind.Inapplicable)
1156var better = BetterOperator(candidates[i].Signature, candidates[j].Signature, left, right, ref useSiteInfo);
1159candidates[j] = candidates[j].Worse();
1163candidates[i] = candidates[i].Worse();
1178if (candidates[index].Kind != OperatorAnalysisResultKind.Applicable)
1190var better = BetterOperator(candidates[currentBestIndex].Signature, candidates[index].Signature, left, right, ref useSiteInfo);
1207if (candidates[index].Kind == OperatorAnalysisResultKind.Inapplicable)
1212var better = BetterOperator(candidates[currentBestIndex].Signature, candidates[index].Signature, left, right, ref useSiteInfo);
1516var candidate = operators[i];
Binder\Semantics\Operators\UnaryOperatorOverloadResolution.cs (17)
157var candidate = operators[i];
337if (candidates[index].Kind != OperatorAnalysisResultKind.Inapplicable && index != bestIndex)
339candidates[index] = candidates[index].Worse();
348if (candidates[i].Kind != OperatorAnalysisResultKind.Applicable)
356if (candidates[j].Kind == OperatorAnalysisResultKind.Inapplicable)
361var better = BetterOperator(candidates[i].Signature, candidates[j].Signature, operand, ref useSiteInfo);
364candidates[j] = candidates[j].Worse();
368candidates[i] = candidates[i].Worse();
382if (candidates[index].Kind != OperatorAnalysisResultKind.Applicable)
394var better = BetterOperator(candidates[currentBestIndex].Signature, candidates[index].Signature, operand, ref useSiteInfo);
411if (candidates[index].Kind == OperatorAnalysisResultKind.Inapplicable)
416var better = BetterOperator(candidates[currentBestIndex].Signature, candidates[index].Signature, operand, ref useSiteInfo);
793if (SourceMemberContainerTypeSymbol.DoOperatorsPair(signature1.Method, operators2[i].Method))
858MethodSymbol op = operators[i].Method;
Binder\Semantics\OverloadResolution\OverloadResolution.cs (60)
301applicableMethods.Add(methods[index]);
380members[i],
501var result = results[f];
524var result = results[f];
612var result = results[f];
633var result = results[f];
649var result = results[f];
685var result = results[i];
862var result = results[f];
905TMember member = members[i];
1434if (IsMoreDerivedOverride(member: member, moreDerivedOverride: members[i], checkOverrideContainingType: checkOverrideContainingType, ref useSiteInfo))
1482var result = results[f];
1594var result = results[f];
1636var result = results[f];
1706var result = results[f];
1727var result = results[f];
1802if (!results[index].IsValid)
1812else if (results[currentBestIndex].Member == results[index].Member)
1818var better = BetterFunctionMember(results[currentBestIndex], results[index], arguments.Arguments, ref useSiteInfo);
1835if (!results[index].IsValid)
1840if (results[currentBestIndex].Member == results[index].Member)
1845var better = BetterFunctionMember(results[currentBestIndex], results[index], arguments.Arguments, ref useSiteInfo);
1984if (results[index].IsValid && index != bestIndex)
1986results[index] = results[index].Worse();
2004var c1Result = results[c1Idx];
2007if (!c1Result.IsValid || worse[c1Idx] == worseThanSomething)
2014var c2Result = results[c2Idx];
2032if (worse[c1Idx] == unknown)
2045Debug.Assert(!results[i].IsValid || worse[i] != unknown);
2046if (worse[i] == worseThanSomething)
2048results[i] = results[i].Worse();
2056Debug.Assert(!results[i].IsValid || worse[i] != unknown);
2057if (worse[i] == worseThanSomething)
2060results[i] = BetterResult.Left == BetterFunctionMember(results[notBestIdx], results[i], arguments.Arguments, ref useSiteInfo)
2061? results[i].Worst() : results[i].Worse();
2065Debug.Assert(worse[i] != notBetterThanEverything || i == notBestIdx);
2069Debug.Assert(worse[notBestIdx] == notBetterThanEverything);
2070results[notBestIdx] = results[notBestIdx].Worse();
2078Debug.Assert(!results[i].IsValid || worse[i] != unknown);
2079if (worse[i] == worseThanSomething)
2082results[i] = results[i].Worst();
2084else if (worse[i] == notBetterThanEverything)
2086results[i] = results[i].Worse();
2173var argumentKind = arguments[i].Kind;
2191r = BetterConversionFromExpression(arguments[i],
2315var argumentKind = arguments[i].Kind;
2479if (arguments[i].Kind == BoundKind.ArgListOperator)
2625if (arguments[i].Kind != BoundKind.ArgListOperator)
2638Debug.Assert(!isInterpolatedStringHandlerConversion || arguments[i] is BoundUnconvertedInterpolatedString or BoundBinaryOperator { IsUnconvertedInterpolatedStringAddition: true });
3939RefKind argRefKind = hasAnyRefArg ? argumentRefKinds[arg] : RefKind.None;
4092var argRefKind = hasAnyRefArg ? argumentRefKinds[arg] : RefKind.None;
FlowAnalysis\NullableWalker.cs (17)
3285if (localFuncs[i] is { } localFunc && HasLocalFuncUsagesCreated((LocalFunctionSymbol)localFunc.Symbol))
3305if (localFuncs[i] is { } localFunc)
5060var expressionNoConversion = expressionsNoConversions[i];
5061var expression = GetConversionIfApplicable(expressions[i], expressionNoConversion);
5062expressionTypes[i] = VisitConversion(expression, expressionNoConversion, conversions[i], inferredType, expressionTypes[i], checkConversion: true,
5074_ = VisitConversion(conversionOpt: null, conversionOperand: expressionsNoConversions[i], Conversion.Identity, targetTypeWithNullability: inferredType, operandType: expressionTypes[i],
5158var (returnExpr, resultType, _) = returns[i];
5176Conversion conversion = conversionsWithoutNullability.ClassifyConversionFromExpression(placeholder, bestType, isChecked: returns[i].isChecked, ref discardedUseSiteInfo);
5177resultTypes[i] = walker.VisitConversion(conversionOpt: null, placeholder, conversion, bestTypeWithObliviousAnnotation, resultTypes[i].ToTypeWithState(),
10105AddPlaceholderReplacement(placeholder, expression: null, previousArgumentConversionResults[placeholder.ArgumentIndex + extensionBlockFormOffset]);
11019placeholderArgs.Add(new BoundExpressionWithNullability(variables[i].Expression.Syntax, variables[i].Expression, NullableAnnotation.Oblivious, conversion.DeconstructionInfo.OutputPlaceholders[i].Type));
11048var variable = variables[i];
11068var variable = variables[i];
11090var variable = variables[i];