Binder\Semantics\OverloadResolution\MethodTypeInference.cs (19)
2342allInterfaces = ModuloReferenceTypeNullabilityDifferences(allInterfaces, VarianceKind.In);
2353internal static ImmutableArray<NamedTypeSymbol> ModuloReferenceTypeNullabilityDifferences(ImmutableArray<NamedTypeSymbol> interfaces, VarianceKind variance)
2407if (sourceTypeArgument.Type.IsReferenceType && typeParameter.Variance == VarianceKind.Out)
2411else if (sourceTypeArgument.Type.IsReferenceType && typeParameter.Variance == VarianceKind.In)
2713allInterfaces = ModuloReferenceTypeNullabilityDifferences(allInterfaces, VarianceKind.Out);
2757if (sourceTypeArgument.Type.IsReferenceType && typeParameter.Variance == VarianceKind.Out)
2761else if (sourceTypeArgument.Type.IsReferenceType && typeParameter.Variance == VarianceKind.In)
2907AddAllCandidates(candidates, lower, lowerPredicate, VarianceKind.Out, conversions);
2912AddAllCandidates(candidates, upper, predicate: null, VarianceKind.In, conversions);
2918AddAllCandidates(candidates, exact, predicate: null, VarianceKind.None, conversions);
2939MergeOrRemoveCandidates(candidates, lower, lowerPredicate, initialCandidates, conversions, VarianceKind.Out, ref useSiteInfo);
2947MergeOrRemoveCandidates(candidates, upper, predicate: null, initialCandidates, conversions, VarianceKind.In, ref useSiteInfo);
3375VarianceKind variance,
3403VarianceKind variance)
3421VarianceKind variance,
3424Debug.Assert(variance == VarianceKind.In || variance == VarianceKind.Out);
3443if (variance == VarianceKind.Out)
3486VarianceKind variance)