262 references to VarianceKind
Microsoft.CodeAnalysis (1)
Symbols\ITypeParameterSymbol.cs (1)
28VarianceKind Variance { get; }
Microsoft.CodeAnalysis.CodeStyle.Fixes (4)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationSymbolFactory.cs (2)
323attributes: default, varianceKind: VarianceKind.None, 335VarianceKind varianceKind, string name,
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)
1833return bestSoFar.MergeEquivalentTypes(possiblyLessSpecificCandidate, VarianceKind.Out);
Binder\ForEachLoopBinder.cs (1)
1865interfaces = MethodTypeInferrer.ModuloReferenceTypeNullabilityDifferences(interfaces, VarianceKind.In);
Binder\Semantics\BestTypeInferrer.cs (1)
297return type1.MergeEquivalentTypes(type2, VarianceKind.Out);
Binder\Semantics\Conversions\ConversionsBase.cs (6)
3190case VarianceKind.None: 3206case VarianceKind.Out: 3213case VarianceKind.In: 3691case VarianceKind.None: 3698case VarianceKind.Out: 3705case VarianceKind.In:
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (19)
2339allInterfaces = ModuloReferenceTypeNullabilityDifferences(allInterfaces, VarianceKind.In); 2350internal static ImmutableArray<NamedTypeSymbol> ModuloReferenceTypeNullabilityDifferences(ImmutableArray<NamedTypeSymbol> interfaces, VarianceKind variance) 2404if (sourceTypeArgument.Type.IsReferenceType && typeParameter.Variance == VarianceKind.Out) 2408else if (sourceTypeArgument.Type.IsReferenceType && typeParameter.Variance == VarianceKind.In) 2710allInterfaces = ModuloReferenceTypeNullabilityDifferences(allInterfaces, VarianceKind.Out); 2754if (sourceTypeArgument.Type.IsReferenceType && typeParameter.Variance == VarianceKind.Out) 2758else if (sourceTypeArgument.Type.IsReferenceType && typeParameter.Variance == VarianceKind.In) 2904AddAllCandidates(candidates, lower, lowerPredicate, VarianceKind.Out, conversions); 2909AddAllCandidates(candidates, upper, predicate: null, VarianceKind.In, conversions); 2915AddAllCandidates(candidates, exact, predicate: null, VarianceKind.None, conversions); 2936MergeOrRemoveCandidates(candidates, lower, lowerPredicate, initialCandidates, conversions, VarianceKind.Out, ref useSiteInfo); 2944MergeOrRemoveCandidates(candidates, upper, predicate: null, initialCandidates, conversions, VarianceKind.In, ref useSiteInfo); 3373VarianceKind variance, 3401VarianceKind variance) 3419VarianceKind variance, 3422Debug.Assert(variance == VarianceKind.In || variance == VarianceKind.Out); 3441if (variance == VarianceKind.Out) 3484VarianceKind 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)
6065refResultType = consequenceRValue.Type!.MergeEquivalentTypes(alternativeRValue.Type, VarianceKind.None);
SymbolDisplay\SymbolDisplayVisitor.Types.cs (2)
804case VarianceKind.In: 808case VarianceKind.Out:
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.TypeParameterSymbol.cs (2)
113public override VarianceKind Variance 115get { return VarianceKind.None; }
Symbols\ArrayTypeSymbol.cs (1)
413internal override TypeSymbol MergeEquivalentTypes(TypeSymbol other, VarianceKind variance)
Symbols\DynamicTypeSymbol.cs (1)
233internal 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)
162internal 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)
1002internal override TypeSymbol MergeEquivalentTypes(TypeSymbol other, VarianceKind variance) 1041VarianceKind variance, 1066VarianceKind typeArgumentVariance = GetTypeArgumentVariance(variance, isTuple ? VarianceKind.Out : typeParameters[i].Variance); 1082variance = VarianceKind.None; 1088private static VarianceKind GetTypeArgumentVariance(VarianceKind typeVariance, VarianceKind typeParameterVariance) 1092case VarianceKind.In: 1095case VarianceKind.In: 1096return VarianceKind.Out; 1097case VarianceKind.Out: 1098return VarianceKind.In; 1100return VarianceKind.None; 1102case VarianceKind.Out: 1105return 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)
275internal override TypeSymbol MergeEquivalentTypes(TypeSymbol other, VarianceKind variance) 278TypeWithAnnotations 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)
614mergedConstraintTypes[index1] = constraintType1.MergeEquivalentTypes(constraintType2, VarianceKind.None);
Symbols\Source\SourceTypeParameterSymbol.cs (5)
76public override VarianceKind Variance 80return VarianceKind.None; 462private readonly VarianceKind _varianceKind; 464public SourceTypeTypeParameterSymbol(SourceNamedTypeSymbol owner, string name, int ordinal, VarianceKind varianceKind, ImmutableArray<Location> locations, ImmutableArray<SyntaxReference> syntaxRefs) 484public override VarianceKind Variance
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListTypeParameterSymbol.cs (2)
43public override VarianceKind Variance => VarianceKind.None;
Symbols\Synthesized\SynthesizedInlineArrayTypeSymbol.cs (2)
242public override VarianceKind Variance => VarianceKind.None;
Symbols\SynthesizedSimpleMethodTypeParameterSymbol.cs (2)
86public override VarianceKind Variance 88get { return VarianceKind.None; }
Symbols\TypeParameterSymbol.cs (2)
645public abstract VarianceKind Variance { get; } 698internal override TypeSymbol MergeEquivalentTypes(TypeSymbol other, VarianceKind variance)
Symbols\TypeSymbol.cs (1)
661internal abstract TypeSymbol MergeEquivalentTypes(TypeSymbol other, VarianceKind variance);
Symbols\TypeWithAnnotations.cs (1)
241internal 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)
136public override VarianceKind Variance
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (2)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\TypeParameterGenerator.cs (2)
30symbol.Variance == VarianceKind.In ? InKeyword : 31symbol.Variance == VarianceKind.Out ? 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.Semantic.UnitTests (5)
Semantics\DelegateTypeTests.cs (5)
15703Assert.Equal(functionTypeStringNullable, functionTypeStringNullable.MergeEquivalentTypes(functionTypeStringNullable, VarianceKind.Out)); 15704Assert.Equal(functionTypeStringNullable, functionTypeStringNullable.MergeEquivalentTypes(functionTypeStringNotNullable, VarianceKind.Out)); 15705Assert.Equal(functionTypeStringNullable, functionTypeStringNotNullable.MergeEquivalentTypes(functionTypeStringNullable, VarianceKind.Out)); 15706Assert.Equal(functionTypeStringNotNullable, functionTypeStringNotNullable.MergeEquivalentTypes(functionTypeStringNotNullable, VarianceKind.Out)); 15707Assert.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)
2485Assert.Equal(VarianceKind.None, foo3TypeParam.Variance);
Symbols\Metadata\PE\LoadingGenericTypeParameters.cs (8)
76Assert.Equal(VarianceKind.None, varC1_T.Variance); 130Assert.Equal(VarianceKind.Out, varT.Variance); 137Assert.Equal(VarianceKind.In, varT.Variance); 144Assert.Equal(VarianceKind.None, varT.Variance); 152Assert.Equal(VarianceKind.None, varT.Variance); 160Assert.Equal(VarianceKind.None, varT.Variance); 168Assert.Equal(VarianceKind.None, varT.Variance); 175Assert.Equal(VarianceKind.Out, varT.Variance);
Microsoft.CodeAnalysis.CSharp.Workspaces (4)
CodeGeneration\CSharpSyntaxGenerator.cs (2)
1736VarianceKind.In => InKeyword, 1737VarianceKind.Out => OutKeyword,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\TypeParameterGenerator.cs (2)
30symbol.Variance == VarianceKind.In ? InKeyword : 31symbol.Variance == VarianceKind.Out ? OutKeyword : default;
Microsoft.CodeAnalysis.VisualBasic (84)
Binding\Binder_Conversions.vb (4)
840Case VarianceKind.Out 854Case VarianceKind.In 908ErrorFactory.ErrorInfo(If(oneVariantDifference.TypeParameter.Variance = VarianceKind.Out, 918ReportDiagnostic(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)
253Case VarianceKind.None 255Case VarianceKind.In 257Case VarianceKind.Out
Semantics\Conversions.vb (2)
2789Case VarianceKind.Out 2800Case VarianceKind.In
Semantics\TypeInference\TypeArgumentInference.vb (3)
1487Case VarianceKind.In 1492Case VarianceKind.Out 1497Debug.Assert(VarianceKind.None = parameterTypeAsNamedType.TypeParameters(typeArgumentIndex).Variance)
SymbolDisplay\SymbolDisplayVisitor.Types.vb (2)
471Case VarianceKind.In 474Case VarianceKind.Out
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousTypeOrDelegateTypeParameterSymbol.vb (2)
108Public Overrides ReadOnly Property Variance As VarianceKind 110Return VarianceKind.None
Symbols\IndexedTypeParameterSymbol.vb (2)
107Public Overrides ReadOnly Property Variance As VarianceKind 109Return VarianceKind.None
Symbols\InstanceErrorTypeSymbol.vb (2)
266Public Overrides ReadOnly Property Variance As VarianceKind 268Return VarianceKind.None
Symbols\Metadata\PE\PETypeParameterSymbol.vb (2)
309Public Overrides ReadOnly Property Variance As VarianceKind 311Return CType((_flags And GenericParameterAttributes.VarianceMask), VarianceKind)
Symbols\NamedTypeSymbolExtensions.vb (2)
100Case VarianceKind.In, VarianceKind.Out
Symbols\ReducedExtensionMethodSymbol.vb (1)
794Public Overrides ReadOnly Property Variance As VarianceKind
Symbols\Retargeting\RetargetingTypeParameterSymbol.vb (1)
113Public Overrides ReadOnly Property Variance As VarianceKind
Symbols\Source\CrefTypeParameterSymbol.vb (2)
122Public Overrides ReadOnly Property Variance As VarianceKind 124Return VarianceKind.None
Symbols\Source\SourceMemberContainerTypeSymbol.vb (30)
473GenerateVarianceDiagnosticsForType(implemented, VarianceKind.Out, VarianceContext.Complex, infosBuffer) 575requiredVariance As VarianceKind, 612requiredVariance As VarianceKind, 671If (typeParam.Variance = VarianceKind.Out AndAlso requiredVariance <> VarianceKind.Out) OrElse 672(typeParam.Variance = VarianceKind.In AndAlso requiredVariance <> VarianceKind.In) Then 676Dim inappropriateOut As Boolean = (typeParam.Variance = VarianceKind.Out) 831If requiredVariance <> VarianceKind.Out Then 901Debug.Assert(namedType.TypeParameters(0).Variance = VarianceKind.None, "unexpected: a nullable type should have one generic parameter with no variance") 904VarianceKind.None, 919Dim argumentRequiredVariance As VarianceKind 922Case VarianceKind.In 924Case VarianceKind.In 925argumentRequiredVariance = VarianceKind.Out 926Case VarianceKind.Out 927argumentRequiredVariance = VarianceKind.In 929argumentRequiredVariance = VarianceKind.None 931Case VarianceKind.Out 934argumentRequiredVariance = VarianceKind.None 970GenerateVarianceDiagnosticsForType(method.ReturnType, VarianceKind.Out, VarianceContext.Return, infosBuffer) 1002Dim requiredVariance As VarianceKind 1006requiredVariance = VarianceKind.None 1009requiredVariance = VarianceKind.In 1044GenerateVarianceDiagnosticsForType(constraint, VarianceKind.In, VarianceContext.Constraint, infosBuffer) 1070Dim requiredVariance As VarianceKind 1074requiredVariance = VarianceKind.Out 1077requiredVariance = VarianceKind.In 1080requiredVariance = VarianceKind.None 1119GenerateVarianceDiagnosticsForType(type, VarianceKind.In, VarianceContext.Complex, infosBuffer)
Symbols\Source\SourceNamedTypeSymbol.vb (5)
756variance As VarianceKind, 762Public ReadOnly Variance As VarianceKind 790<Out()> ByRef variance As VarianceKind, 838Dim variance As VarianceKind = VarianceKind.None
Symbols\Source\SourceTypeParameterSymbol.vb (5)
236Private _lazyVariance As VarianceKind 253Public Overrides ReadOnly Property Variance As VarianceKind 289Dim variance As VarianceKind 332Public Overrides ReadOnly Property Variance As VarianceKind 334Return VarianceKind.None
Symbols\SubstitutedTypeParameterSymbol.vb (1)
165Public Overrides ReadOnly Property Variance As VarianceKind
Symbols\SynthesizedSymbols\SynthesizedClonedTypeParameterSymbol.vb (1)
133Public Overrides ReadOnly Property Variance As VarianceKind
Symbols\TypeParameterSymbol.vb (1)
330Public MustOverride ReadOnly Property Variance As VarianceKind Implements ITypeParameterSymbol.Variance
Symbols\Wrapped\WrappedTypeParameterSymbol.vb (1)
70Public 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.CodeStyle.Fixes (2)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\TypeParameterGenerator.vb (2)
18varianceKeyword:=If(symbol.Variance = VarianceKind.In, SyntaxFactory.Token(SyntaxKind.InKeyword), If(symbol.Variance = VarianceKind.Out, SyntaxFactory.Token(SyntaxKind.OutKeyword), Nothing)),
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.ExpressionCompiler (3)
Symbols\EETypeParameterSymbol.vb (1)
91Public Overrides ReadOnly Property Variance As VarianceKind
Symbols\SimpleTypeParameterSymbol.vb (2)
73Public Overrides ReadOnly Property Variance As VarianceKind 75Return VarianceKind.None
Microsoft.CodeAnalysis.VisualBasic.Symbol.UnitTests (14)
SymbolsTests\CompilationCreationTests.vb (1)
1937Assert.Equal(VarianceKind.None, foo3TypeParam.Variance)
SymbolsTests\Metadata\PE\LoadingGenericTypeParameters.vb (8)
75Assert.Equal(VarianceKind.None, C1_T.Variance) 129Assert.Equal(VarianceKind.Out, T.Variance) 136Assert.Equal(VarianceKind.In, T.Variance) 143Assert.Equal(VarianceKind.None, T.Variance) 151Assert.Equal(VarianceKind.None, T.Variance) 159Assert.Equal(VarianceKind.None, T.Variance) 167Assert.Equal(VarianceKind.None, T.Variance) 174Assert.Equal(VarianceKind.Out, T.Variance)
SymbolsTests\Source\MethodTests.vb (2)
638Assert.Equal(VarianceKind.None, tpT.Variance) 643Assert.Equal(VarianceKind.None, tpU.Variance)
SymbolsTests\Source\TypeTests.vb (3)
657Assert.Equal(VarianceKind.None, typeParams(0).Variance) 662Assert.Equal(VarianceKind.In, typeParams(1).Variance) 667Assert.Equal(VarianceKind.Out, typeParams(2).Variance)
Microsoft.CodeAnalysis.VisualBasic.Syntax.UnitTests (3)
Syntax\SyntaxFactsTest.vb (3)
1004Assert.Equal(VarianceKind.In, SyntaxFacts.VarianceKindFromToken(keywordToken)) 1006Assert.Equal(VarianceKind.Out, SyntaxFacts.VarianceKindFromToken(keywordToken)) 1008Assert.Equal(VarianceKind.None, SyntaxFacts.VarianceKindFromToken(keywordToken))
Microsoft.CodeAnalysis.VisualBasic.Workspaces (4)
CodeGeneration\VisualBasicSyntaxGenerator.vb (2)
2512Case VarianceKind.In 2514Case VarianceKind.Out
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\TypeParameterGenerator.vb (2)
18varianceKeyword:=If(symbol.Variance = VarianceKind.In, SyntaxFactory.Token(SyntaxKind.InKeyword), If(symbol.Variance = VarianceKind.Out, SyntaxFactory.Token(SyntaxKind.OutKeyword), Nothing)),
Microsoft.CodeAnalysis.Workspaces (4)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationSymbolFactory.cs (2)
323attributes: default, varianceKind: VarianceKind.None, 335VarianceKind varianceKind, string name,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (2)
14VarianceKind varianceKind, 26public VarianceKind Variance { get; } = varianceKind;