3 instantiations of TypeParameterConstraintClause
Microsoft.CodeAnalysis.CSharp (3)
Symbols\Source\TypeParameterConstraintClause.cs (3)
73internal static readonly TypeParameterConstraintClause Empty = new TypeParameterConstraintClause( 77internal static readonly TypeParameterConstraintClause ObliviousNullabilityIfReferenceType = new TypeParameterConstraintClause( 98return new TypeParameterConstraintClause(constraints, constraintTypes);
64 references to TypeParameterConstraintClause
Microsoft.CodeAnalysis.CSharp (64)
Binder\Binder_Constraints.cs (14)
24internal ImmutableArray<TypeParameterConstraintClause> BindTypeParameterConstraintClauses( 55var results = ArrayBuilder<TypeParameterConstraintClause?>.GetInstance(n, fillWithValue: null); 69(TypeParameterConstraintClause constraintClause, ArrayBuilder<TypeConstraintSyntax>? typeConstraintNodes) = this.BindTypeParameterConstraints(typeParameterList.Parameters[ordinal], clause, isForOverride, diagnostics); 118private (TypeParameterConstraintClause, ArrayBuilder<TypeConstraintSyntax>?) BindTypeParameterConstraints( 348return (TypeParameterConstraintClause.Create(constraints, constraintTypes?.ToImmutableAndFree() ?? ImmutableArray<TypeWithAnnotations>.Empty), syntaxBuilder); 365internal ImmutableArray<TypeParameterConstraintClause> GetDefaultTypeParameterConstraintClauses(TypeParameterListSyntax typeParameterList) 367var builder = ArrayBuilder<TypeParameterConstraintClause>.GetInstance(typeParameterList.Parameters.Count); 377private TypeParameterConstraintClause GetDefaultTypeParameterConstraintClause(TypeParameterSyntax typeParameterSyntax, bool isForOverride = false) 379return isForOverride || AreNullableAnnotationsEnabled(typeParameterSyntax.Identifier) ? TypeParameterConstraintClause.Empty : TypeParameterConstraintClause.ObliviousNullabilityIfReferenceType; 387ArrayBuilder<TypeParameterConstraintClause> constraintClauses, 401private static TypeParameterConstraintClause RemoveInvalidConstraints( 403TypeParameterConstraintClause constraintClause, 437return TypeParameterConstraintClause.Create(constraintClause.Constraints, constraintTypeBuilder.ToImmutableAndFree());
Symbols\ConstraintsHelper.cs (10)
362ImmutableArray<TypeParameterConstraintClause> clauses; 386ImmutableArray<TypeParameterConstraintClause> clauses; 415internal static ImmutableArray<TypeParameterConstraintClause> AdjustConstraintKindsBasedOnConstraintTypes(ImmutableArray<TypeParameterSymbol> typeParameters, ImmutableArray<TypeParameterConstraintClause> constraintClauses) 421SmallDictionary<TypeParameterSymbol, bool> isValueTypeMap = TypeParameterConstraintClause.BuildIsValueTypeMap(typeParameters, constraintClauses); 422SmallDictionary<TypeParameterSymbol, bool> isReferenceTypeFromConstraintTypesMap = TypeParameterConstraintClause.BuildIsReferenceTypeFromConstraintTypesMap(typeParameters, constraintClauses); 423ArrayBuilder<TypeParameterConstraintClause> builder = null; 427var constraint = constraintClauses[i]; 447builder = ArrayBuilder<TypeParameterConstraintClause>.GetInstance(constraintClauses.Length); 451builder[i] = TypeParameterConstraintClause.Create(constraintKind, constraint.ConstraintTypes);
Symbols\Source\SourceNamedTypeSymbol.cs (28)
320var results = ImmutableArray<TypeParameterConstraintClause>.Empty; 326ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>> otherPartialClauses = null; 340ImmutableArray<TypeParameterConstraintClause> constraints; 368(otherPartialClauses ??= ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>>.GetInstance()).Add(constraints); 376results = ImmutableArray<TypeParameterConstraintClause>.Empty; 401var results = ImmutableArray<TypeParameterConstraintClause>.Empty; 407ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>> otherPartialClauses = null; 421ImmutableArray<TypeParameterConstraintClause> constraints; 450(otherPartialClauses ??= ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>>.GetInstance()).Add(constraints); 459results = ImmutableArray<TypeParameterConstraintClause>.Empty; 493private ImmutableArray<TypeParameterConstraintClause> MergeConstraintTypesForPartialDeclarations(ImmutableArray<TypeParameterConstraintClause> constraintClauses, 494ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>> otherPartialClauses, 502ArrayBuilder<TypeParameterConstraintClause> builder = null; 510var constraint = constraintClauses[i]; 519foreach (ImmutableArray<TypeParameterConstraintClause> otherPartialConstraints in otherPartialClauses) 545builder = ArrayBuilder<TypeParameterConstraintClause>.GetInstance(constraintClauses.Length); 549builder[i] = TypeParameterConstraintClause.Create(constraint.Constraints, 563TypeParameterConstraintClause clause) 647private ImmutableArray<TypeParameterConstraintClause> MergeConstraintKindsForPartialDeclarations(ImmutableArray<TypeParameterConstraintClause> constraintClauses, 648ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>> otherPartialClauses) 655ArrayBuilder<TypeParameterConstraintClause> builder = null; 663var constraint = constraintClauses[i]; 668foreach (ImmutableArray<TypeParameterConstraintClause> otherPartialConstraints in otherPartialClauses) 684builder = ArrayBuilder<TypeParameterConstraintClause>.GetInstance(constraintClauses.Length); 688builder[i] = TypeParameterConstraintClause.Create(mergedKind, originalConstraintTypes); 699static void mergeConstraints(ref TypeParameterConstraintKind mergedKind, ImmutableArray<TypeWithAnnotations> originalConstraintTypes, TypeParameterConstraintClause clause)
Symbols\Source\SourceOrdinaryMethodSymbol.cs (3)
114private (TypeWithAnnotations ReturnType, ImmutableArray<ParameterSymbol> Parameters, ImmutableArray<TypeParameterConstraintClause> DeclaredConstraintsForOverrideOrImplementation) MakeParametersAndBindReturnType(BindingDiagnosticBag diagnostics) 156ImmutableArray<TypeParameterConstraintClause> declaredConstraints = default; 188static void forceMethodTypeParameters(TypeWithAnnotations type, SourceOrdinaryMethodSymbol method, ImmutableArray<TypeParameterConstraintClause> declaredConstraints)
Symbols\Source\TypeParameterConstraintClause.cs (9)
73internal static readonly TypeParameterConstraintClause Empty = new TypeParameterConstraintClause( 77internal static readonly TypeParameterConstraintClause ObliviousNullabilityIfReferenceType = new TypeParameterConstraintClause( 81internal static TypeParameterConstraintClause Create( 133ImmutableArray<TypeParameterConstraintClause> constraintClauses) 146static bool isValueType(TypeParameterSymbol thisTypeParameter, ImmutableArray<TypeParameterConstraintClause> constraintClauses, SmallDictionary<TypeParameterSymbol, bool> isValueTypeMap, ConsList<TypeParameterSymbol> inProgress) 158TypeParameterConstraintClause constraintClause = constraintClauses[thisTypeParameter.Ordinal]; 198ImmutableArray<TypeParameterConstraintClause> constraintClauses) 211static bool isReferenceTypeFromConstraintTypes(TypeParameterSymbol thisTypeParameter, ImmutableArray<TypeParameterConstraintClause> constraintClauses, 224TypeParameterConstraintClause constraintClause = constraintClauses[thisTypeParameter.Ordinal];