Binder\Semantics\Operators\BinaryOperatorOverloadResolution.cs (18)
838var existingSignature = result[i].Signature;
973if (SourceMemberContainerTypeSymbol.DoOperatorsPair(signature1.Method, operators2[i].Method))
1016MethodSymbol op = operators[i].Method;
1124if (candidates[index].Kind != OperatorAnalysisResultKind.Inapplicable && index != bestIndex)
1126candidates[index] = candidates[index].Worse();
1135if (candidates[i].Kind != OperatorAnalysisResultKind.Applicable)
1143if (candidates[j].Kind == OperatorAnalysisResultKind.Inapplicable)
1148var better = BetterOperator(candidates[i].Signature, candidates[j].Signature, left, right, ref useSiteInfo);
1151candidates[j] = candidates[j].Worse();
1155candidates[i] = candidates[i].Worse();
1170if (candidates[index].Kind != OperatorAnalysisResultKind.Applicable)
1182var better = BetterOperator(candidates[currentBestIndex].Signature, candidates[index].Signature, left, right, ref useSiteInfo);
1199if (candidates[index].Kind == OperatorAnalysisResultKind.Inapplicable)
1204var better = BetterOperator(candidates[currentBestIndex].Signature, candidates[index].Signature, left, right, ref useSiteInfo);
1514var candidate = operators[i];
Binder\Semantics\Operators\UnaryOperatorOverloadResolution.cs (17)
163var candidate = operators[i];
328if (candidates[index].Kind != OperatorAnalysisResultKind.Inapplicable && index != bestIndex)
330candidates[index] = candidates[index].Worse();
339if (candidates[i].Kind != OperatorAnalysisResultKind.Applicable)
347if (candidates[j].Kind == OperatorAnalysisResultKind.Inapplicable)
352var better = BetterOperator(candidates[i].Signature, candidates[j].Signature, operand, ref useSiteInfo);
355candidates[j] = candidates[j].Worse();
359candidates[i] = candidates[i].Worse();
373if (candidates[index].Kind != OperatorAnalysisResultKind.Applicable)
385var better = BetterOperator(candidates[currentBestIndex].Signature, candidates[index].Signature, operand, ref useSiteInfo);
402if (candidates[index].Kind == OperatorAnalysisResultKind.Inapplicable)
407var better = BetterOperator(candidates[currentBestIndex].Signature, candidates[index].Signature, operand, ref useSiteInfo);
769if (SourceMemberContainerTypeSymbol.DoOperatorsPair(signature1.Method, operators2[i].Method))
826MethodSymbol 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];
1427if (IsMoreDerivedOverride(member: member, moreDerivedOverride: members[i], checkOverrideContainingType: checkOverrideContainingType, ref useSiteInfo))
1475var result = results[f];
1587var result = results[f];
1629var result = results[f];
1699var result = results[f];
1720var result = results[f];
1795if (!results[index].IsValid)
1805else if (results[currentBestIndex].Member == results[index].Member)
1811var better = BetterFunctionMember(results[currentBestIndex], results[index], arguments.Arguments, ref useSiteInfo);
1828if (!results[index].IsValid)
1833if (results[currentBestIndex].Member == results[index].Member)
1838var better = BetterFunctionMember(results[currentBestIndex], results[index], arguments.Arguments, ref useSiteInfo);
1977if (results[index].IsValid && index != bestIndex)
1979results[index] = results[index].Worse();
1997var c1Result = results[c1Idx];
2000if (!c1Result.IsValid || worse[c1Idx] == worseThanSomething)
2007var c2Result = results[c2Idx];
2025if (worse[c1Idx] == unknown)
2038Debug.Assert(!results[i].IsValid || worse[i] != unknown);
2039if (worse[i] == worseThanSomething)
2041results[i] = results[i].Worse();
2049Debug.Assert(!results[i].IsValid || worse[i] != unknown);
2050if (worse[i] == worseThanSomething)
2053results[i] = BetterResult.Left == BetterFunctionMember(results[notBestIdx], results[i], arguments.Arguments, ref useSiteInfo)
2054? results[i].Worst() : results[i].Worse();
2058Debug.Assert(worse[i] != notBetterThanEverything || i == notBestIdx);
2062Debug.Assert(worse[notBestIdx] == notBetterThanEverything);
2063results[notBestIdx] = results[notBestIdx].Worse();
2071Debug.Assert(!results[i].IsValid || worse[i] != unknown);
2072if (worse[i] == worseThanSomething)
2075results[i] = results[i].Worst();
2077else if (worse[i] == notBetterThanEverything)
2079results[i] = results[i].Worse();
2166var argumentKind = arguments[i].Kind;
2184r = BetterConversionFromExpression(arguments[i],
2308var argumentKind = arguments[i].Kind;
2472if (arguments[i].Kind == BoundKind.ArgListOperator)
2618if (arguments[i].Kind != BoundKind.ArgListOperator)
2631Debug.Assert(!isInterpolatedStringHandlerConversion || arguments[i] is BoundUnconvertedInterpolatedString or BoundBinaryOperator { IsUnconvertedInterpolatedStringAddition: true });
3919RefKind argRefKind = hasAnyRefArg ? argumentRefKinds[arg] : RefKind.None;
4072var argRefKind = hasAnyRefArg ? argumentRefKinds[arg] : RefKind.None;
FlowAnalysis\NullableWalker.cs (17)
3267if (localFuncs[i] is { } localFunc && HasLocalFuncUsagesCreated((LocalFunctionSymbol)localFunc.Symbol))
3287if (localFuncs[i] is { } localFunc)
4851var expressionNoConversion = expressionsNoConversions[i];
4852var expression = GetConversionIfApplicable(expressions[i], expressionNoConversion);
4853expressionTypes[i] = VisitConversion(expression, expressionNoConversion, conversions[i], inferredType, expressionTypes[i], checkConversion: true,
4865_ = VisitConversion(conversionOpt: null, conversionOperand: expressionsNoConversions[i], Conversion.Identity, targetTypeWithNullability: inferredType, operandType: expressionTypes[i],
4949var (returnExpr, resultType, _) = returns[i];
4967Conversion conversion = conversionsWithoutNullability.ClassifyConversionFromExpression(placeholder, bestType, isChecked: returns[i].isChecked, ref discardedUseSiteInfo);
4968resultTypes[i] = walker.VisitConversion(conversionOpt: null, placeholder, conversion, bestTypeWithObliviousAnnotation, resultTypes[i].ToTypeWithState(),
9798AddPlaceholderReplacement(placeholder, expression: null, previousArgumentConversionResults[placeholder.ArgumentIndex + newExtensionFormOffset]);
10715placeholderArgs.Add(new BoundExpressionWithNullability(variables[i].Expression.Syntax, variables[i].Expression, NullableAnnotation.Oblivious, conversion.DeconstructionInfo.OutputPlaceholders[i].Type));
10744var variable = variables[i];
10764var variable = variables[i];
10786var variable = variables[i];