140 references to VarianceKind
GenerateDocumentationAndConfigFiles (4)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationSymbolFactory.cs (2)
318attributes: default, varianceKind: VarianceKind.None, 330VarianceKind varianceKind, string name,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (2)
14VarianceKind varianceKind, 26public VarianceKind Variance { get; } = varianceKind;
Microsoft.CodeAnalysis (1)
Symbols\ITypeParameterSymbol.cs (1)
28VarianceKind Variance { get; }
Microsoft.CodeAnalysis.Analyzers (4)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationSymbolFactory.cs (2)
318attributes: default, varianceKind: VarianceKind.None, 330VarianceKind varianceKind, string name,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (2)
14VarianceKind varianceKind, 26public VarianceKind Variance { get; } = varianceKind;
Microsoft.CodeAnalysis.CodeStyle.Fixes (4)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationSymbolFactory.cs (2)
318attributes: default, varianceKind: VarianceKind.None, 330VarianceKind varianceKind, string name,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (2)
14VarianceKind varianceKind, 26public VarianceKind Variance { get; } = varianceKind;
Microsoft.CodeAnalysis.CSharp (111)
Binder\Binder_Patterns.cs (1)
2223return bestSoFar.MergeEquivalentTypes(possiblyLessSpecificCandidate, VarianceKind.Out);
Binder\ForEachLoopBinder.cs (1)
1873interfaces = MethodTypeInferrer.ModuloReferenceTypeNullabilityDifferences(interfaces, VarianceKind.In);
Binder\Semantics\BestTypeInferrer.cs (1)
297return type1.MergeEquivalentTypes(type2, VarianceKind.Out);
Binder\Semantics\Conversions\ConversionsBase.cs (6)
3212case VarianceKind.None: 3228case VarianceKind.Out: 3235case VarianceKind.In: 3713case VarianceKind.None: 3720case VarianceKind.Out: 3727case VarianceKind.In:
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)
CSharpExtensions.cs (4)
247public static VarianceKind VarianceKindFromToken(this SyntaxToken node) 251case SyntaxKind.OutKeyword: return VarianceKind.Out; 252case SyntaxKind.InKeyword: return VarianceKind.In; 253default: return VarianceKind.None;
Emitter\Model\TypeParameterSymbolAdapter.cs (3)
330case VarianceKind.None: 332case VarianceKind.In: 334case VarianceKind.Out:
FlowAnalysis\NullableWalker.cs (1)
6579refResultType = consequenceRValue.Type!.MergeEquivalentTypes(alternativeRValue.Type, VarianceKind.None);
SymbolDisplay\SymbolDisplayVisitor.Types.cs (2)
812case VarianceKind.In: 816case VarianceKind.Out:
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.TypeParameterSymbol.cs (2)
113public override VarianceKind Variance 115get { return VarianceKind.None; }
Symbols\ArrayTypeSymbol.cs (1)
412internal override TypeSymbol MergeEquivalentTypes(TypeSymbol other, VarianceKind variance)
Symbols\DynamicTypeSymbol.cs (1)
232internal override TypeSymbol MergeEquivalentTypes(TypeSymbol other, VarianceKind variance)
Symbols\ErrorTypeSymbol.ErrorTypeParameterSymbol.cs (2)
142public override VarianceKind Variance 146return VarianceKind.None;
Symbols\FunctionPointers\FunctionPointerMethodSymbol.cs (9)
348internal FunctionPointerMethodSymbol MergeEquivalentTypes(FunctionPointerMethodSymbol signature, VarianceKind variance) 351var returnVariance = RefKind == RefKind.None ? variance : VarianceKind.None; 364var paramVariance = (variance, thisParam.RefKind) switch 366(VarianceKind.In, RefKind.None) => VarianceKind.Out, 367(VarianceKind.Out, RefKind.None) => VarianceKind.In, 368_ => VarianceKind.None,
Symbols\FunctionPointers\FunctionPointerTypeSymbol.cs (1)
161internal override TypeSymbol MergeEquivalentTypes(TypeSymbol other, VarianceKind variance)
Symbols\FunctionTypeSymbol.cs (1)
160internal override TypeSymbol MergeEquivalentTypes(TypeSymbol other, VarianceKind variance)
Symbols\Metadata\PE\PETypeParameterSymbol.cs (2)
597public override VarianceKind Variance 601return (VarianceKind)(_flags & GenericParameterAttributes.VarianceMask);
Symbols\NamedTypeSymbol.cs (16)
1306internal override TypeSymbol MergeEquivalentTypes(TypeSymbol other, VarianceKind variance) 1345VarianceKind variance, 1370VarianceKind typeArgumentVariance = GetTypeArgumentVariance(variance, isTuple ? VarianceKind.Out : typeParameters[i].Variance); 1386variance = VarianceKind.None; 1392private static VarianceKind GetTypeArgumentVariance(VarianceKind typeVariance, VarianceKind typeParameterVariance) 1396case VarianceKind.In: 1399case VarianceKind.In: 1400return VarianceKind.Out; 1401case VarianceKind.Out: 1402return VarianceKind.In; 1404return VarianceKind.None; 1406case VarianceKind.Out: 1409return VarianceKind.None;
Symbols\NullableAnnotationExtensions.cs (4)
63public static NullableAnnotation MergeNullableAnnotation(this NullableAnnotation a, NullableAnnotation b, VarianceKind variance) 69VarianceKind.In => a.Meet(b), 70VarianceKind.Out => a.Join(b), 71VarianceKind.None => a.EnsureCompatible(b),
Symbols\PointerTypeSymbol.cs (2)
274internal override TypeSymbol MergeEquivalentTypes(TypeSymbol other, VarianceKind variance) 277TypeWithAnnotations pointedAtType = PointedAtTypeWithAnnotations.MergeEquivalentTypes(((PointerTypeSymbol)other).PointedAtTypeWithAnnotations, VarianceKind.None);
Symbols\PublicModel\TypeParameterSymbol.cs (1)
85VarianceKind ITypeParameterSymbol.Variance => _underlying.Variance;
Symbols\Source\CrefTypeParameterSymbol.cs (2)
120public override VarianceKind Variance 122get { return VarianceKind.None; }
Symbols\Source\IndexedTypeParameterSymbol.cs (2)
135public override VarianceKind Variance 137get { return VarianceKind.None; }
Symbols\Source\SourceNamedTypeSymbol.cs (1)
620mergedConstraintTypes[index1] = constraintType1.MergeEquivalentTypes(constraintType2, VarianceKind.None);
Symbols\Source\SourceTypeParameterSymbol.cs (5)
77public override VarianceKind Variance 81return VarianceKind.None; 453private readonly VarianceKind _varianceKind; 455public SourceTypeTypeParameterSymbol(SourceNamedTypeSymbol owner, string name, int ordinal, VarianceKind varianceKind, ImmutableArray<Location> locations, ImmutableArray<SyntaxReference> syntaxRefs) 475public override VarianceKind Variance
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListTypeParameterSymbol.cs (2)
43public override VarianceKind Variance => VarianceKind.None;
Symbols\Synthesized\SynthesizedInlineArrayTypeSymbol.cs (2)
248public override VarianceKind Variance => VarianceKind.None;
Symbols\SynthesizedSimpleMethodTypeParameterSymbol.cs (2)
86public override VarianceKind Variance 88get { return VarianceKind.None; }
Symbols\TypeParameterSymbol.cs (2)
644public abstract VarianceKind Variance { get; } 697internal override TypeSymbol MergeEquivalentTypes(TypeSymbol other, VarianceKind variance)
Symbols\TypeSymbol.cs (1)
653internal abstract TypeSymbol MergeEquivalentTypes(TypeSymbol other, VarianceKind variance);
Symbols\TypeWithAnnotations.cs (1)
241internal TypeWithAnnotations MergeEquivalentTypes(TypeWithAnnotations other, VarianceKind variance)
Symbols\VarianceSafety.cs (10)
94Debug.Assert(container.TypeParameters.Any(static tp => tp.Variance != VarianceKind.None)); 111if (container.TypeParameters.Any(static tp => tp.Variance != VarianceKind.None)) 309if (requireInputSafety && requireOutputSafety && typeParam.Variance != VarianceKind.None) 317else if (requireOutputSafety && typeParam.Variance == VarianceKind.In) 323else if (requireInputSafety && typeParam.Variance == VarianceKind.Out) 396case VarianceKind.Out: 401case VarianceKind.In: 406case VarianceKind.None: 454case VarianceKind.In: 457case VarianceKind.Out:
Symbols\Wrapped\WrappedTypeParameterSymbol.cs (1)
138public override VarianceKind Variance
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (2)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\TypeParameterGenerator.cs (2)
30symbol.Variance == VarianceKind.In ? InKeyword : 31symbol.Variance == VarianceKind.Out ? OutKeyword : default;
Microsoft.CodeAnalysis.CSharp.Workspaces (4)
CodeGeneration\CSharpSyntaxGenerator.cs (2)
1749VarianceKind.In => InKeyword, 1750VarianceKind.Out => OutKeyword,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\TypeParameterGenerator.cs (2)
30symbol.Variance == VarianceKind.In ? InKeyword : 31symbol.Variance == VarianceKind.Out ? OutKeyword : default;
Microsoft.CodeAnalysis.Workspaces (4)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationSymbolFactory.cs (2)
318attributes: default, varianceKind: VarianceKind.None, 330VarianceKind varianceKind, string name,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (2)
14VarianceKind varianceKind, 26public VarianceKind Variance { get; } = varianceKind;
Roslyn.Diagnostics.Analyzers (4)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationSymbolFactory.cs (2)
318attributes: default, varianceKind: VarianceKind.None, 330VarianceKind varianceKind, string name,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (2)
14VarianceKind varianceKind, 26public VarianceKind Variance { get; } = varianceKind;
Roslyn.Diagnostics.CSharp.Analyzers (2)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\TypeParameterGenerator.cs (2)
30symbol.Variance == VarianceKind.In ? InKeyword : 31symbol.Variance == VarianceKind.Out ? OutKeyword : default;