257 references to VarianceKind
Microsoft.CodeAnalysis (1)
Symbols\ITypeParameterSymbol.cs (1)
28VarianceKind Variance { get; }
Microsoft.CodeAnalysis.CodeStyle.Fixes (4)
CodeGenerationSymbolFactory.cs (2)
322attributes: default, varianceKind: VarianceKind.None, 333VarianceKind varianceKind, string name,
CodeGenerationTypeParameterSymbol.cs (2)
13public VarianceKind Variance { get; } 25VarianceKind varianceKind,
Microsoft.CodeAnalysis.CSharp (105)
Binder\Binder_Patterns.cs (1)
1794return bestSoFar.MergeEquivalentTypes(possiblyLessSpecificCandidate, VarianceKind.Out);
Binder\ForEachLoopBinder.cs (1)
1602interfaces = MethodTypeInferrer.ModuloReferenceTypeNullabilityDifferences(interfaces, VarianceKind.In);
Binder\Semantics\BestTypeInferrer.cs (1)
289return type1.MergeEquivalentTypes(type2, VarianceKind.Out);
Binder\Semantics\Conversions\ConversionsBase.cs (6)
2968case VarianceKind.None: 2984case VarianceKind.Out: 2991case VarianceKind.In: 3454case VarianceKind.None: 3461case VarianceKind.Out: 3468case VarianceKind.In:
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (19)
2118allInterfaces = ModuloReferenceTypeNullabilityDifferences(allInterfaces, VarianceKind.In); 2129internal static ImmutableArray<NamedTypeSymbol> ModuloReferenceTypeNullabilityDifferences(ImmutableArray<NamedTypeSymbol> interfaces, VarianceKind variance) 2183if (sourceTypeArgument.Type.IsReferenceType && typeParameter.Variance == VarianceKind.Out) 2187else if (sourceTypeArgument.Type.IsReferenceType && typeParameter.Variance == VarianceKind.In) 2489allInterfaces = ModuloReferenceTypeNullabilityDifferences(allInterfaces, VarianceKind.Out); 2533if (sourceTypeArgument.Type.IsReferenceType && typeParameter.Variance == VarianceKind.Out) 2537else if (sourceTypeArgument.Type.IsReferenceType && typeParameter.Variance == VarianceKind.In) 2680AddAllCandidates(candidates, lower, VarianceKind.Out, conversions); 2685AddAllCandidates(candidates, upper, VarianceKind.In, conversions); 2691AddAllCandidates(candidates, exact, VarianceKind.None, conversions); 2712MergeOrRemoveCandidates(candidates, lower, initialCandidates, conversions, VarianceKind.Out, ref useSiteInfo); 2720MergeOrRemoveCandidates(candidates, upper, initialCandidates, conversions, VarianceKind.In, ref useSiteInfo); 3103VarianceKind variance, 3126VarianceKind variance) 3143VarianceKind variance, 3146Debug.Assert(variance == VarianceKind.In || variance == VarianceKind.Out); 3160if (variance == VarianceKind.Out) 3203VarianceKind 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)
319case VarianceKind.None: 321case VarianceKind.In: 323case VarianceKind.Out:
FlowAnalysis\NullableWalker.cs (1)
5441refResultType = consequenceRValue.Type!.MergeEquivalentTypes(alternativeRValue.Type, VarianceKind.None);
SymbolDisplay\SymbolDisplayVisitor.Types.cs (2)
761case VarianceKind.In: 765case VarianceKind.Out:
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.TypeParameterSymbol.cs (2)
109public override VarianceKind Variance 111get { return VarianceKind.None; }
Symbols\ArrayTypeSymbol.cs (1)
410internal override TypeSymbol MergeEquivalentTypes(TypeSymbol other, VarianceKind variance)
Symbols\DynamicTypeSymbol.cs (1)
231internal override TypeSymbol MergeEquivalentTypes(TypeSymbol other, VarianceKind variance)
Symbols\ErrorTypeSymbol.ErrorTypeParameterSymbol.cs (2)
134public override VarianceKind Variance 138return VarianceKind.None;
Symbols\FunctionPointers\FunctionPointerMethodSymbol.cs (9)
346internal FunctionPointerMethodSymbol MergeEquivalentTypes(FunctionPointerMethodSymbol signature, VarianceKind variance) 349var returnVariance = RefKind == RefKind.None ? variance : VarianceKind.None; 362var paramVariance = (variance, thisParam.RefKind) switch 364(VarianceKind.In, RefKind.None) => VarianceKind.Out, 365(VarianceKind.Out, RefKind.None) => VarianceKind.In, 366_ => VarianceKind.None,
Symbols\FunctionPointers\FunctionPointerTypeSymbol.cs (1)
160internal 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)
588public override VarianceKind Variance 592return (VarianceKind)(_flags & GenericParameterAttributes.VarianceMask);
Symbols\NamedTypeSymbol.cs (16)
1001internal override TypeSymbol MergeEquivalentTypes(TypeSymbol other, VarianceKind variance) 1040VarianceKind variance, 1065VarianceKind typeArgumentVariance = GetTypeArgumentVariance(variance, isTuple ? VarianceKind.Out : typeParameters[i].Variance); 1081variance = VarianceKind.None; 1087private static VarianceKind GetTypeArgumentVariance(VarianceKind typeVariance, VarianceKind typeParameterVariance) 1091case VarianceKind.In: 1094case VarianceKind.In: 1095return VarianceKind.Out; 1096case VarianceKind.Out: 1097return VarianceKind.In; 1099return VarianceKind.None; 1101case VarianceKind.Out: 1104return 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)
273internal override TypeSymbol MergeEquivalentTypes(TypeSymbol other, VarianceKind variance) 276TypeWithAnnotations 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)
615mergedConstraintTypes[index1] = constraintType1.MergeEquivalentTypes(constraintType2, VarianceKind.None);
Symbols\Source\SourceTypeParameterSymbol.cs (5)
75public override VarianceKind Variance 79return VarianceKind.None; 457private readonly VarianceKind _varianceKind; 459public SourceTypeParameterSymbol(SourceNamedTypeSymbol owner, string name, int ordinal, VarianceKind varianceKind, ImmutableArray<Location> locations, ImmutableArray<SyntaxReference> syntaxRefs) 479public override VarianceKind Variance
Symbols\TypeParameterSymbol.cs (2)
636public abstract VarianceKind Variance { get; } 689internal override TypeSymbol MergeEquivalentTypes(TypeSymbol other, VarianceKind variance)
Symbols\TypeSymbol.cs (1)
649internal abstract TypeSymbol MergeEquivalentTypes(TypeSymbol other, VarianceKind variance);
Symbols\TypeWithAnnotations.cs (1)
233internal TypeWithAnnotations MergeEquivalentTypes(TypeWithAnnotations other, VarianceKind variance)
Symbols\VarianceSafety.cs (10)
91Debug.Assert(container.TypeParameters.Any(static tp => tp.Variance != VarianceKind.None)); 108if (container.TypeParameters.Any(static tp => tp.Variance != VarianceKind.None)) 306if (requireInputSafety && requireOutputSafety && typeParam.Variance != VarianceKind.None) 314else if (requireOutputSafety && typeParam.Variance == VarianceKind.In) 320else if (requireInputSafety && typeParam.Variance == VarianceKind.Out) 393case VarianceKind.Out: 398case VarianceKind.In: 403case VarianceKind.None: 451case VarianceKind.In: 454case VarianceKind.Out:
Symbols\Wrapped\WrappedTypeParameterSymbol.cs (1)
128public override VarianceKind Variance
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (2)
TypeParameterGenerator.cs (2)
28symbol.Variance == VarianceKind.In ? SyntaxFactory.Token(SyntaxKind.InKeyword) : 29symbol.Variance == VarianceKind.Out ? SyntaxFactory.Token(SyntaxKind.OutKeyword) : default;
Microsoft.CodeAnalysis.CSharp.Emit.UnitTests (5)
Emit\NoPiaEmbedTypes.cs (5)
1748Assert.Equal(VarianceKind.None, t1.Variance); 1756Assert.Equal(VarianceKind.None, t2.Variance); 1763Assert.Equal(VarianceKind.None, t5.Variance); 1770Assert.Equal(VarianceKind.None, t6.Variance); 1777Assert.Equal(VarianceKind.None, t7.Variance);
Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler (3)
Symbols\EETypeParameterSymbol.cs (1)
126public override VarianceKind Variance
Symbols\SimpleTypeParameterSymbol.cs (2)
90public override VarianceKind Variance 92get { return VarianceKind.None; }
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (5)
Semantics\DelegateTypeTests.cs (5)
12267Assert.Equal(functionTypeStringNullable, functionTypeStringNullable.MergeEquivalentTypes(functionTypeStringNullable, VarianceKind.Out)); 12268Assert.Equal(functionTypeStringNullable, functionTypeStringNullable.MergeEquivalentTypes(functionTypeStringNotNullable, VarianceKind.Out)); 12269Assert.Equal(functionTypeStringNullable, functionTypeStringNotNullable.MergeEquivalentTypes(functionTypeStringNullable, VarianceKind.Out)); 12270Assert.Equal(functionTypeStringNotNullable, functionTypeStringNotNullable.MergeEquivalentTypes(functionTypeStringNotNullable, VarianceKind.Out)); 12271Assert.Equal(functionTypeNullA, functionTypeNullA.MergeEquivalentTypes(functionTypeNullA, VarianceKind.Out));
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (10)
DocumentationComments\CrefTests.cs (1)
1560AssertEx.All(actualTypeParameters, p => p.Variance == VarianceKind.None);
Symbols\CompilationCreationTests.cs (1)
2484Assert.Equal(VarianceKind.None, foo3TypeParam.Variance);
Symbols\Metadata\PE\LoadingGenericTypeParameters.cs (8)
75Assert.Equal(VarianceKind.None, varC1_T.Variance); 129Assert.Equal(VarianceKind.Out, varT.Variance); 136Assert.Equal(VarianceKind.In, varT.Variance); 143Assert.Equal(VarianceKind.None, varT.Variance); 151Assert.Equal(VarianceKind.None, varT.Variance); 159Assert.Equal(VarianceKind.None, varT.Variance); 167Assert.Equal(VarianceKind.None, varT.Variance); 174Assert.Equal(VarianceKind.Out, varT.Variance);
Microsoft.CodeAnalysis.CSharp.Workspaces (4)
CodeGeneration\CSharpSyntaxGenerator.cs (2)
1751VarianceKind.In => SyntaxFactory.Token(SyntaxKind.InKeyword), 1752VarianceKind.Out => SyntaxFactory.Token(SyntaxKind.OutKeyword),
TypeParameterGenerator.cs (2)
28symbol.Variance == VarianceKind.In ? SyntaxFactory.Token(SyntaxKind.InKeyword) : 29symbol.Variance == VarianceKind.Out ? SyntaxFactory.Token(SyntaxKind.OutKeyword) : default;
Microsoft.CodeAnalysis.VisualBasic (84)
Binding\Binder_Conversions.vb (4)
832Case VarianceKind.Out 846Case VarianceKind.In 900ErrorFactory.ErrorInfo(If(oneVariantDifference.TypeParameter.Variance = VarianceKind.Out, 910ReportDiagnostic(diagnostics, location, If(oneVariantDifference.TypeParameter.Variance = VarianceKind.Out,
Binding\Binder_Utils.vb (4)
28Public Shared Function DecodeVariance(varianceKeywordOpt As SyntaxToken) As VarianceKind 31Return VarianceKind.None 33Return VarianceKind.In 35Return VarianceKind.Out
Emit\TypeParameterSymbolAdapter.vb (3)
241Case VarianceKind.None 243Case VarianceKind.In 245Case VarianceKind.Out
Semantics\Conversions.vb (2)
2784Case VarianceKind.Out 2795Case VarianceKind.In
Semantics\TypeInference\TypeArgumentInference.vb (3)
1491Case VarianceKind.In 1496Case VarianceKind.Out 1501Debug.Assert(VarianceKind.None = parameterTypeAsNamedType.TypeParameters(typeArgumentIndex).Variance)
SymbolDisplay\SymbolDisplayVisitor.Types.vb (2)
471Case VarianceKind.In 474Case VarianceKind.Out
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousTypeOrDelegateTypeParameterSymbol.vb (2)
96Public Overrides ReadOnly Property Variance As VarianceKind 98Return VarianceKind.None
Symbols\IndexedTypeParameterSymbol.vb (2)
107Public Overrides ReadOnly Property Variance As VarianceKind 109Return VarianceKind.None
Symbols\InstanceErrorTypeSymbol.vb (2)
254Public Overrides ReadOnly Property Variance As VarianceKind 256Return VarianceKind.None
Symbols\Metadata\PE\PETypeParameterSymbol.vb (2)
248Public Overrides ReadOnly Property Variance As VarianceKind 250Return CType((_flags And GenericParameterAttributes.VarianceMask), VarianceKind)
Symbols\NamedTypeSymbolExtensions.vb (2)
100Case VarianceKind.In, VarianceKind.Out
Symbols\ReducedExtensionMethodSymbol.vb (1)
770Public Overrides ReadOnly Property Variance As VarianceKind
Symbols\Retargeting\RetargetingTypeParameterSymbol.vb (1)
101Public Overrides ReadOnly Property Variance As VarianceKind
Symbols\Source\CrefTypeParameterSymbol.vb (2)
110Public Overrides ReadOnly Property Variance As VarianceKind 112Return VarianceKind.None
Symbols\Source\SourceMemberContainerTypeSymbol.vb (30)
477GenerateVarianceDiagnosticsForType(implemented, VarianceKind.Out, VarianceContext.Complex, infosBuffer) 583requiredVariance As VarianceKind, 620requiredVariance As VarianceKind, 679If (typeParam.Variance = VarianceKind.Out AndAlso requiredVariance <> VarianceKind.Out) OrElse 680(typeParam.Variance = VarianceKind.In AndAlso requiredVariance <> VarianceKind.In) Then 684Dim inappropriateOut As Boolean = (typeParam.Variance = VarianceKind.Out) 839If requiredVariance <> VarianceKind.Out Then 909Debug.Assert(namedType.TypeParameters(0).Variance = VarianceKind.None, "unexpected: a nullable type should have one generic parameter with no variance") 912VarianceKind.None, 927Dim argumentRequiredVariance As VarianceKind 930Case VarianceKind.In 932Case VarianceKind.In 933argumentRequiredVariance = VarianceKind.Out 934Case VarianceKind.Out 935argumentRequiredVariance = VarianceKind.In 937argumentRequiredVariance = VarianceKind.None 939Case VarianceKind.Out 942argumentRequiredVariance = VarianceKind.None 978GenerateVarianceDiagnosticsForType(method.ReturnType, VarianceKind.Out, VarianceContext.Return, infosBuffer) 1010Dim requiredVariance As VarianceKind 1014requiredVariance = VarianceKind.None 1017requiredVariance = VarianceKind.In 1052GenerateVarianceDiagnosticsForType(constraint, VarianceKind.In, VarianceContext.Constraint, infosBuffer) 1078Dim requiredVariance As VarianceKind 1082requiredVariance = VarianceKind.Out 1085requiredVariance = VarianceKind.In 1088requiredVariance = VarianceKind.None 1127GenerateVarianceDiagnosticsForType(type, VarianceKind.In, VarianceContext.Complex, infosBuffer)
Symbols\Source\SourceNamedTypeSymbol.vb (5)
753variance As VarianceKind, 759Public ReadOnly Variance As VarianceKind 787<Out()> ByRef variance As VarianceKind, 835Dim variance As VarianceKind = VarianceKind.None
Symbols\Source\SourceTypeParameterSymbol.vb (5)
222Private _lazyVariance As VarianceKind 239Public Overrides ReadOnly Property Variance As VarianceKind 275Dim variance As VarianceKind 318Public Overrides ReadOnly Property Variance As VarianceKind 320Return VarianceKind.None
Symbols\SubstitutedTypeParameterSymbol.vb (1)
153Public Overrides ReadOnly Property Variance As VarianceKind
Symbols\SynthesizedSymbols\SynthesizedClonedTypeParameterSymbol.vb (1)
121Public Overrides ReadOnly Property Variance As VarianceKind
Symbols\TypeParameterSymbol.vb (1)
332Public MustOverride ReadOnly Property Variance As VarianceKind Implements ITypeParameterSymbol.Variance
Symbols\Wrapped\WrappedTypeParameterSymbol.vb (1)
64Public Overrides ReadOnly Property Variance As VarianceKind
Syntax\SyntaxFacts.vb (4)
614Public Shared Function VarianceKindFromToken(token As SyntaxToken) As VarianceKind 617Return VarianceKind.Out 620Return VarianceKind.In 623Return VarianceKind.None
Utilities\VarianceAmbiguity.vb (4)
115variance As VarianceKind, 123Case VarianceKind.In 137Case VarianceKind.Out 148Case VarianceKind.None
Microsoft.CodeAnalysis.VisualBasic.Emit.UnitTests (6)
Emit\NoPiaEmbedTypes.vb (6)
1559Assert.Equal(VarianceKind.None, t1.Variance) 1568Assert.Equal(VarianceKind.None, t2.Variance) 1576Assert.Equal(VarianceKind.None, t3.Variance) 1584Assert.Equal(VarianceKind.None, t4.Variance) 1592Assert.Equal(VarianceKind.None, t5.Variance) 1601Assert.Equal(VarianceKind.None, t6.Variance)
Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator.ExpressionCompiler (3)
Symbols\EETypeParameterSymbol.vb (1)
85Public Overrides ReadOnly Property Variance As VarianceKind
Symbols\SimpleTypeParameterSymbol.vb (2)
67Public Overrides ReadOnly Property Variance As VarianceKind 69Return VarianceKind.None
Microsoft.CodeAnalysis.VisualBasic.Symbol.UnitTests (14)
SymbolsTests\CompilationCreationTests.vb (1)
1936Assert.Equal(VarianceKind.None, foo3TypeParam.Variance)
SymbolsTests\Metadata\PE\LoadingGenericTypeParameters.vb (8)
74Assert.Equal(VarianceKind.None, C1_T.Variance) 128Assert.Equal(VarianceKind.Out, T.Variance) 135Assert.Equal(VarianceKind.In, T.Variance) 142Assert.Equal(VarianceKind.None, T.Variance) 150Assert.Equal(VarianceKind.None, T.Variance) 158Assert.Equal(VarianceKind.None, T.Variance) 166Assert.Equal(VarianceKind.None, T.Variance) 173Assert.Equal(VarianceKind.Out, T.Variance)
SymbolsTests\Source\MethodTests.vb (2)
637Assert.Equal(VarianceKind.None, tpT.Variance) 642Assert.Equal(VarianceKind.None, tpU.Variance)
SymbolsTests\Source\TypeTests.vb (3)
656Assert.Equal(VarianceKind.None, typeParams(0).Variance) 661Assert.Equal(VarianceKind.In, typeParams(1).Variance) 666Assert.Equal(VarianceKind.Out, typeParams(2).Variance)
Microsoft.CodeAnalysis.VisualBasic.Syntax.UnitTests (3)
Syntax\SyntaxFactsTest.vb (3)
1003Assert.Equal(VarianceKind.In, SyntaxFacts.VarianceKindFromToken(keywordToken)) 1005Assert.Equal(VarianceKind.Out, SyntaxFacts.VarianceKindFromToken(keywordToken)) 1007Assert.Equal(VarianceKind.None, SyntaxFacts.VarianceKindFromToken(keywordToken))
Microsoft.CodeAnalysis.VisualBasic.Workspaces (4)
CodeGeneration\TypeParameterGenerator.vb (2)
18varianceKeyword:=If(symbol.Variance = VarianceKind.In, SyntaxFactory.Token(SyntaxKind.InKeyword), If(symbol.Variance = VarianceKind.Out, SyntaxFactory.Token(SyntaxKind.OutKeyword), Nothing)),
CodeGeneration\VisualBasicSyntaxGenerator.vb (2)
2786Case VarianceKind.In 2788Case VarianceKind.Out
Microsoft.CodeAnalysis.Workspaces (4)
CodeGenerationSymbolFactory.cs (2)
322attributes: default, varianceKind: VarianceKind.None, 333VarianceKind varianceKind, string name,
CodeGenerationTypeParameterSymbol.cs (2)
13public VarianceKind Variance { get; } 25VarianceKind varianceKind,