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)
321var results = ImmutableArray<TypeParameterConstraintClause>.Empty; 327ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>> otherPartialClauses = null; 341ImmutableArray<TypeParameterConstraintClause> constraints; 369(otherPartialClauses ??= ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>>.GetInstance()).Add(constraints); 377results = ImmutableArray<TypeParameterConstraintClause>.Empty; 402var results = ImmutableArray<TypeParameterConstraintClause>.Empty; 408ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>> otherPartialClauses = null; 422ImmutableArray<TypeParameterConstraintClause> constraints; 451(otherPartialClauses ??= ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>>.GetInstance()).Add(constraints); 460results = ImmutableArray<TypeParameterConstraintClause>.Empty; 494private ImmutableArray<TypeParameterConstraintClause> MergeConstraintTypesForPartialDeclarations(ImmutableArray<TypeParameterConstraintClause> constraintClauses, 495ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>> otherPartialClauses, 503ArrayBuilder<TypeParameterConstraintClause> builder = null; 511var constraint = constraintClauses[i]; 520foreach (ImmutableArray<TypeParameterConstraintClause> otherPartialConstraints in otherPartialClauses) 546builder = ArrayBuilder<TypeParameterConstraintClause>.GetInstance(constraintClauses.Length); 550builder[i] = TypeParameterConstraintClause.Create(constraint.Constraints, 564TypeParameterConstraintClause clause) 648private ImmutableArray<TypeParameterConstraintClause> MergeConstraintKindsForPartialDeclarations(ImmutableArray<TypeParameterConstraintClause> constraintClauses, 649ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>> otherPartialClauses) 656ArrayBuilder<TypeParameterConstraintClause> builder = null; 664var constraint = constraintClauses[i]; 669foreach (ImmutableArray<TypeParameterConstraintClause> otherPartialConstraints in otherPartialClauses) 685builder = ArrayBuilder<TypeParameterConstraintClause>.GetInstance(constraintClauses.Length); 689builder[i] = TypeParameterConstraintClause.Create(mergedKind, originalConstraintTypes); 700static void mergeConstraints(ref TypeParameterConstraintKind mergedKind, ImmutableArray<TypeWithAnnotations> originalConstraintTypes, TypeParameterConstraintClause clause)
Symbols\Source\SourceOrdinaryMethodSymbol.cs (3)
115private (TypeWithAnnotations ReturnType, ImmutableArray<ParameterSymbol> Parameters, ImmutableArray<TypeParameterConstraintClause> DeclaredConstraintsForOverrideOrImplementation) MakeParametersAndBindReturnType(BindingDiagnosticBag diagnostics) 157ImmutableArray<TypeParameterConstraintClause> declaredConstraints = default; 189static 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];