3 instantiations of TypeParameterConstraintClause
Microsoft.CodeAnalysis.CSharp (3)
Symbols\Source\TypeParameterConstraintClause.cs (3)
74internal static readonly TypeParameterConstraintClause Empty = new TypeParameterConstraintClause( 78internal static readonly TypeParameterConstraintClause ObliviousNullabilityIfReferenceType = new TypeParameterConstraintClause( 99return new TypeParameterConstraintClause(constraints, constraintTypes);
64 references to TypeParameterConstraintClause
Microsoft.CodeAnalysis.CSharp (64)
Binder\Binder_Constraints.cs (14)
23internal ImmutableArray<TypeParameterConstraintClause> BindTypeParameterConstraintClauses( 54var results = ArrayBuilder<TypeParameterConstraintClause?>.GetInstance(n, fillWithValue: null); 68(TypeParameterConstraintClause constraintClause, ArrayBuilder<TypeConstraintSyntax>? typeConstraintNodes) = this.BindTypeParameterConstraints(typeParameterList.Parameters[ordinal], clause, isForOverride, diagnostics); 117private (TypeParameterConstraintClause, ArrayBuilder<TypeConstraintSyntax>?) BindTypeParameterConstraints( 347return (TypeParameterConstraintClause.Create(constraints, constraintTypes?.ToImmutableAndFree() ?? ImmutableArray<TypeWithAnnotations>.Empty), syntaxBuilder); 364internal ImmutableArray<TypeParameterConstraintClause> GetDefaultTypeParameterConstraintClauses(TypeParameterListSyntax typeParameterList) 366var builder = ArrayBuilder<TypeParameterConstraintClause>.GetInstance(typeParameterList.Parameters.Count); 376private TypeParameterConstraintClause GetDefaultTypeParameterConstraintClause(TypeParameterSyntax typeParameterSyntax, bool isForOverride = false) 378return isForOverride || AreNullableAnnotationsEnabled(typeParameterSyntax.Identifier) ? TypeParameterConstraintClause.Empty : TypeParameterConstraintClause.ObliviousNullabilityIfReferenceType; 386ArrayBuilder<TypeParameterConstraintClause> constraintClauses, 400private static TypeParameterConstraintClause RemoveInvalidConstraints( 402TypeParameterConstraintClause constraintClause, 436return 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)
316var results = ImmutableArray<TypeParameterConstraintClause>.Empty; 322ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>> otherPartialClauses = null; 336ImmutableArray<TypeParameterConstraintClause> constraints; 364(otherPartialClauses ??= ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>>.GetInstance()).Add(constraints); 372results = ImmutableArray<TypeParameterConstraintClause>.Empty; 397var results = ImmutableArray<TypeParameterConstraintClause>.Empty; 403ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>> otherPartialClauses = null; 417ImmutableArray<TypeParameterConstraintClause> constraints; 446(otherPartialClauses ??= ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>>.GetInstance()).Add(constraints); 455results = ImmutableArray<TypeParameterConstraintClause>.Empty; 488private ImmutableArray<TypeParameterConstraintClause> MergeConstraintTypesForPartialDeclarations(ImmutableArray<TypeParameterConstraintClause> constraintClauses, 489ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>> otherPartialClauses, 497ArrayBuilder<TypeParameterConstraintClause> builder = null; 505var constraint = constraintClauses[i]; 514foreach (ImmutableArray<TypeParameterConstraintClause> otherPartialConstraints in otherPartialClauses) 540builder = ArrayBuilder<TypeParameterConstraintClause>.GetInstance(constraintClauses.Length); 544builder[i] = TypeParameterConstraintClause.Create(constraint.Constraints, 558TypeParameterConstraintClause clause) 642private ImmutableArray<TypeParameterConstraintClause> MergeConstraintKindsForPartialDeclarations(ImmutableArray<TypeParameterConstraintClause> constraintClauses, 643ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>> otherPartialClauses) 650ArrayBuilder<TypeParameterConstraintClause> builder = null; 658var constraint = constraintClauses[i]; 663foreach (ImmutableArray<TypeParameterConstraintClause> otherPartialConstraints in otherPartialClauses) 679builder = ArrayBuilder<TypeParameterConstraintClause>.GetInstance(constraintClauses.Length); 683builder[i] = TypeParameterConstraintClause.Create(mergedKind, originalConstraintTypes); 694static void mergeConstraints(ref TypeParameterConstraintKind mergedKind, ImmutableArray<TypeWithAnnotations> originalConstraintTypes, TypeParameterConstraintClause clause)
Symbols\Source\SourceOrdinaryMethodSymbol.cs (3)
113private (TypeWithAnnotations ReturnType, ImmutableArray<ParameterSymbol> Parameters, ImmutableArray<TypeParameterConstraintClause> DeclaredConstraintsForOverrideOrImplementation) MakeParametersAndBindReturnType(BindingDiagnosticBag diagnostics) 155ImmutableArray<TypeParameterConstraintClause> declaredConstraints = default; 187static void forceMethodTypeParameters(TypeWithAnnotations type, SourceOrdinaryMethodSymbol method, ImmutableArray<TypeParameterConstraintClause> declaredConstraints)
Symbols\Source\TypeParameterConstraintClause.cs (9)
74internal static readonly TypeParameterConstraintClause Empty = new TypeParameterConstraintClause( 78internal static readonly TypeParameterConstraintClause ObliviousNullabilityIfReferenceType = new TypeParameterConstraintClause( 82internal static TypeParameterConstraintClause Create( 134ImmutableArray<TypeParameterConstraintClause> constraintClauses) 147static bool isValueType(TypeParameterSymbol thisTypeParameter, ImmutableArray<TypeParameterConstraintClause> constraintClauses, SmallDictionary<TypeParameterSymbol, bool> isValueTypeMap, ConsList<TypeParameterSymbol> inProgress) 159TypeParameterConstraintClause constraintClause = constraintClauses[thisTypeParameter.Ordinal]; 199ImmutableArray<TypeParameterConstraintClause> constraintClauses) 212static bool isReferenceTypeFromConstraintTypes(TypeParameterSymbol thisTypeParameter, ImmutableArray<TypeParameterConstraintClause> constraintClauses, 225TypeParameterConstraintClause constraintClause = constraintClauses[thisTypeParameter.Ordinal];