Binder\Semantics\Operators\BinaryOperatorOverloadResolution.cs (17)
802var existingSignature = result[i].Signature;
921if (SourceMemberContainerTypeSymbol.DoOperatorsPair(signature1.Method, operators2[i].Method))
958MethodSymbol op = operators[i].Method;
1063if (candidates[index].Kind != OperatorAnalysisResultKind.Inapplicable && index != bestIndex)
1065candidates[index] = candidates[index].Worse();
1074if (candidates[i].Kind != OperatorAnalysisResultKind.Applicable)
1082if (candidates[j].Kind == OperatorAnalysisResultKind.Inapplicable)
1087var better = BetterOperator(candidates[i].Signature, candidates[j].Signature, left, right, ref useSiteInfo);
1090candidates[j] = candidates[j].Worse();
1094candidates[i] = candidates[i].Worse();
1109if (candidates[index].Kind != OperatorAnalysisResultKind.Applicable)
1121var better = BetterOperator(candidates[currentBestIndex].Signature, candidates[index].Signature, left, right, ref useSiteInfo);
1138if (candidates[index].Kind == OperatorAnalysisResultKind.Inapplicable)
1143var better = BetterOperator(candidates[currentBestIndex].Signature, candidates[index].Signature, left, right, ref useSiteInfo);
Binder\Semantics\Operators\UnaryOperatorOverloadResolution.cs (16)
91if (candidates[index].Kind != OperatorAnalysisResultKind.Inapplicable && index != bestIndex)
93candidates[index] = candidates[index].Worse();
102if (candidates[i].Kind != OperatorAnalysisResultKind.Applicable)
110if (candidates[j].Kind == OperatorAnalysisResultKind.Inapplicable)
115var better = BetterOperator(candidates[i].Signature, candidates[j].Signature, operand, ref useSiteInfo);
118candidates[j] = candidates[j].Worse();
122candidates[i] = candidates[i].Worse();
136if (candidates[index].Kind != OperatorAnalysisResultKind.Applicable)
148var better = BetterOperator(candidates[currentBestIndex].Signature, candidates[index].Signature, operand, ref useSiteInfo);
165if (candidates[index].Kind == OperatorAnalysisResultKind.Inapplicable)
170var better = BetterOperator(candidates[currentBestIndex].Signature, candidates[index].Signature, operand, ref useSiteInfo);
498if (SourceMemberContainerTypeSymbol.DoOperatorsPair(signature1.Method, operators2[i].Method))
549MethodSymbol op = operators[i].Method;
Binder\Semantics\OverloadResolution\OverloadResolution.cs (57)
268members[i],
393var result = results[f];
409var result = results[f];
431var result = results[f];
467var result = results[i];
631var result = results[f];
674TMember member = members[i];
1098if (IsMoreDerivedOverride(member: member, moreDerivedOverride: members[i], checkOverrideContainingType: checkOverrideContainingType, ref useSiteInfo))
1146var result = results[f];
1254var result = results[f];
1291var result = results[f];
1361var result = results[f];
1382var result = results[f];
1442if (!results[index].IsValid)
1452else if (results[currentBestIndex].Member == results[index].Member)
1458var better = BetterFunctionMember(results[currentBestIndex], results[index], arguments.Arguments, ref useSiteInfo);
1475if (!results[index].IsValid)
1480if (results[currentBestIndex].Member == results[index].Member)
1485var better = BetterFunctionMember(results[currentBestIndex], results[index], arguments.Arguments, ref useSiteInfo);
1532if (results[index].IsValid && index != bestIndex)
1534results[index] = results[index].Worse();
1552var c1Result = results[c1Idx];
1555if (!c1Result.IsValid || worse[c1Idx] == worseThanSomething)
1562var c2Result = results[c2Idx];
1580if (worse[c1Idx] == unknown)
1593Debug.Assert(!results[i].IsValid || worse[i] != unknown);
1594if (worse[i] == worseThanSomething)
1596results[i] = results[i].Worse();
1604Debug.Assert(!results[i].IsValid || worse[i] != unknown);
1605if (worse[i] == worseThanSomething)
1608results[i] = BetterResult.Left == BetterFunctionMember(results[notBestIdx], results[i], arguments.Arguments, ref useSiteInfo)
1609? results[i].Worst() : results[i].Worse();
1613Debug.Assert(worse[i] != notBetterThanEverything || i == notBestIdx);
1617Debug.Assert(worse[notBestIdx] == notBetterThanEverything);
1618results[notBestIdx] = results[notBestIdx].Worse();
1626Debug.Assert(!results[i].IsValid || worse[i] != unknown);
1627if (worse[i] == worseThanSomething)
1630results[i] = results[i].Worst();
1632else if (worse[i] == notBetterThanEverything)
1634results[i] = results[i].Worse();
1747var argumentKind = arguments[i].Kind;
1767r = BetterConversionFromExpression(arguments[i],
1891var argumentKind = arguments[i].Kind;
2057if (arguments[i].Kind == BoundKind.ArgListOperator)
2149if (arguments[i].Kind != BoundKind.ArgListOperator)
2162Debug.Assert(!isInterpolatedStringHandlerConversion || arguments[i] is BoundUnconvertedInterpolatedString or BoundBinaryOperator { IsUnconvertedInterpolatedStringAddition: true });
3160RefKind argRefKind = hasAnyRefArg ? argumentRefKinds[arg] : RefKind.None;
3249var argRefKind = hasAnyRefArg ? argumentRefKinds[arg] : RefKind.None;
FlowAnalysis\NullableWalker.cs (17)
4223var expressionNoConversion = expressionsNoConversions[i];
4224var expression = GetConversionIfApplicable(expressions[i], expressionNoConversion);
4225expressionTypes[i] = VisitConversion(expression, expressionNoConversion, conversions[i], inferredType, expressionTypes[i], checkConversion: true,
4236_ = VisitConversion(conversionOpt: null, conversionOperand: expressionsNoConversions[i], Conversion.Identity, targetTypeWithNullability: inferredType, operandType: expressionTypes[i],
4246TrackAnalyzedNullabilityThroughConversionGroup(inferredType.ToTypeWithState(), expressions[i] as BoundConversion, expressionsNoConversions[i]);
4321var (returnExpr, resultType, _) = returns[i];
4339Conversion conversion = conversionsWithoutNullability.ClassifyConversionFromExpression(placeholder, bestType, isChecked: returns[i].isChecked, ref discardedUseSiteInfo);
4340resultTypes[i] = walker.VisitConversion(conversionOpt: null, placeholder, conversion, bestTypeWithObliviousAnnotation, resultTypes[i].ToTypeWithState(),
8399AddPlaceholderReplacement(placeholder, expression: null, previousArgumentConversionResults[placeholder.ArgumentIndex]);
9300placeholderArgs.Add(new BoundExpressionWithNullability(variables[i].Expression.Syntax, variables[i].Expression, NullableAnnotation.Oblivious, conversion.DeconstructionInfo.OutputPlaceholders[i].Type));
9325var variable = variables[i];
9345var variable = variables[i];
9367var variable = variables[i];