3 instantiations of TypeParameterConstraintClause
Microsoft.CodeAnalysis.CSharp (3)
Symbols\Source\TypeParameterConstraintClause.cs (3)
72internal static readonly TypeParameterConstraintClause Empty = new TypeParameterConstraintClause( 76internal static readonly TypeParameterConstraintClause ObliviousNullabilityIfReferenceType = new TypeParameterConstraintClause( 97return new TypeParameterConstraintClause(constraints, constraintTypes);
81 references to TypeParameterConstraintClause
Microsoft.CodeAnalysis.CSharp (81)
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( 306return (TypeParameterConstraintClause.Create(constraints, constraintTypes?.ToImmutableAndFree() ?? ImmutableArray<TypeWithAnnotations>.Empty), syntaxBuilder); 323internal ImmutableArray<TypeParameterConstraintClause> GetDefaultTypeParameterConstraintClauses(TypeParameterListSyntax typeParameterList) 325var builder = ArrayBuilder<TypeParameterConstraintClause>.GetInstance(typeParameterList.Parameters.Count); 335private TypeParameterConstraintClause GetDefaultTypeParameterConstraintClause(TypeParameterSyntax typeParameterSyntax, bool isForOverride = false) 337return isForOverride || AreNullableAnnotationsEnabled(typeParameterSyntax.Identifier) ? TypeParameterConstraintClause.Empty : TypeParameterConstraintClause.ObliviousNullabilityIfReferenceType; 345ArrayBuilder<TypeParameterConstraintClause> constraintClauses, 359private static TypeParameterConstraintClause RemoveInvalidConstraints( 361TypeParameterConstraintClause constraintClause, 395return TypeParameterConstraintClause.Create(constraintClause.Constraints, constraintTypeBuilder.ToImmutableAndFree());
Symbols\ConstraintsHelper.cs (10)
333ImmutableArray<TypeParameterConstraintClause> clauses; 357ImmutableArray<TypeParameterConstraintClause> clauses; 386internal static ImmutableArray<TypeParameterConstraintClause> AdjustConstraintKindsBasedOnConstraintTypes(ImmutableArray<TypeParameterSymbol> typeParameters, ImmutableArray<TypeParameterConstraintClause> constraintClauses) 392SmallDictionary<TypeParameterSymbol, bool> isValueTypeMap = TypeParameterConstraintClause.BuildIsValueTypeMap(typeParameters, constraintClauses); 393SmallDictionary<TypeParameterSymbol, bool> isReferenceTypeFromConstraintTypesMap = TypeParameterConstraintClause.BuildIsReferenceTypeFromConstraintTypesMap(typeParameters, constraintClauses); 394ArrayBuilder<TypeParameterConstraintClause> builder = null; 398var constraint = constraintClauses[i]; 418builder = ArrayBuilder<TypeParameterConstraintClause>.GetInstance(constraintClauses.Length); 422builder[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; 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)
122protected override (TypeWithAnnotations ReturnType, ImmutableArray<ParameterSymbol> Parameters, bool IsVararg, ImmutableArray<TypeParameterConstraintClause> DeclaredConstraintsForOverrideOrImplementation) MakeParametersAndBindReturnType(BindingDiagnosticBag diagnostics) 167ImmutableArray<TypeParameterConstraintClause> declaredConstraints = default; 199static void forceMethodTypeParameters(TypeWithAnnotations type, SourceOrdinaryMethodSymbol method, ImmutableArray<TypeParameterConstraintClause> declaredConstraints)
Symbols\Source\SourceOrdinaryMethodSymbolBase.cs (1)
131protected abstract (TypeWithAnnotations ReturnType, ImmutableArray<ParameterSymbol> Parameters, bool IsVararg, ImmutableArray<TypeParameterConstraintClause> DeclaredConstraintsForOverrideOrImplementation) MakeParametersAndBindReturnType(BindingDiagnosticBag diagnostics);
Symbols\Source\TypeParameterConstraintClause.cs (9)
72internal static readonly TypeParameterConstraintClause Empty = new TypeParameterConstraintClause( 76internal static readonly TypeParameterConstraintClause ObliviousNullabilityIfReferenceType = new TypeParameterConstraintClause( 80internal static TypeParameterConstraintClause Create( 130ImmutableArray<TypeParameterConstraintClause> constraintClauses) 143static bool isValueType(TypeParameterSymbol thisTypeParameter, ImmutableArray<TypeParameterConstraintClause> constraintClauses, SmallDictionary<TypeParameterSymbol, bool> isValueTypeMap, ConsList<TypeParameterSymbol> inProgress) 155TypeParameterConstraintClause constraintClause = constraintClauses[thisTypeParameter.Ordinal]; 195ImmutableArray<TypeParameterConstraintClause> constraintClauses) 208static bool isReferenceTypeFromConstraintTypes(TypeParameterSymbol thisTypeParameter, ImmutableArray<TypeParameterConstraintClause> constraintClauses, 221TypeParameterConstraintClause constraintClause = constraintClauses[thisTypeParameter.Ordinal];
Symbols\Synthesized\Records\SynthesizedRecordBaseEquals.cs (2)
32protected override (TypeWithAnnotations ReturnType, ImmutableArray<ParameterSymbol> Parameters, bool IsVararg, ImmutableArray<TypeParameterConstraintClause> DeclaredConstraintsForOverrideOrImplementation) MakeParametersAndBindReturnType(BindingDiagnosticBag diagnostics) 42DeclaredConstraintsForOverrideOrImplementation: ImmutableArray<TypeParameterConstraintClause>.Empty);
Symbols\Synthesized\Records\SynthesizedRecordClone.cs (2)
99protected override (TypeWithAnnotations ReturnType, ImmutableArray<ParameterSymbol> Parameters, bool IsVararg, ImmutableArray<TypeParameterConstraintClause> DeclaredConstraintsForOverrideOrImplementation) MakeParametersAndBindReturnType(BindingDiagnosticBag diagnostics) 106DeclaredConstraintsForOverrideOrImplementation: ImmutableArray<TypeParameterConstraintClause>.Empty);
Symbols\Synthesized\Records\SynthesizedRecordDeconstruct.cs (2)
38protected override (TypeWithAnnotations ReturnType, ImmutableArray<ParameterSymbol> Parameters, bool IsVararg, ImmutableArray<TypeParameterConstraintClause> DeclaredConstraintsForOverrideOrImplementation) MakeParametersAndBindReturnType(BindingDiagnosticBag diagnostics) 54DeclaredConstraintsForOverrideOrImplementation: ImmutableArray<TypeParameterConstraintClause>.Empty);
Symbols\Synthesized\Records\SynthesizedRecordEquals.cs (2)
35protected override (TypeWithAnnotations ReturnType, ImmutableArray<ParameterSymbol> Parameters, bool IsVararg, ImmutableArray<TypeParameterConstraintClause> DeclaredConstraintsForOverrideOrImplementation) 47DeclaredConstraintsForOverrideOrImplementation: ImmutableArray<TypeParameterConstraintClause>.Empty);
Symbols\Synthesized\Records\SynthesizedRecordGetHashCode.cs (2)
29protected override (TypeWithAnnotations ReturnType, ImmutableArray<ParameterSymbol> Parameters, bool IsVararg, ImmutableArray<TypeParameterConstraintClause> DeclaredConstraintsForOverrideOrImplementation) 37DeclaredConstraintsForOverrideOrImplementation: ImmutableArray<TypeParameterConstraintClause>.Empty);
Symbols\Synthesized\Records\SynthesizedRecordObjEquals.cs (2)
26protected override (TypeWithAnnotations ReturnType, ImmutableArray<ParameterSymbol> Parameters, bool IsVararg, ImmutableArray<TypeParameterConstraintClause> DeclaredConstraintsForOverrideOrImplementation) 38DeclaredConstraintsForOverrideOrImplementation: ImmutableArray<TypeParameterConstraintClause>.Empty);
Symbols\Synthesized\Records\SynthesizedRecordPrintMembers.cs (2)
88protected override (TypeWithAnnotations ReturnType, ImmutableArray<ParameterSymbol> Parameters, bool IsVararg, ImmutableArray<TypeParameterConstraintClause> DeclaredConstraintsForOverrideOrImplementation) MakeParametersAndBindReturnType(BindingDiagnosticBag diagnostics) 99DeclaredConstraintsForOverrideOrImplementation: ImmutableArray<TypeParameterConstraintClause>.Empty);
Symbols\Synthesized\Records\SynthesizedRecordToString.cs (2)
39protected override (TypeWithAnnotations ReturnType, ImmutableArray<ParameterSymbol> Parameters, bool IsVararg, ImmutableArray<TypeParameterConstraintClause> DeclaredConstraintsForOverrideOrImplementation) MakeParametersAndBindReturnType(BindingDiagnosticBag diagnostics) 47DeclaredConstraintsForOverrideOrImplementation: ImmutableArray<TypeParameterConstraintClause>.Empty);