178 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)
434public override ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds() => ImmutableArray<TypeParameterConstraintKind>.Empty;
Symbols\Source\LocalFunctionSymbol.cs (2)
29private ImmutableArray<TypeParameterConstraintKind> _lazyTypeParameterConstraintKinds; 531public override ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds()
Symbols\Source\SourceConstructorSymbolBase.cs (2)
148public sealed override ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds() 149=> ImmutableArray<TypeParameterConstraintKind>.Empty;
Symbols\Source\SourceDelegateMethodSymbol.cs (2)
159public override ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds() 160=> ImmutableArray<TypeParameterConstraintKind>.Empty;
Symbols\Source\SourceDestructorSymbol.cs (2)
121public override ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds() 122=> ImmutableArray<TypeParameterConstraintKind>.Empty;
Symbols\Source\SourceEventAccessorSymbol.cs (2)
194public sealed override ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds() 195=> ImmutableArray<TypeParameterConstraintKind>.Empty;
Symbols\Source\SourceMethodSymbol.cs (1)
30public abstract ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds();
Symbols\Source\SourceNamedTypeSymbol.cs (38)
302internal TypeParameterConstraintKind GetTypeParameterConstraintKind(int ordinal) 305return (constraintKinds.Length > 0) ? constraintKinds[ordinal] : TypeParameterConstraintKind.None; 308private ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds() 402private ImmutableArray<TypeParameterConstraintKind> MakeTypeParameterConstraintKinds() 461if (results.All(clause => clause.Constraints == TypeParameterConstraintKind.None)) 523bool report = (GetTypeParameterConstraintKind(i) & TypeParameterConstraintKind.PartialMismatch) != 0; 670TypeParameterConstraintKind mergedKind = constraint.Constraints; 680Debug.Assert((constraint.Constraints & (TypeParameterConstraintKind.AllNonNullableKinds | TypeParameterConstraintKind.NotNull)) == 681(mergedKind & (TypeParameterConstraintKind.AllNonNullableKinds | TypeParameterConstraintKind.NotNull))); 682Debug.Assert((mergedKind & TypeParameterConstraintKind.ObliviousNullabilityIfReferenceType) == 0 || 683(constraint.Constraints & TypeParameterConstraintKind.ObliviousNullabilityIfReferenceType) != 0); 684Debug.Assert((constraint.Constraints & TypeParameterConstraintKind.AllReferenceTypeKinds) == (mergedKind & TypeParameterConstraintKind.AllReferenceTypeKinds) || 685(constraint.Constraints & TypeParameterConstraintKind.AllReferenceTypeKinds) == TypeParameterConstraintKind.ReferenceType); 704static void mergeConstraints(ref TypeParameterConstraintKind mergedKind, ImmutableArray<TypeWithAnnotations> originalConstraintTypes, TypeParameterConstraintClause clause) 706if ((mergedKind & (TypeParameterConstraintKind.AllNonNullableKinds | TypeParameterConstraintKind.NotNull)) != (clause.Constraints & (TypeParameterConstraintKind.AllNonNullableKinds | TypeParameterConstraintKind.NotNull))) 708mergedKind |= TypeParameterConstraintKind.PartialMismatch; 711if ((mergedKind & TypeParameterConstraintKind.ReferenceType) != 0 && (clause.Constraints & TypeParameterConstraintKind.ReferenceType) != 0) 714TypeParameterConstraintKind clause1Constraints = mergedKind & TypeParameterConstraintKind.AllReferenceTypeKinds; 715TypeParameterConstraintKind clause2Constraints = clause.Constraints & TypeParameterConstraintKind.AllReferenceTypeKinds; 718if (clause1Constraints == TypeParameterConstraintKind.ReferenceType) // Oblivious 721mergedKind = (mergedKind & (~TypeParameterConstraintKind.AllReferenceTypeKinds)) | clause2Constraints; 723else if (clause2Constraints != TypeParameterConstraintKind.ReferenceType) 726mergedKind |= TypeParameterConstraintKind.PartialMismatch; 734if (((mergedKind | clause.Constraints) & ~(TypeParameterConstraintKind.ObliviousNullabilityIfReferenceType | TypeParameterConstraintKind.Constructor)) == 0 && 735(mergedKind & TypeParameterConstraintKind.ObliviousNullabilityIfReferenceType) != 0 && // 'object~' 736(clause.Constraints & TypeParameterConstraintKind.ObliviousNullabilityIfReferenceType) == 0) // 'object?' 739mergedKind &= ~TypeParameterConstraintKind.ObliviousNullabilityIfReferenceType;
Symbols\Source\SourceOrdinaryMethodSymbol.cs (11)
196(args.declaredConstraints[typeParameterSymbol.Ordinal].Constraints & (TypeParameterConstraintKind.ReferenceType | TypeParameterConstraintKind.Default)) == 0; 678switch (declaredConstraints[i].Constraints & (TypeParameterConstraintKind.ReferenceType | TypeParameterConstraintKind.ValueType | TypeParameterConstraintKind.Default)) 680case TypeParameterConstraintKind.ReferenceType: 687case TypeParameterConstraintKind.ValueType: 694case TypeParameterConstraintKind.Default: 990public sealed override ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds() 991=> ImmutableArray<TypeParameterConstraintKind>.Empty; 1104public sealed override ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds()
Symbols\Source\SourcePropertyAccessorSymbol.cs (2)
373public sealed override ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds() 374=> ImmutableArray<TypeParameterConstraintKind>.Empty;
Symbols\Source\SourceTypeParameterSymbol.cs (44)
431protected bool? CalculateReferenceTypeConstraintIsNullable(TypeParameterConstraintKind constraints) 433if ((constraints & TypeParameterConstraintKind.ReferenceType) == 0) 438switch (constraints & TypeParameterConstraintKind.AllReferenceTypeKinds) 440case TypeParameterConstraintKind.NullableReferenceType: 442case TypeParameterConstraintKind.NotNullableReferenceType: 484var constraints = this.GetConstraintKinds(); 485return (constraints & TypeParameterConstraintKind.Constructor) != 0; 493var constraints = this.GetConstraintKinds(); 494return (constraints & TypeParameterConstraintKind.AllValueTypeKinds) != 0; 502var constraints = this.GetConstraintKinds(); 503return (constraints & TypeParameterConstraintKind.AllowByRefLike) != 0; 512var constraints = this.GetConstraintKinds(); 513return (constraints & TypeParameterConstraintKind.ValueTypeFromConstraintTypes) != 0; 521var constraints = this.GetConstraintKinds(); 522return (constraints & TypeParameterConstraintKind.ReferenceType) != 0; 530var constraints = this.GetConstraintKinds(); 531return (constraints & TypeParameterConstraintKind.ReferenceTypeFromConstraintTypes) != 0; 547var constraints = this.GetConstraintKinds(); 548return (constraints & TypeParameterConstraintKind.NotNull) != 0; 556if ((this.GetConstraintKinds() & TypeParameterConstraintKind.ObliviousNullabilityIfReferenceType) != 0) 569var constraints = this.GetConstraintKinds(); 570return (constraints & TypeParameterConstraintKind.Unmanaged) != 0; 582if (constraintTypes.IsEmpty && GetConstraintKinds() == TypeParameterConstraintKind.None) 590private TypeParameterConstraintKind GetConstraintKinds() 665var constraints = this.GetConstraintKinds(); 666return (constraints & TypeParameterConstraintKind.Constructor) != 0; 674var constraints = this.GetConstraintKinds(); 675return (constraints & TypeParameterConstraintKind.AllValueTypeKinds) != 0; 683var constraints = this.GetConstraintKinds(); 684return (constraints & TypeParameterConstraintKind.AllowByRefLike) != 0; 693var constraints = this.GetConstraintKinds(); 694return (constraints & TypeParameterConstraintKind.ValueTypeFromConstraintTypes) != 0; 702var constraints = this.GetConstraintKinds(); 703return (constraints & TypeParameterConstraintKind.ReferenceType) != 0; 711var constraints = this.GetConstraintKinds(); 712return (constraints & TypeParameterConstraintKind.ReferenceTypeFromConstraintTypes) != 0; 720var constraints = this.GetConstraintKinds(); 721return (constraints & TypeParameterConstraintKind.NotNull) != 0; 737if ((this.GetConstraintKinds() & TypeParameterConstraintKind.ObliviousNullabilityIfReferenceType) != 0) 750var constraints = this.GetConstraintKinds(); 751return (constraints & TypeParameterConstraintKind.Unmanaged) != 0; 760if (constraintTypes.IsEmpty && GetConstraintKinds() == TypeParameterConstraintKind.None) 768private TypeParameterConstraintKind GetConstraintKinds() 771return 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)
220public override ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds() 221=> ImmutableArray<TypeParameterConstraintKind>.Empty;