257 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)
1820interfaces = 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)
2312allInterfaces = ModuloReferenceTypeNullabilityDifferences(allInterfaces, VarianceKind.In); 2323internal static ImmutableArray<NamedTypeSymbol> ModuloReferenceTypeNullabilityDifferences(ImmutableArray<NamedTypeSymbol> interfaces, VarianceKind variance) 2377if (sourceTypeArgument.Type.IsReferenceType && typeParameter.Variance == VarianceKind.Out) 2381else if (sourceTypeArgument.Type.IsReferenceType && typeParameter.Variance == VarianceKind.In) 2683allInterfaces = ModuloReferenceTypeNullabilityDifferences(allInterfaces, VarianceKind.Out); 2727if (sourceTypeArgument.Type.IsReferenceType && typeParameter.Variance == VarianceKind.Out) 2731else if (sourceTypeArgument.Type.IsReferenceType && typeParameter.Variance == VarianceKind.In) 2877AddAllCandidates(candidates, lower, lowerPredicate, VarianceKind.Out, conversions); 2882AddAllCandidates(candidates, upper, predicate: null, VarianceKind.In, conversions); 2888AddAllCandidates(candidates, exact, predicate: null, VarianceKind.None, conversions); 2909MergeOrRemoveCandidates(candidates, lower, lowerPredicate, initialCandidates, conversions, VarianceKind.Out, ref useSiteInfo); 2917MergeOrRemoveCandidates(candidates, upper, predicate: null, initialCandidates, conversions, VarianceKind.In, ref useSiteInfo); 3307VarianceKind variance, 3335VarianceKind variance) 3353VarianceKind variance, 3356Debug.Assert(variance == VarianceKind.In || variance == VarianceKind.Out); 3375if (variance == VarianceKind.Out) 3418VarianceKind 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)
5984refResultType = consequenceRValue.Type!.MergeEquivalentTypes(alternativeRValue.Type, VarianceKind.None);
SymbolDisplay\SymbolDisplayVisitor.Types.cs (2)
767case VarianceKind.In: 771case VarianceKind.Out:
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.TypeParameterSymbol.cs (2)
113public override VarianceKind Variance 115get { return VarianceKind.None; }
Symbols\ArrayTypeSymbol.cs (1)
411internal override TypeSymbol MergeEquivalentTypes(TypeSymbol other, VarianceKind variance)
Symbols\DynamicTypeSymbol.cs (1)
231internal 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)
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)
597public override VarianceKind Variance 601return (VarianceKind)(_flags & GenericParameterAttributes.VarianceMask);
Symbols\NamedTypeSymbol.cs (16)
988internal override TypeSymbol MergeEquivalentTypes(TypeSymbol other, VarianceKind variance) 1027VarianceKind variance, 1052VarianceKind typeArgumentVariance = GetTypeArgumentVariance(variance, isTuple ? VarianceKind.Out : typeParameters[i].Variance); 1068variance = VarianceKind.None; 1074private static VarianceKind GetTypeArgumentVariance(VarianceKind typeVariance, VarianceKind typeParameterVariance) 1078case VarianceKind.In: 1081case VarianceKind.In: 1082return VarianceKind.Out; 1083case VarianceKind.Out: 1084return VarianceKind.In; 1086return VarianceKind.None; 1088case VarianceKind.Out: 1091return 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)
611mergedConstraintTypes[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)
237public override VarianceKind Variance => VarianceKind.None;
Symbols\SynthesizedSimpleMethodTypeParameterSymbol.cs (2)
86public override VarianceKind Variance 88get { return VarianceKind.None; }
Symbols\TypeParameterSymbol.cs (2)
643public abstract VarianceKind Variance { get; } 696internal override TypeSymbol MergeEquivalentTypes(TypeSymbol other, VarianceKind variance)
Symbols\TypeSymbol.cs (1)
651internal 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.Semantic.UnitTests (5)
Semantics\DelegateTypeTests.cs (5)
15605Assert.Equal(functionTypeStringNullable, functionTypeStringNullable.MergeEquivalentTypes(functionTypeStringNullable, VarianceKind.Out)); 15606Assert.Equal(functionTypeStringNullable, functionTypeStringNullable.MergeEquivalentTypes(functionTypeStringNotNullable, VarianceKind.Out)); 15607Assert.Equal(functionTypeStringNullable, functionTypeStringNotNullable.MergeEquivalentTypes(functionTypeStringNullable, VarianceKind.Out)); 15608Assert.Equal(functionTypeStringNotNullable, functionTypeStringNotNullable.MergeEquivalentTypes(functionTypeStringNotNullable, VarianceKind.Out)); 15609Assert.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;