180 references to TypeParameterConstraintKind
Microsoft.CodeAnalysis.CSharp (178)
Binder\Binder_Constraints.cs (28)
121var constraints = TypeParameterConstraintKind.None; 144if (isForOverride && (constraints & (TypeParameterConstraintKind.ValueType | TypeParameterConstraintKind.ReferenceType)) != 0) 154constraints |= TypeParameterConstraintKind.NullableReferenceType; 167constraints |= TypeParameterConstraintKind.NotNullableReferenceType; 171constraints |= TypeParameterConstraintKind.ReferenceType; 185if (isForOverride && (constraints & (TypeParameterConstraintKind.ValueType | TypeParameterConstraintKind.ReferenceType)) != 0) 191constraints |= TypeParameterConstraintKind.ValueType; 200if ((constraints & TypeParameterConstraintKind.ValueType) != 0) 204if ((constraints & TypeParameterConstraintKind.Unmanaged) != 0) 214constraints |= TypeParameterConstraintKind.Constructor; 231if (isForOverride && (constraints & (TypeParameterConstraintKind.ValueType | TypeParameterConstraintKind.ReferenceType)) != 0) 237constraints |= TypeParameterConstraintKind.Default; 272constraints |= TypeParameterConstraintKind.Unmanaged; 281constraints |= TypeParameterConstraintKind.NotNull; 327constraints |= TypeParameterConstraintKind.AllowByRefLike; 342constraints |= TypeParameterConstraintKind.ObliviousNullabilityIfReferenceType; 346(constraints & (TypeParameterConstraintKind.ReferenceType | TypeParameterConstraintKind.ValueType)) != (TypeParameterConstraintKind.ReferenceType | TypeParameterConstraintKind.ValueType)); 487TypeParameterConstraintKind constraints, 518if ((constraints & (TypeParameterConstraintKind.ReferenceType)) != 0) 535if ((constraints & TypeParameterConstraintKind.ValueType) != 0) 541else if ((constraints & TypeParameterConstraintKind.Unmanaged) != 0)
Lowering\SynthesizedMethodBaseSymbol.cs (2)
84public sealed override ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds() 85=> ImmutableArray<TypeParameterConstraintKind>.Empty;
Symbols\ConstraintsHelper.cs (10)
374internal static ImmutableArray<TypeParameterConstraintKind> MakeTypeParameterConstraintKinds( 383return ImmutableArray<TypeParameterConstraintKind>.Empty; 407if (clauses.All(clause => clause.Constraints == TypeParameterConstraintKind.None)) 409return ImmutableArray<TypeParameterConstraintKind>.Empty; 429TypeParameterConstraintKind constraintKind = constraint.Constraints; 431Debug.Assert((constraintKind & (TypeParameterConstraintKind.ValueTypeFromConstraintTypes | TypeParameterConstraintKind.ReferenceTypeFromConstraintTypes)) == 0); 433if ((constraintKind & TypeParameterConstraintKind.AllValueTypeKinds) == 0 && isValueTypeMap[typeParameter]) 435constraintKind |= TypeParameterConstraintKind.ValueTypeFromConstraintTypes; 440constraintKind |= TypeParameterConstraintKind.ReferenceTypeFromConstraintTypes;
Symbols\Source\LambdaSymbol.cs (2)
415public override ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds() => ImmutableArray<TypeParameterConstraintKind>.Empty;
Symbols\Source\LocalFunctionSymbol.cs (2)
29private ImmutableArray<TypeParameterConstraintKind> _lazyTypeParameterConstraintKinds; 506public override ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds()
Symbols\Source\SourceConstructorSymbolBase.cs (2)
148public sealed override ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds() 149=> ImmutableArray<TypeParameterConstraintKind>.Empty;
Symbols\Source\SourceDelegateMethodSymbol.cs (2)
156public override ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds() 157=> ImmutableArray<TypeParameterConstraintKind>.Empty;
Symbols\Source\SourceDestructorSymbol.cs (2)
118public override ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds() 119=> ImmutableArray<TypeParameterConstraintKind>.Empty;
Symbols\Source\SourceEventAccessorSymbol.cs (2)
194public sealed override ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds() 195=> ImmutableArray<TypeParameterConstraintKind>.Empty;
Symbols\Source\SourceMethodSymbol.cs (1)
32public abstract ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds();
Symbols\Source\SourceNamedTypeSymbol.cs (38)
298internal TypeParameterConstraintKind GetTypeParameterConstraintKind(int ordinal) 301return (constraintKinds.Length > 0) ? constraintKinds[ordinal] : TypeParameterConstraintKind.None; 304private ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds() 398private ImmutableArray<TypeParameterConstraintKind> MakeTypeParameterConstraintKinds() 457if (results.All(clause => clause.Constraints == TypeParameterConstraintKind.None)) 518bool report = (GetTypeParameterConstraintKind(i) & TypeParameterConstraintKind.PartialMismatch) != 0; 665TypeParameterConstraintKind mergedKind = constraint.Constraints; 675Debug.Assert((constraint.Constraints & (TypeParameterConstraintKind.AllNonNullableKinds | TypeParameterConstraintKind.NotNull)) == 676(mergedKind & (TypeParameterConstraintKind.AllNonNullableKinds | TypeParameterConstraintKind.NotNull))); 677Debug.Assert((mergedKind & TypeParameterConstraintKind.ObliviousNullabilityIfReferenceType) == 0 || 678(constraint.Constraints & TypeParameterConstraintKind.ObliviousNullabilityIfReferenceType) != 0); 679Debug.Assert((constraint.Constraints & TypeParameterConstraintKind.AllReferenceTypeKinds) == (mergedKind & TypeParameterConstraintKind.AllReferenceTypeKinds) || 680(constraint.Constraints & TypeParameterConstraintKind.AllReferenceTypeKinds) == TypeParameterConstraintKind.ReferenceType); 699static void mergeConstraints(ref TypeParameterConstraintKind mergedKind, ImmutableArray<TypeWithAnnotations> originalConstraintTypes, TypeParameterConstraintClause clause) 701if ((mergedKind & (TypeParameterConstraintKind.AllNonNullableKinds | TypeParameterConstraintKind.NotNull)) != (clause.Constraints & (TypeParameterConstraintKind.AllNonNullableKinds | TypeParameterConstraintKind.NotNull))) 703mergedKind |= TypeParameterConstraintKind.PartialMismatch; 706if ((mergedKind & TypeParameterConstraintKind.ReferenceType) != 0 && (clause.Constraints & TypeParameterConstraintKind.ReferenceType) != 0) 709TypeParameterConstraintKind clause1Constraints = mergedKind & TypeParameterConstraintKind.AllReferenceTypeKinds; 710TypeParameterConstraintKind clause2Constraints = clause.Constraints & TypeParameterConstraintKind.AllReferenceTypeKinds; 713if (clause1Constraints == TypeParameterConstraintKind.ReferenceType) // Oblivious 716mergedKind = (mergedKind & (~TypeParameterConstraintKind.AllReferenceTypeKinds)) | clause2Constraints; 718else if (clause2Constraints != TypeParameterConstraintKind.ReferenceType) 721mergedKind |= TypeParameterConstraintKind.PartialMismatch; 729if (((mergedKind | clause.Constraints) & ~(TypeParameterConstraintKind.ObliviousNullabilityIfReferenceType | TypeParameterConstraintKind.Constructor)) == 0 && 730(mergedKind & TypeParameterConstraintKind.ObliviousNullabilityIfReferenceType) != 0 && // 'object~' 731(clause.Constraints & TypeParameterConstraintKind.ObliviousNullabilityIfReferenceType) == 0) // 'object?' 734mergedKind &= ~TypeParameterConstraintKind.ObliviousNullabilityIfReferenceType;
Symbols\Source\SourceOrdinaryMethodSymbol.cs (11)
195(args.declaredConstraints[typeParameterSymbol.Ordinal].Constraints & (TypeParameterConstraintKind.ReferenceType | TypeParameterConstraintKind.Default)) == 0; 658switch (declaredConstraints[i].Constraints & (TypeParameterConstraintKind.ReferenceType | TypeParameterConstraintKind.ValueType | TypeParameterConstraintKind.Default)) 660case TypeParameterConstraintKind.ReferenceType: 667case TypeParameterConstraintKind.ValueType: 674case TypeParameterConstraintKind.Default: 970public sealed override ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds() 971=> ImmutableArray<TypeParameterConstraintKind>.Empty; 1084public sealed override ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds()
Symbols\Source\SourcePropertyAccessorSymbol.cs (2)
343public sealed override ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds() 344=> ImmutableArray<TypeParameterConstraintKind>.Empty;
Symbols\Source\SourceTypeParameterSymbol.cs (44)
441protected bool? CalculateReferenceTypeConstraintIsNullable(TypeParameterConstraintKind constraints) 443if ((constraints & TypeParameterConstraintKind.ReferenceType) == 0) 448switch (constraints & TypeParameterConstraintKind.AllReferenceTypeKinds) 450case TypeParameterConstraintKind.NullableReferenceType: 452case TypeParameterConstraintKind.NotNullableReferenceType: 494var constraints = this.GetConstraintKinds(); 495return (constraints & TypeParameterConstraintKind.Constructor) != 0; 503var constraints = this.GetConstraintKinds(); 504return (constraints & TypeParameterConstraintKind.AllValueTypeKinds) != 0; 512var constraints = this.GetConstraintKinds(); 513return (constraints & TypeParameterConstraintKind.AllowByRefLike) != 0; 522var constraints = this.GetConstraintKinds(); 523return (constraints & TypeParameterConstraintKind.ValueTypeFromConstraintTypes) != 0; 531var constraints = this.GetConstraintKinds(); 532return (constraints & TypeParameterConstraintKind.ReferenceType) != 0; 540var constraints = this.GetConstraintKinds(); 541return (constraints & TypeParameterConstraintKind.ReferenceTypeFromConstraintTypes) != 0; 557var constraints = this.GetConstraintKinds(); 558return (constraints & TypeParameterConstraintKind.NotNull) != 0; 566if ((this.GetConstraintKinds() & TypeParameterConstraintKind.ObliviousNullabilityIfReferenceType) != 0) 579var constraints = this.GetConstraintKinds(); 580return (constraints & TypeParameterConstraintKind.Unmanaged) != 0; 592if (constraintTypes.IsEmpty && GetConstraintKinds() == TypeParameterConstraintKind.None) 600private TypeParameterConstraintKind GetConstraintKinds() 675var constraints = this.GetConstraintKinds(); 676return (constraints & TypeParameterConstraintKind.Constructor) != 0; 684var constraints = this.GetConstraintKinds(); 685return (constraints & TypeParameterConstraintKind.AllValueTypeKinds) != 0; 693var constraints = this.GetConstraintKinds(); 694return (constraints & TypeParameterConstraintKind.AllowByRefLike) != 0; 703var constraints = this.GetConstraintKinds(); 704return (constraints & TypeParameterConstraintKind.ValueTypeFromConstraintTypes) != 0; 712var constraints = this.GetConstraintKinds(); 713return (constraints & TypeParameterConstraintKind.ReferenceType) != 0; 721var constraints = this.GetConstraintKinds(); 722return (constraints & TypeParameterConstraintKind.ReferenceTypeFromConstraintTypes) != 0; 730var constraints = this.GetConstraintKinds(); 731return (constraints & TypeParameterConstraintKind.NotNull) != 0; 747if ((this.GetConstraintKinds() & TypeParameterConstraintKind.ObliviousNullabilityIfReferenceType) != 0) 760var constraints = this.GetConstraintKinds(); 761return (constraints & TypeParameterConstraintKind.Unmanaged) != 0; 770if (constraintTypes.IsEmpty && GetConstraintKinds() == TypeParameterConstraintKind.None) 778private TypeParameterConstraintKind GetConstraintKinds() 781return constraintKinds.IsEmpty ? TypeParameterConstraintKind.None : constraintKinds[Ordinal];
Symbols\Source\SourceUserDefinedOperatorSymbolBase.cs (2)
1006public sealed override ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds() 1007=> ImmutableArray<TypeParameterConstraintKind>.Empty;
Symbols\Source\SynthesizedSourceOrdinaryMethodSymbol.cs (2)
46public sealed override ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds() => ImmutableArray<TypeParameterConstraintKind>.Empty;
Symbols\Source\TypeParameterConstraintClause.cs (22)
43/// <see cref="TypeParameterConstraintKind"/> mismatch is detected during merging process for partial type declarations. 74TypeParameterConstraintKind.None, 78TypeParameterConstraintKind.ObliviousNullabilityIfReferenceType, 82TypeParameterConstraintKind constraints, 90case TypeParameterConstraintKind.None: 93case TypeParameterConstraintKind.ObliviousNullabilityIfReferenceType: 102TypeParameterConstraintKind constraints, 106switch (constraints & TypeParameterConstraintKind.AllReferenceTypeKinds) 108case TypeParameterConstraintKind.None: 109case TypeParameterConstraintKind.ReferenceType: 110case TypeParameterConstraintKind.NullableReferenceType: 111case TypeParameterConstraintKind.NotNullableReferenceType: 118Debug.Assert((constraints & TypeParameterConstraintKind.ObliviousNullabilityIfReferenceType) == 0 || 119(constraints & ~(TypeParameterConstraintKind.ObliviousNullabilityIfReferenceType | TypeParameterConstraintKind.Constructor | 120TypeParameterConstraintKind.Default | TypeParameterConstraintKind.PartialMismatch | 121TypeParameterConstraintKind.ValueTypeFromConstraintTypes | TypeParameterConstraintKind.ReferenceTypeFromConstraintTypes | 122TypeParameterConstraintKind.AllowByRefLike)) == 0); 128public readonly TypeParameterConstraintKind Constraints; 162if ((constraintClause.Constraints & TypeParameterConstraintKind.AllValueTypeKinds) != 0)
Symbols\Source\TypeParameterInfo.cs (2)
28public ImmutableArray<TypeParameterConstraintKind> LazyTypeParameterConstraintKinds; 34LazyTypeParameterConstraintKinds = ImmutableArray<TypeParameterConstraintKind>.Empty,
Symbols\Synthesized\SynthesizedSimpleProgramEntryPointSymbol.cs (2)
205public override ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds() 206=> ImmutableArray<TypeParameterConstraintKind>.Empty;
Microsoft.CodeAnalysis.CSharp.Test.Utilities (2)
CompilationTestUtils.cs (2)
171var constraints = TypeParameterConstraintKind.None; 189var constraints = TypeParameterConstraintKind.None;