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)
319var results = ImmutableArray<TypeParameterConstraintClause>.Empty; 325ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>> otherPartialClauses = null; 339ImmutableArray<TypeParameterConstraintClause> constraints; 367(otherPartialClauses ??= ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>>.GetInstance()).Add(constraints); 375results = ImmutableArray<TypeParameterConstraintClause>.Empty; 400var results = ImmutableArray<TypeParameterConstraintClause>.Empty; 406ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>> otherPartialClauses = null; 420ImmutableArray<TypeParameterConstraintClause> constraints; 449(otherPartialClauses ??= ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>>.GetInstance()).Add(constraints); 458results = ImmutableArray<TypeParameterConstraintClause>.Empty; 492private ImmutableArray<TypeParameterConstraintClause> MergeConstraintTypesForPartialDeclarations(ImmutableArray<TypeParameterConstraintClause> constraintClauses, 493ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>> otherPartialClauses, 501ArrayBuilder<TypeParameterConstraintClause> builder = null; 509var constraint = constraintClauses[i]; 518foreach (ImmutableArray<TypeParameterConstraintClause> otherPartialConstraints in otherPartialClauses) 544builder = ArrayBuilder<TypeParameterConstraintClause>.GetInstance(constraintClauses.Length); 548builder[i] = TypeParameterConstraintClause.Create(constraint.Constraints, 562TypeParameterConstraintClause clause) 646private ImmutableArray<TypeParameterConstraintClause> MergeConstraintKindsForPartialDeclarations(ImmutableArray<TypeParameterConstraintClause> constraintClauses, 647ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>> otherPartialClauses) 654ArrayBuilder<TypeParameterConstraintClause> builder = null; 662var constraint = constraintClauses[i]; 667foreach (ImmutableArray<TypeParameterConstraintClause> otherPartialConstraints in otherPartialClauses) 683builder = ArrayBuilder<TypeParameterConstraintClause>.GetInstance(constraintClauses.Length); 687builder[i] = TypeParameterConstraintClause.Create(mergedKind, originalConstraintTypes); 698static 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];