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];
1433if (IsMoreDerivedOverride(member: member, moreDerivedOverride: members[i], checkOverrideContainingType: checkOverrideContainingType, ref useSiteInfo))
1481var result = results[f];
1593var result = results[f];
1635var result = results[f];
1705var result = results[f];
1726var result = results[f];
1801if (!results[index].IsValid)
1811else if (results[currentBestIndex].Member == results[index].Member)
1817var better = BetterFunctionMember(results[currentBestIndex], results[index], arguments.Arguments, ref useSiteInfo);
1834if (!results[index].IsValid)
1839if (results[currentBestIndex].Member == results[index].Member)
1844var better = BetterFunctionMember(results[currentBestIndex], results[index], arguments.Arguments, ref useSiteInfo);
1983if (results[index].IsValid && index != bestIndex)
1985results[index] = results[index].Worse();
2003var c1Result = results[c1Idx];
2006if (!c1Result.IsValid || worse[c1Idx] == worseThanSomething)
2013var c2Result = results[c2Idx];
2031if (worse[c1Idx] == unknown)
2044Debug.Assert(!results[i].IsValid || worse[i] != unknown);
2045if (worse[i] == worseThanSomething)
2047results[i] = results[i].Worse();
2055Debug.Assert(!results[i].IsValid || worse[i] != unknown);
2056if (worse[i] == worseThanSomething)
2059results[i] = BetterResult.Left == BetterFunctionMember(results[notBestIdx], results[i], arguments.Arguments, ref useSiteInfo)
2060? results[i].Worst() : results[i].Worse();
2064Debug.Assert(worse[i] != notBetterThanEverything || i == notBestIdx);
2068Debug.Assert(worse[notBestIdx] == notBetterThanEverything);
2069results[notBestIdx] = results[notBestIdx].Worse();
2077Debug.Assert(!results[i].IsValid || worse[i] != unknown);
2078if (worse[i] == worseThanSomething)
2081results[i] = results[i].Worst();
2083else if (worse[i] == notBetterThanEverything)
2085results[i] = results[i].Worse();
2172var argumentKind = arguments[i].Kind;
2190r = BetterConversionFromExpression(arguments[i],
2314var argumentKind = arguments[i].Kind;
2478if (arguments[i].Kind == BoundKind.ArgListOperator)
2624if (arguments[i].Kind != BoundKind.ArgListOperator)
2637Debug.Assert(!isInterpolatedStringHandlerConversion || arguments[i] is BoundUnconvertedInterpolatedString or BoundBinaryOperator { IsUnconvertedInterpolatedStringAddition: true });
3938RefKind argRefKind = hasAnyRefArg ? argumentRefKinds[arg] : RefKind.None;
4091var argRefKind = hasAnyRefArg ? argumentRefKinds[arg] : RefKind.None;
FlowAnalysis\NullableWalker.cs (17)
3284if (localFuncs[i] is { } localFunc && HasLocalFuncUsagesCreated((LocalFunctionSymbol)localFunc.Symbol))
3304if (localFuncs[i] is { } localFunc)
4902var expressionNoConversion = expressionsNoConversions[i];
4903var expression = GetConversionIfApplicable(expressions[i], expressionNoConversion);
4904expressionTypes[i] = VisitConversion(expression, expressionNoConversion, conversions[i], inferredType, expressionTypes[i], checkConversion: true,
4916_ = VisitConversion(conversionOpt: null, conversionOperand: expressionsNoConversions[i], Conversion.Identity, targetTypeWithNullability: inferredType, operandType: expressionTypes[i],
5000var (returnExpr, resultType, _) = returns[i];
5018Conversion conversion = conversionsWithoutNullability.ClassifyConversionFromExpression(placeholder, bestType, isChecked: returns[i].isChecked, ref discardedUseSiteInfo);
5019resultTypes[i] = walker.VisitConversion(conversionOpt: null, placeholder, conversion, bestTypeWithObliviousAnnotation, resultTypes[i].ToTypeWithState(),
9937AddPlaceholderReplacement(placeholder, expression: null, previousArgumentConversionResults[placeholder.ArgumentIndex + extensionBlockFormOffset]);
10851placeholderArgs.Add(new BoundExpressionWithNullability(variables[i].Expression.Syntax, variables[i].Expression, NullableAnnotation.Oblivious, conversion.DeconstructionInfo.OutputPlaceholders[i].Type));
10880var variable = variables[i];
10900var variable = variables[i];
10922var variable = variables[i];