10 types derived from TypeParameterSymbol
Microsoft.CodeAnalysis.CSharp (10)
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.TypeParameterSymbol.cs (1)
18internal sealed class AnonymousTypeParameterSymbol : TypeParameterSymbol
Symbols\ErrorTypeSymbol.ErrorTypeParameterSymbol.cs (1)
13protected sealed class ErrorTypeParameterSymbol : TypeParameterSymbol
Symbols\Metadata\PE\PETypeParameterSymbol.cs (1)
26: TypeParameterSymbol
Symbols\Source\CrefTypeParameterSymbol.cs (1)
65internal sealed class CrefTypeParameterSymbol : TypeParameterSymbol
Symbols\Source\IndexedTypeParameterSymbol.cs (1)
27internal sealed class IndexedTypeParameterSymbol : TypeParameterSymbol
Symbols\Source\SourceTypeParameterSymbol.cs (1)
24internal abstract class SourceTypeParameterSymbol : TypeParameterSymbol, IAttributeTargetSymbol
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListTypeParameterSymbol.cs (1)
11internal sealed class SynthesizedReadOnlyListTypeParameterSymbol : TypeParameterSymbol
Symbols\Synthesized\SynthesizedInlineArrayTypeSymbol.cs (1)
217private sealed class InlineArrayTypeParameterSymbol : TypeParameterSymbol
Symbols\SynthesizedSimpleMethodTypeParameterSymbol.cs (1)
14internal sealed class SynthesizedSimpleMethodTypeParameterSymbol : TypeParameterSymbol
Symbols\Wrapped\WrappedTypeParameterSymbol.cs (1)
24: TypeParameterSymbol
782 references to TypeParameterSymbol
Microsoft.CodeAnalysis.CSharp (782)
Binder\Binder.ValueChecks.cs (5)
2800if (receiver.Type is TypeParameterSymbol typeParameter) 3382private readonly TypeParameterSymbol _type; 3385internal TypeParameterThisParameterSymbol(ParameterSymbol underlyingParameter, TypeParameterSymbol type) 5751ImmutableArray<TypeParameterSymbol>.Empty, 5791ImmutableArray<TypeParameterSymbol>.Empty,
Binder\Binder_Constraints.cs (7)
26ImmutableArray<TypeParameterSymbol> typeParameters, 45foreach (var typeParameter in typeParameters) 386ImmutableArray<TypeParameterSymbol> typeParameters, 402TypeParameterSymbol typeParameter, 484TypeParameterSymbol typeParameter, 554static bool isValidConstraintType(TypeParameterSymbol typeParameter, TypeConstraintSyntax syntax, TypeWithAnnotations typeWithAnnotations, bool performOnlyCycleSafeValidation, BindingDiagnosticBag diagnostics) 557typeWithAnnotations.DefaultType is TypeParameterSymbol typeParameterInConstraint && typeParameterInConstraint.ContainingSymbol == (object)typeParameter.ContainingSymbol)
Binder\Binder_Conversions.cs (5)
482Debug.Assert(conversion.ConstrainedToTypeOpt is TypeParameterSymbol); 657method.Parameters[0].Type is ArrayTypeSymbol { IsSZArray: true, ElementType: TypeParameterSymbol }); 863return binder.BindTypeParameterCreationExpression(syntax, (TypeParameterSymbol)type, arguments, initializerOpt, typeSyntax: syntax, wasTargetTyped: true, diagnostics); 1119else if (@this._targetType is TypeParameterSymbol typeParameter) 1757else if (targetType is TypeParameterSymbol typeParameter)
Binder\Binder_Expressions.cs (6)
1563Debug.Assert(symbol is null or LocalSymbol or LocalFunctionSymbol or RangeVariableSymbol or TypeParameterSymbol); 5309return BindTypeParameterCreationExpression(node, (TypeParameterSymbol)type, diagnostics); 7233private BoundExpression BindTypeParameterCreationExpression(ObjectCreationExpressionSyntax node, TypeParameterSymbol typeParameter, BindingDiagnosticBag diagnostics) 7243private static bool TypeParameterHasParameterlessConstructor(SyntaxNode node, TypeParameterSymbol typeParameter, BindingDiagnosticBag diagnostics) 7255SyntaxNode node, TypeParameterSymbol typeParameter, AnalyzedArguments analyzedArguments, InitializerExpressionSyntax? initializerOpt, 9350if (receiverOpt is { Type: TypeParameterSymbol { AllowsRefLikeType: true } } &&
Binder\Binder_Lookup.cs (4)
229this.LookupMembersInTypeParameter(result, (TypeParameterSymbol)type, name, arity, basesBeingResolved, options, originalBinder, diagnose, ref useSiteInfo); 1214private void LookupMembersInTypeParameter(LookupResult current, TypeParameterSymbol typeParameter, string name, int arity, ConsList<TypeSymbol> basesBeingResolved, LookupOptions options, Binder originalBinder, bool diagnose, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 1918this.AddMemberLookupSymbolsInfoInTypeParameter(result, (TypeParameterSymbol)type, options, originalBinder); 2083private void AddMemberLookupSymbolsInfoInTypeParameter(LookupSymbolsInfo result, TypeParameterSymbol type, LookupOptions options, Binder originalBinder)
Binder\Binder_NameConflicts.cs (5)
28ImmutableArray<TypeParameterSymbol> typeParameters, 33PooledDictionary<string, TypeParameterSymbol>? tpNames = null; 36tpNames = PooledDictionary<string, TypeParameterSymbol>.GetInstance(); 37foreach (var tp in typeParameters) 68if (tpNames != null && tpNames.TryGetValue(name, out TypeParameterSymbol? tp))
Binder\Binder_Operators.cs (10)
838Debug.Assert(left.Type is not TypeParameterSymbol); 1343case (BoundKind.DefaultLiteral, _) when right.Type is TypeParameterSymbol: 1347case (_, BoundKind.DefaultLiteral) when left.Type is TypeParameterSymbol: 4000if (constrainedToTypeOpt is not TypeParameterSymbol) 5199if (targetType is TypeParameterSymbol { AllowsRefLikeType: true }) 5206else if (operandType is not TypeParameterSymbol { AllowsRefLikeType: true }) 5210if (operandType is TypeParameterSymbol) 5212Debug.Assert(operandType is TypeParameterSymbol { AllowsRefLikeType: false }); 5218if (targetType is TypeParameterSymbol) 5220Debug.Assert(targetType is TypeParameterSymbol { AllowsRefLikeType: false });
Binder\Binder_Patterns.cs (1)
958var interfaces = inputType is TypeParameterSymbol typeParam ? typeParam.EffectiveInterfacesNoUseSiteDiagnostics : inputType.AllInterfacesNoUseSiteDiagnostics;
Binder\Binder_Unsafe.cs (3)
61var typeParameter = typeParameters[i]; 77var typeParameter = typeSymbol.TypeParameters[i]; 89static void checkTypeArgumentWithConstructorConstraint(Binder @this, TypeParameterSymbol typeParameter, NamedTypeSymbol typeArgument, Symbol targetSymbol, T arg, Func<T, Location?> location, DiagnosticBag diagnostics)
Binder\Binder_WithExpression.cs (1)
42cloneMethod = SynthesizedRecordClone.FindValidCloneMethod(receiverType is TypeParameterSymbol typeParameter ? typeParameter.EffectiveBaseClass(ref useSiteInfo) : receiverType, ref useSiteInfo);
Binder\BinderFactory.BinderFactoryVisitor.cs (1)
1372ImmutableArray<TypeParameterSymbol> typeParameters = delegateType.TypeParameters;
Binder\ForEachLoopBinder.cs (3)
1264if (enumeratorType is TypeParameterSymbol { AllowsRefLikeType: true }) 1846var typeParameter = (TypeParameterSymbol)type;
Binder\LocalBinderFactory.cs (2)
313TypeParameterSymbol typeParameter => getMethodParametersFromTypeParameter(typeParameter), 338static ImmutableArray<ParameterSymbol> getMethodParametersFromTypeParameter(TypeParameterSymbol typeParameter)
Binder\Semantics\AccessCheck.cs (1)
647case TypeParameterSymbol typeParameter:
Binder\Semantics\Conversions\Conversion.cs (1)
549internal TypeParameterSymbol? ConstrainedToTypeOpt
Binder\Semantics\Conversions\ConversionsBase.cs (25)
1913private static bool HasIdentityConversionToAny(NamedTypeSymbol type, ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)> targetTypes) 2692return HasImplicitReferenceTypeParameterConversion((TypeParameterSymbol)source, destination, ref useSiteInfo); 2871public bool HasImplicitTypeParameterConversion(TypeParameterSymbol source, TypeSymbol destination, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 2883if (destination is TypeParameterSymbol { AllowsRefLikeType: false } && 2885source.DependsOn((TypeParameterSymbol)destination)) 2893private bool HasImplicitReferenceTypeParameterConversion(TypeParameterSymbol source, TypeSymbol destination, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 2926if (destination is TypeParameterSymbol { AllowsRefLikeType: false } && 2927source.DependsOn((TypeParameterSymbol)destination)) 2936private bool HasImplicitEffectiveBaseConversion(TypeParameterSymbol source, TypeSymbol destination, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 2960private bool HasImplicitEffectiveInterfaceSetConversion(TypeParameterSymbol source, TypeSymbol destination, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 2965private bool HasVarianceCompatibleInterfaceInEffectiveInterfaceSet(TypeParameterSymbol source, TypeSymbol destination, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 3043if (typeToCheck is TypeParameterSymbol typeParameter) 3208TypeParameterSymbol typeParameterSymbol = (TypeParameterSymbol)typeParameters[paramIndex].Type; 3270private bool HasImplicitBoxingTypeParameterConversion(TypeParameterSymbol source, TypeSymbol destination, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 3303if (destination is TypeParameterSymbol { AllowsRefLikeType: false } d && 3331HasImplicitBoxingTypeParameterConversion((TypeParameterSymbol)source, destination, ref useSiteInfo)) 3555TypeParameterSymbol s = source as TypeParameterSymbol; 3556TypeParameterSymbol t = destination as TypeParameterSymbol; 3607TypeParameterSymbol s = source as TypeParameterSymbol; 3608TypeParameterSymbol t = destination as TypeParameterSymbol;
Binder\Semantics\Conversions\UserDefinedConversionAnalysis.cs (4)
23public readonly TypeParameterSymbol ConstrainedToTypeOpt; 31TypeParameterSymbol constrainedToTypeOpt, 49TypeParameterSymbol constrainedToTypeOpt, 68TypeParameterSymbol constrainedToTypeOpt,
Binder\Semantics\Conversions\UserDefinedConversions.cs (3)
17public static void AddTypesParticipatingInUserDefinedConversion(ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol? ConstrainedToTypeOpt)> result, TypeSymbol type, bool includeBaseTypes, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 92if (type is TypeParameterSymbol typeParameter) 114static void addFromClassOrStruct(ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol? ConstrainedToTypeOpt)> result, bool excludeExisting, TypeSymbol type, bool includeBaseTypes, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
Binder\Semantics\Conversions\UserDefinedExplicitConversions.cs (7)
36var d = ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)>.GetInstance(); 74private static void ComputeUserDefinedExplicitConversionTypeSet(TypeSymbol source, TypeSymbol target, ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)> d, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 90ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)> d, 102foreach ((NamedTypeSymbol declaringType, TypeParameterSymbol constrainedToTypeOpt) in d) 117foreach ((NamedTypeSymbol declaringType, TypeParameterSymbol constrainedToTypeOpt) in d) 127TypeParameterSymbol constrainedToTypeOpt, 146TypeParameterSymbol constrainedToTypeOpt,
Binder\Semantics\Conversions\UserDefinedImplicitConversions.cs (7)
80var d = ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)>.GetInstance(); 118private static void ComputeUserDefinedImplicitConversionTypeSet(TypeSymbol s, TypeSymbol t, ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)> d, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 146ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)> d, 255foreach ((NamedTypeSymbol declaringType, TypeParameterSymbol constrainedToTypeOpt) in d) 270foreach ((NamedTypeSymbol declaringType, TypeParameterSymbol constrainedToTypeOpt) in d) 280TypeParameterSymbol constrainedToTypeOpt, 963var d = ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)>.GetInstance();
Binder\Semantics\Operators\BinaryOperatorOverloadResolution.cs (7)
147if (!isShift && (leftOperatorSourceOpt is null || (leftOperatorSourceOpt is not TypeParameterSymbol && rightOperatorSourceOpt is TypeParameterSymbol))) 259interfaces = ((TypeParameterSymbol)operatorSourceOpt).AllEffectiveInterfacesWithDefinitionUseSiteDiagnostics(ref useSiteInfo); 734if ((left.Type is TypeParameterSymbol { AllowsRefLikeType: true } && right.IsLiteralNull()) || 735(right.Type is TypeParameterSymbol { AllowsRefLikeType: true } && left.IsLiteralNull())) 792return (operand.Type is TypeParameterSymbol { AllowsRefLikeType: true }) ? Conversion.Boxing : Conversions.ClassifyConversionFromExpression(operand, objectType, isChecked: isChecked, ref useSiteInfo); 910current = ((TypeParameterSymbol)type0).EffectiveBaseClass(ref useSiteInfo);
Binder\Semantics\Operators\UnaryOperatorOverloadResolution.cs (3)
659TypeSymbol constrainedToTypeOpt = declaringTypeOrTypeParameter as TypeParameterSymbol; 678current = ((TypeParameterSymbol)declaringTypeOrTypeParameter).EffectiveBaseClass(ref useSiteInfo); 705interfaces = ((TypeParameterSymbol)declaringTypeOrTypeParameter).AllEffectiveInterfacesWithDefinitionUseSiteDiagnostics(ref useSiteInfo);
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (25)
136private readonly ImmutableArray<TypeParameterSymbol> _methodTypeParameters; 145private readonly Dictionary<TypeParameterSymbol, int> _ordinals; 175ImmutableArray<TypeParameterSymbol> methodTypeParameters, 283Dictionary<TypeParameterSymbol, int> ordinals = null) 327ImmutableArray<TypeParameterSymbol> methodTypeParameters, 333Dictionary<TypeParameterSymbol, int>? ordinals) 508TypeParameterSymbol typeParameter = (TypeParameterSymbol)type.Type; 515private int GetOrdinal(TypeParameterSymbol typeParameter) 541var methodTypeParameter = (TypeParameterSymbol)methodTypeParameterWithAnnotations.Type; 657var ordinal = GetOrdinal((TypeParameterSymbol)target.Type); 1010private static bool DoesInputTypeContain(BoundExpression argument, TypeSymbol formalParameterType, TypeParameterSymbol typeParameter) 1066TypeParameterSymbol typeParameter) 2288sourceBase = ((TypeParameterSymbol)source).EffectiveBaseClass(ref useSiteInfo); 2331var typeParameter = (TypeParameterSymbol)source; 2390var typeParameters = ArrayBuilder<TypeParameterSymbol>.GetInstance(); 2403var typeParameter = typeParameters[arg]; 2740var typeParameters = ArrayBuilder<TypeParameterSymbol>.GetInstance(); 2753var typeParameter = typeParameters[arg]; 2831var typeParameter = _methodTypeParameters[iParam]; 2863TypeParameterSymbol typeParameter, 3020static bool hasExpressionTypeConstraint(TypeParameterSymbol typeParameter) 3318TypeParameterSymbol pParam = _methodTypeParameters[iParam];
Binder\Semantics\OverloadResolution\OverloadResolution.cs (3)
4304ImmutableArray<TypeParameterSymbol> typeParameters = leastOverriddenMember.GetTypeParametersIncludingExtension(); 4417ImmutableArray<TypeParameterSymbol> originalTypeParameters, 4432Dictionary<TypeParameterSymbol, int> ordinals = member.MakeAdjustedTypeParameterOrdinalsIfNeeded(originalTypeParameters);
Binder\WithClassTypeParametersBinder.cs (5)
21private MultiDictionary<string, TypeParameterSymbol> _lazyTypeParameterMap; 35protected override MultiDictionary<string, TypeParameterSymbol> TypeParameterMap 41var result = new MultiDictionary<string, TypeParameterSymbol>(); 42foreach (TypeParameterSymbol tps in _namedType.TypeParameters) 56foreach (var parameter in _namedType.TypeParameters)
Binder\WithCrefTypeParametersBinder.cs (10)
22private MultiDictionary<string, TypeParameterSymbol> _lazyTypeParameterMap; 30protected override MultiDictionary<string, TypeParameterSymbol> TypeParameterMap 36MultiDictionary<string, TypeParameterSymbol> map = CreateTypeParameterMap(); 44private MultiDictionary<string, TypeParameterSymbol> CreateTypeParameterMap() 46var map = new MultiDictionary<string, TypeParameterSymbol>(); 79private void AddTypeParameters(TypeSyntax typeSyntax, MultiDictionary<string, TypeParameterSymbol> map) 104private void AddTypeParameters(MemberCrefSyntax memberSyntax, MultiDictionary<string, TypeParameterSymbol> map) 122private static void AddTypeParameters(SeparatedSyntaxList<TypeSyntax> typeArguments, MultiDictionary<string, TypeParameterSymbol> map) 141TypeParameterSymbol typeParameterSymbol = new CrefTypeParameterSymbol(name, i, typeParameterSyntax); 154foreach (TypeParameterSymbol typeParameter in kvp.Value)
Binder\WithMethodTypeParametersBinder.cs (5)
20private MultiDictionary<string, TypeParameterSymbol> _lazyTypeParameterMap; 38protected override MultiDictionary<string, TypeParameterSymbol> TypeParameterMap 44var result = new MultiDictionary<string, TypeParameterSymbol>(); 45foreach (var typeParameter in _methodSymbol.TypeParameters) 69foreach (var parameter in _methodSymbol.TypeParameters)
Binder\WithTypeParametersBinder.cs (2)
22protected abstract MultiDictionary<string, TypeParameterSymbol> TypeParameterMap { get; } 47foreach (var typeParameter in TypeParameterMap[name])
CodeGen\EmitExpression.cs (2)
441((TypeParameterSymbol)receiverType).EffectiveInterfacesNoUseSiteDiagnostics.IsEmpty) || // This could be a nullable value type, which must be copied in order to not mutate the original value 1685if (receiver is not BoundTypeExpression { Type: TypeParameterSymbol or NamedTypeSymbol { IsUnionType: true } })
CodeGen\EmitOperators.cs (1)
375if (comparand is BoundConversion { Type.SpecialType: SpecialType.System_Object, ConversionKind: ConversionKind.Boxing, Operand.Type: TypeParameterSymbol { AllowsRefLikeType: true } } &&
CodeGen\Optimizer.cs (2)
1181if ((method.IsAbstract || method.IsVirtual) && receiver is BoundTypeExpression { Type: TypeParameterSymbol or NamedTypeSymbol { IsUnionType: true } } typeExpression) 2322if (receiverOpt is BoundTypeExpression { AliasOpt: null, BoundContainingTypeOpt: null, BoundDimensionsOpt: { IsEmpty: true }, Type: TypeParameterSymbol or NamedTypeSymbol { IsUnionType: true } } typeExpression)
Compilation\BuiltInOperators.cs (2)
885leftType = ((TypeParameterSymbol)leftType).EffectiveBaseClass(ref useSiteInfo); 896rightType = ((TypeParameterSymbol)rightType).EffectiveBaseClass(ref useSiteInfo);
Compilation\SyntaxTreeSemanticModel.cs (3)
2228private TypeParameterSymbol GetTypeParameterSymbol(ImmutableArray<TypeParameterSymbol> parameters, TypeParameterSyntax parameter) 2230foreach (var symbol in parameters)
Compiler\ClsComplianceChecker.cs (2)
553private void CheckTypeParameterCompliance(ImmutableArray<TypeParameterSymbol> typeParameters, NamedTypeSymbol context) 557foreach (TypeParameterSymbol typeParameter in typeParameters)
Compiler\DocumentationCommentCompiler.cs (9)
538HashSet<TypeParameterSymbol>? documentedTypeParameters; 599foreach (var documentedTypeParameter in documentedTypeParameters) 604foreach (TypeParameterSymbol typeParameter in GetTypeParameters(symbol)) 633out HashSet<TypeParameterSymbol>? documentedTypeParameters, 776private static ImmutableArray<TypeParameterSymbol> GetTypeParameters(Symbol symbol) 786return ImmutableArray<TypeParameterSymbol>.Empty; 1272ref HashSet<TypeParameterSymbol> documentedTypeParameters, 1291documentedTypeParameters = new HashSet<TypeParameterSymbol>(); 1349if (!documentedTypeParameters.Add((TypeParameterSymbol)referencedSymbol))
Compiler\DocumentationCommentCompiler.DocumentationCommentWalker.cs (3)
38private HashSet<TypeParameterSymbol> _documentedTypeParameters; 47HashSet<TypeParameterSymbol> documentedTypeParameters) 124ref HashSet<TypeParameterSymbol> documentedTypeParameters)
Compiler\DocumentationCommentCompiler.IncludeElementExpander.cs (3)
39private HashSet<TypeParameterSymbol> _documentedTypeParameters; 47HashSet<TypeParameterSymbol> documentedTypeParameters, 71ref HashSet<TypeParameterSymbol> documentedTypeParameters,
Compiler\MethodBodySynthesizer.Lowered.cs (1)
249this.ImplementingMethod.Construct(this.TypeParameters.Cast<TypeParameterSymbol, TypeSymbol>()) :
DocumentationComments\DocumentationCommentIDVisitor.cs (1)
99public override object VisitTypeParameter(TypeParameterSymbol symbol, StringBuilder builder)
DocumentationComments\DocumentationCommentIDVisitor.PartVisitor.cs (1)
147public override object VisitTypeParameter(TypeParameterSymbol symbol, StringBuilder builder)
Emitter\EditAndContinue\CSharpSymbolMatcher.cs (6)
446public override Symbol VisitTypeParameter(TypeParameterSymbol symbol) 738private static bool AreTypeParametersEqual(TypeParameterSymbol type, TypeParameterSymbol other) 784return AreTypeParametersEqual((TypeParameterSymbol)type, (TypeParameterSymbol)other); 952public override Symbol VisitTypeParameter(TypeParameterSymbol symbol)
Emitter\Model\MethodSymbolAdapter.cs (1)
357foreach (var @param in AdaptedMethodSymbol.TypeParameters)
Emitter\Model\NamedTypeSymbolAdapter.cs (1)
462foreach (var t in AdaptedNamedTypeSymbol.TypeParameters)
Emitter\Model\PEModuleBuilder.cs (2)
1279internal static Cci.IGenericParameterReference Translate(TypeParameterSymbol param) 1310return Translate((TypeParameterSymbol)typeSymbol);
Emitter\Model\TypeParameterSymbolAdapter.cs (2)
390internal TypeParameterSymbolAdapter(TypeParameterSymbol underlyingTypeParameterSymbol) 396internal TypeParameterSymbol AdaptedTypeParameterSymbol { get; }
FlowAnalysis\NullableWalker.cs (11)
2441if (type.Type.IsTypeParameterDisallowingAnnotationInCSharp8() && !(type.Type is TypeParameterSymbol { IsNotNullable: true })) 6114TypeParameterSymbol tp => tp.EffectiveBaseClassNoUseSiteDiagnostics, 6120TypeParameterSymbol tp => tp.AllEffectiveInterfacesNoUseSiteDiagnostics, 8723Dictionary<TypeParameterSymbol, int>? ordinals = definition.MakeAdjustedTypeParameterOrdinalsIfNeeded(typeParameters); 10244type is TypeParameterSymbol typeParameter1 && 10245dependsOnTypeParameter(typeParameter1, (TypeParameterSymbol)targetType.Type, NullableAnnotation.NotAnnotated, out var annotation)) 10275type is TypeParameterSymbol typeParameter1 && 10276targetType.Type is TypeParameterSymbol typeParameter2) 10315static bool dependsOnTypeParameter(TypeParameterSymbol typeParameter1, TypeParameterSymbol typeParameter2, NullableAnnotation typeParameter1Annotation, out NullableAnnotation annotation) 10326if (constraintType.Type is TypeParameterSymbol constraintTypeParameter &&
Lowering\ClosureConversion\ClosureConversion.cs (1)
118private ImmutableArray<TypeParameterSymbol> _currentTypeParameters;
Lowering\ClosureConversion\SynthesizedClosureMethod.cs (1)
52ImmutableArray<TypeParameterSymbol> typeParameters;
Lowering\Instrumentation\LocalStateTracingInstrumenter.cs (1)
239_ when variableType is TypeParameterSymbol { AllowsRefLikeType: true }
Lowering\IteratorRewriter\IteratorFinallyMethodSymbol.cs (2)
159public override ImmutableArray<TypeParameterSymbol> TypeParameters 161get { return ImmutableArray<TypeParameterSymbol>.Empty; }
Lowering\LocalRewriter\DelegateCacheRewriter.cs (4)
169var usedTypeParameters = PooledHashSet<TypeParameterSymbol>.GetInstance(); 207static bool usedTypeParametersContains(HashSet<TypeParameterSymbol> used, ImmutableArray<TypeParameterSymbol> typeParameters) 209foreach (var typeParameter in typeParameters)
Lowering\LocalRewriter\LocalRewriter_Conversion.cs (3)
1294var constrainedToTypeOpt = conversion.ConstrainedToTypeOpt; 1441var constrainedToTypeOpt = conversion.ConstrainedToTypeOpt; 1520var constrainedToTypeOpt = conversion.ConstrainedToTypeOpt;
Lowering\LocalRewriter\LocalRewriter_ObjectCreationExpression.cs (2)
319var rewrittenNewT = MakeNewT(node.Syntax, (TypeParameterSymbol)node.Type); 328private BoundExpression MakeNewT(SyntaxNode syntax, TypeParameterSymbol typeParameter)
Lowering\LocalRewriter\LoweredDynamicOperationFactory.cs (1)
700return synthesizedContainer.Construct(synthesizedContainer.ConstructedFromTypeParameters.Cast<TypeParameterSymbol, TypeSymbol>());
Lowering\MethodToClassRewriter.cs (2)
397ImmutableArray<TypeParameterSymbol> typeParameters; 400typeParameters = ImmutableArray<TypeParameterSymbol>.Empty;
Lowering\SynthesizedMethodBaseSymbol.cs (3)
30private ImmutableArray<TypeParameterSymbol> _typeParameters; 61protected void AssignTypeMapAndTypeParameters(TypeMap typeMap, ImmutableArray<TypeParameterSymbol> typeParameters) 76public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters
Lowering\SyntheticBoundNodeFactory.cs (1)
696if (value.Type is TypeParameterSymbol { AllowsRefLikeType: true })
Operations\CSharpOperationFactory.cs (9)
461TypeParameterSymbol? constrainedToType = GetConstrainedToType(targetMethod, boundCall.ReceiverOpt); 468private static TypeParameterSymbol? GetConstrainedToType(Symbol targetMember, BoundExpression? receiverOpt) 471receiverOpt is BoundTypeExpression { Type: TypeParameterSymbol typeParameter }) 627TypeParameterSymbol? constrainedToType = GetConstrainedToType(boundPropertyAccess.PropertySymbol, boundPropertyAccess.ReceiverOpt); 646TypeParameterSymbol? constrainedToType = GetConstrainedToType(property, boundIndexerAccess.ReceiverOpt); 657TypeParameterSymbol? constrainedToType = GetConstrainedToType(boundEventAccess.EventSymbol, boundEventAccess.ReceiverOpt); 1202TypeParameterSymbol? constrainedToType = GetConstrainedToType(methodSymbol, boundMethodGroup.ReceiverOpt); 1449private static TypeParameterSymbol? GetConstrainedToTypeForOperator(MethodSymbol? operatorMethod, TypeSymbol? constrainedToTypeOpt) 1452constrainedToTypeOpt is TypeParameterSymbol typeParameter)
Operations\CSharpOperationFactory_Methods.cs (1)
136TypeParameterSymbol? constrainedToType = GetConstrainedToType(boundEventAssignmentOperator.Event, boundEventAssignmentOperator.ReceiverOpt);
Symbols\AbstractTypeMap.cs (7)
105return SubstituteTypeParameter((TypeParameterSymbol)previous); 179protected virtual TypeWithAnnotations SubstituteTypeParameter(TypeParameterSymbol typeParameter) 342TypeParameterSymbol owner, 345HashSet<TypeParameterSymbol> ignoreTypesDependentOnTypeParametersOpt) 400internal ImmutableArray<TypeParameterSymbol> SubstituteTypeParameters(ImmutableArray<TypeParameterSymbol> original) 402return original.SelectAsArray((tp, m) => (TypeParameterSymbol)m.SubstituteTypeParameter(tp).AsTypeSymbolOnly(), this);
Symbols\AbstractTypeParameterMap.cs (3)
20protected readonly SmallDictionary<TypeParameterSymbol, TypeWithAnnotations> Mapping; 22protected AbstractTypeParameterMap(SmallDictionary<TypeParameterSymbol, TypeWithAnnotations> mapping) 27protected sealed override TypeWithAnnotations SubstituteTypeParameter(TypeParameterSymbol typeParameter)
Symbols\AnonymousTypes\AnonymousTypeManager.Templates.cs (8)
333static SynthesizedDelegateKey getTemplateKey(AnonymousTypeDescriptor typeDescr, ImmutableArray<TypeParameterSymbol> typeParameters) 345private static ImmutableArray<TypeParameterSymbol> GetReferencedTypeParameters(AnonymousTypeDescriptor typeDescr) 347var referenced = PooledHashSet<TypeParameterSymbol>.GetInstance(); 353ImmutableArray<TypeParameterSymbol> typeParameters; 356typeParameters = ImmutableArray<TypeParameterSymbol>.Empty; 360var builder = ArrayBuilder<TypeParameterSymbol>.GetInstance(); 368static int compareTypeParameters(TypeParameterSymbol x, TypeParameterSymbol y)
Symbols\AnonymousTypes\PublicSymbols\AnonymousManager.TypeOrDelegatePublicSymbol.cs (2)
101public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters 103get { return ImmutableArray<TypeParameterSymbol>.Empty; }
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.DelegateTemplateSymbol.cs (6)
74private static ImmutableArray<TypeParameterSymbol> CreateTypeParameters(AnonymousDelegateTemplateSymbol containingType, int parameterCount, bool returnsVoid, bool hasParamsArray) 78var typeParameters = ArrayBuilder<TypeParameterSymbol>.GetInstance(parameterCount + (returnsVoid ? 0 : 1)); 159internal AnonymousDelegateTemplateSymbol(AnonymousTypeManager manager, AnonymousTypeDescriptor typeDescr, ImmutableArray<TypeParameterSymbol> typeParametersToSubstitute) 172TypeParameters = ImmutableArray<TypeParameterSymbol>.Empty; 177var typeParameters = ArrayBuilder<TypeParameterSymbol>.GetInstance(typeParameterCount); 249public override ImmutableArray<TypeParameterSymbol> TypeParameters { get; }
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.SynthesizedMethodBase.cs (2)
113public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters 115get { return ImmutableArray<TypeParameterSymbol>.Empty; }
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.TemplateSymbol.cs (3)
26private readonly ImmutableArray<TypeParameterSymbol> _typeParameters; 50var typeParametersBuilder = ArrayBuilder<TypeParameterSymbol>.GetInstance(fieldsCount); 154public override ImmutableArray<TypeParameterSymbol> TypeParameters
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.TypeParameterSymbol.cs (4)
122internal override ImmutableArray<TypeWithAnnotations> GetConstraintTypes(ConsList<TypeParameterSymbol> inProgress) 132internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) 137internal override NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress) 142internal override TypeSymbol GetDeducedBaseType(ConsList<TypeParameterSymbol> inProgress)
Symbols\Compilation_WellKnownMembers.cs (4)
1233TypeParameterSymbol typeParam = (TypeParameterSymbol)type; 1247TypeParameterSymbol typeParam = (TypeParameterSymbol)type;
Symbols\ConstraintsHelper.cs (40)
28public readonly TypeParameterSymbol TypeParameter; 31public TypeParameterDiagnosticInfo(TypeParameterSymbol typeParameter, UseSiteInfo<AssemblySymbol> useSiteInfo) 74ConsList<TypeParameterSymbol> inProgress, 129this TypeParameterSymbol typeParameter, 131ConsList<TypeParameterSymbol> inProgress, 170var constraintTypeParameter = (TypeParameterSymbol)constraintType.Type; 171ConsList<TypeParameterSymbol> constraintsInProgress; 188constraintsInProgress = ConsList<TypeParameterSymbol>.Empty; 244var underlyingTypeParameter = (TypeParameterSymbol)underlyingType; 347ImmutableArray<TypeParameterSymbol> typeParameters, 377ImmutableArray<TypeParameterSymbol> typeParameters, 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); 428var typeParameter = typeParameters[i]; 465TypeParameterSymbol typeParameter, 899ImmutableArray<TypeParameterSymbol> typeParameters, 905HashSet<TypeParameterSymbol> ignoreTypeConstraintsDependentOnTypeParametersOpt = null) 950TypeParameterSymbol typeParameter, 1057TypeParameterSymbol typeParameter, 1062HashSet<TypeParameterSymbol> ignoreTypeConstraintsDependentOnTypeParametersOpt) 1118static bool errorIfNotSatisfiesConstructorConstraint(Symbol containingSymbol, TypeParameterSymbol typeParameter, TypeWithAnnotations typeArgument, ArrayBuilder<TypeParameterDiagnosticInfo> diagnosticsBuilder) 1143TypeParameterSymbol typeParameter, 1167TypeParameterSymbol typeParameter, 1244var typeParameter = type as TypeParameterSymbol; 1282var typeParameter = type as TypeParameterSymbol; 1300TypeParameterSymbol typeParameter, 1385var typeParameter = (TypeParameterSymbol)typeArgument.Type; 1439private static bool IsReferenceType(TypeParameterSymbol typeParameter, ImmutableArray<TypeWithAnnotations> constraintTypes) 1441return typeParameter.HasReferenceTypeConstraint || TypeParameterSymbol.CalculateIsReferenceTypeFromConstraintTypes(constraintTypes); 1444private static bool IsValueType(TypeParameterSymbol typeParameter, ImmutableArray<TypeWithAnnotations> constraintTypes) 1446return typeParameter.HasValueTypeConstraint || TypeParameterSymbol.CalculateIsValueTypeFromConstraintTypes(constraintTypes); 1449private static TypeParameterDiagnosticInfo GenerateConflictingConstraintsError(TypeParameterSymbol typeParameter, TypeSymbol deducedBase, bool classConflict) 1500var typeParameter = (TypeParameterSymbol)typeArgument;
Symbols\ConstructedNamedTypeSymbol.cs (1)
96internal static bool TypeParametersMatchTypeArguments(ImmutableArray<TypeParameterSymbol> typeParameters, ImmutableArray<TypeWithAnnotations> typeArguments)
Symbols\ErrorMethodSymbol.cs (2)
150public override ImmutableArray<TypeParameterSymbol> TypeParameters 152get { return ImmutableArray<TypeParameterSymbol>.Empty; }
Symbols\ErrorTypeSymbol.cs (9)
25private ImmutableArray<TypeParameterSymbol> _lazyTypeParameters; 322public override ImmutableArray<TypeParameterSymbol> TypeParameters 330default(ImmutableArray<TypeParameterSymbol>)); 336private ImmutableArray<TypeParameterSymbol> GetTypeParameters() 341return ImmutableArray<TypeParameterSymbol>.Empty; 345var @params = new TypeParameterSymbol[arity]; 690public override ImmutableArray<TypeParameterSymbol> TypeParameters 719private readonly ImmutableArray<TypeParameterSymbol> _typeParameters; 729public override ImmutableArray<TypeParameterSymbol> TypeParameters
Symbols\ErrorTypeSymbol.ErrorTypeParameterSymbol.cs (4)
162internal override ImmutableArray<TypeWithAnnotations> GetConstraintTypes(ConsList<TypeParameterSymbol> inProgress) 167internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) 172internal override NamedTypeSymbol? GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress) 177internal override TypeSymbol? GetDeducedBaseType(ConsList<TypeParameterSymbol> inProgress)
Symbols\Extensions\RewrittenMethodSymbol.cs (3)
16private readonly ImmutableArray<TypeParameterSymbol> _typeParameters; 19protected RewrittenMethodSymbol(MethodSymbol originalMethod, TypeMap typeMap, ImmutableArray<TypeParameterSymbol> typeParametersToAlphaRename) 32public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters
Symbols\FunctionPointers\FunctionPointerMethodSymbol.cs (2)
820public override ImmutableArray<TypeParameterSymbol> TypeParameters => ImmutableArray<TypeParameterSymbol>.Empty;
Symbols\MemberSignatureComparer.cs (9)
613public static bool HaveSameConstraints(ImmutableArray<TypeParameterSymbol> typeParameters1, TypeMap? typeMap1, ImmutableArray<TypeParameterSymbol> typeParameters2, TypeMap? typeMap2, TypeCompareKind typeComparison) 629public static bool HaveSameConstraints(TypeParameterSymbol typeParameter1, TypeMap? typeMap1, TypeParameterSymbol typeParameter2, TypeMap? typeMap2, TypeCompareKind typeComparison) 646private static bool HaveSameTypeConstraints(TypeParameterSymbol typeParameter1, TypeMap? typeMap1, TypeParameterSymbol typeParameter2, TypeMap? typeMap2, IEqualityComparer<TypeSymbol> comparer) 673public static bool HaveSameNullabilityInConstraints(TypeParameterSymbol typeParameter1, TypeMap typeMap1, TypeParameterSymbol typeParameter2, TypeMap typeMap2) 693private static bool AreConstraintTypesSubset(HashSet<TypeSymbol> constraintTypes1, HashSet<TypeSymbol> constraintTypes2, TypeParameterSymbol typeParameter2)
Symbols\MemberSymbolExtensions.cs (7)
131internal static ImmutableArray<TypeParameterSymbol> GetTypeParametersIncludingExtension<TMember>(this TMember member) where TMember : Symbol 151internal static Dictionary<TypeParameterSymbol, int>? MakeAdjustedTypeParameterOrdinalsIfNeeded<TMember>(this TMember member, ImmutableArray<TypeParameterSymbol> originalTypeParameters) 156Dictionary<TypeParameterSymbol, int>? ordinals = null; 163ordinals = new Dictionary<TypeParameterSymbol, int>(ReferenceEqualityComparer.Instance); 568internal static ImmutableArray<TypeParameterSymbol> GetMemberTypeParameters(this Symbol symbol) 580return ImmutableArray<TypeParameterSymbol>.Empty;
Symbols\Metadata\PE\MemberRefMetadataDecoder.cs (2)
70TypeParameterSymbol typeParameter; 86private static void GetGenericTypeParameterSymbol(int position, NamedTypeSymbol namedType, out int cumulativeArity, out TypeParameterSymbol typeArgument)
Symbols\Metadata\PE\PEMethodSymbol.cs (9)
403private ImmutableArray<TypeParameterSymbol> _lazyTypeParameters; 872ImmutableArray<TypeParameterSymbol>.Empty); 935public override ImmutableArray<TypeParameterSymbol> TypeParameters 950private ImmutableArray<TypeParameterSymbol> EnsureTypeParametersAreLoaded(ref DiagnosticInfo diagnosticInfo) 961private ImmutableArray<TypeParameterSymbol> LoadTypeParameters(ref DiagnosticInfo diagnosticInfo) 970return ImmutableArray<TypeParameterSymbol>.Empty; 974var ownedParams = ImmutableArray.CreateBuilder<TypeParameterSymbol>(gpHandles.Count); 986return ImmutableArray<TypeParameterSymbol>.Empty; 1613foreach (var typeParam in TypeParameters)
Symbols\Metadata\PE\PENamedTypeSymbol.cs (10)
524ImmutableArray<TypeParameterSymbol> combinedTypeParameters = @this.TypeParameters.Concat(method.TypeParameters); 2119public override ImmutableArray<TypeParameterSymbol> TypeParameters 2123return ImmutableArray<TypeParameterSymbol>.Empty; 2788foreach (var typeParameter in TypeParameters) 3245private ImmutableArray<TypeParameterSymbol> _lazyTypeParameters; 3269_lazyTypeParameters = ImmutableArray<TypeParameterSymbol>.Empty; 3312public override ImmutableArray<TypeParameterSymbol> TypeParameters 3337var ownedParams = ArrayBuilder<TypeParameterSymbol>.GetInstance(_arity); 3404var containingTypeParameter = containingTypeParameters[i]; 3405var nestedTypeParameter = nestedTypeParameters[i];
Symbols\Metadata\PE\PETypeParameterSymbol.cs (5)
616internal override ImmutableArray<TypeWithAnnotations> GetConstraintTypes(ConsList<TypeParameterSymbol> inProgress) 622internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) 628internal override NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress) 634internal override TypeSymbol GetDeducedBaseType(ConsList<TypeParameterSymbol> inProgress) 669private TypeParameterBounds GetBounds(ConsList<TypeParameterSymbol> inProgress)
Symbols\Metadata\PE\SymbolFactory.cs (1)
141ImmutableArray<TypeParameterSymbol> typeParameters = genericType.GetAllTypeParameters();
Symbols\MethodSymbol.cs (2)
278public abstract ImmutableArray<TypeParameterSymbol> TypeParameters { get; } 848public virtual TypeWithAnnotations GetTypeInferredDuringReduction(TypeParameterSymbol reducedFromTypeParameter)
Symbols\MutableTypeMap.cs (2)
20: base(new SmallDictionary<TypeParameterSymbol, TypeWithAnnotations>()) 24internal void Add(TypeParameterSymbol key, TypeWithAnnotations value)
Symbols\NamedTypeSymbol.cs (5)
63public abstract ImmutableArray<TypeParameterSymbol> TypeParameters { get; } 727var baseTypeTypeParameters = PooledHashSet<TypeParameterSymbol>.GetInstance(); 742static bool tryGetSpeakableSubtypes(NamedTypeSymbol @this, ImmutableArray<NamedTypeSymbol> candidateSubtypes, ArrayBuilder<NamedTypeSymbol> resultBuilder, HashSet<TypeParameterSymbol> baseTypeTypeParameters) 1240var allTypeParameters = ArrayBuilder<TypeParameterSymbol>.GetInstance(); 1271ArrayBuilder<TypeParameterSymbol> allTypeParameters,
Symbols\NativeIntegerTypeSymbol.cs (4)
40public override ImmutableArray<TypeParameterSymbol> TypeParameters => ImmutableArray<TypeParameterSymbol>.Empty; 367public override ImmutableArray<TypeParameterSymbol> TypeParameters => ImmutableArray<TypeParameterSymbol>.Empty;
Symbols\PlaceholderTypeArgumentSymbol.cs (1)
20public static ImmutableArray<TypeWithAnnotations> CreateTypeArguments(ImmutableArray<TypeParameterSymbol> typeParameters)
Symbols\PublicModel\TypeParameterSymbol.cs (3)
14private readonly Symbols.TypeParameterSymbol _underlying; 16public TypeParameterSymbol(Symbols.TypeParameterSymbol underlying, CodeAnalysis.NullableAnnotation nullableAnnotation) 33internal Symbols.TypeParameterSymbol UnderlyingTypeParameterSymbol => _underlying;
Symbols\ReducedExtensionMethodSymbol.cs (4)
27private readonly ImmutableArray<TypeParameterSymbol> _typeParameters; 174var notInferredTypeParameters = PooledHashSet<TypeParameterSymbol>.GetInstance(); 258public override TypeWithAnnotations GetTypeInferredDuringReduction(TypeParameterSymbol reducedFromTypeParameter) 287public override ImmutableArray<TypeParameterSymbol> TypeParameters
Symbols\Retargeting\RetargetingMethodSymbol.cs (4)
36private ImmutableArray<TypeParameterSymbol> _lazyTypeParameters; 93public override ImmutableArray<TypeParameterSymbol> TypeParameters 101_lazyTypeParameters = ImmutableArray<TypeParameterSymbol>.Empty; 106this.RetargetingTranslator.Retarget(_underlyingMethod.TypeParameters), default(ImmutableArray<TypeParameterSymbol>));
Symbols\Retargeting\RetargetingNamedTypeSymbol.cs (4)
35private ImmutableArray<TypeParameterSymbol> _lazyTypeParameters; 72public override ImmutableArray<TypeParameterSymbol> TypeParameters 80_lazyTypeParameters = ImmutableArray<TypeParameterSymbol>.Empty; 85this.RetargetingTranslator.Retarget(_underlyingType.TypeParameters), default(ImmutableArray<TypeParameterSymbol>));
Symbols\Retargeting\RetargetingSymbolTranslator.cs (11)
101return new RetargetingTypeParameterSymbol(this, (TypeParameterSymbol)symbol); 565ArrayBuilder<TypeParameterSymbol> newParameters = ArrayBuilder<TypeParameterSymbol>.GetInstance(newArguments.Count); 690public virtual TypeParameterSymbol Retarget(TypeParameterSymbol typeParameter) 692return (TypeParameterSymbol)this.SymbolMap.GetOrAdd(typeParameter, _retargetingModule._createRetargetingTypeParameter); 867public ImmutableArray<TypeParameterSymbol> Retarget(ImmutableArray<TypeParameterSymbol> list) 1044public override TypeParameterSymbol Retarget(TypeParameterSymbol typeParameter) 1369public override Symbol VisitTypeParameter(TypeParameterSymbol symbol, RetargetOptions options)
Symbols\Retargeting\RetargetingTypeParameterSymbol.cs (5)
40public RetargetingTypeParameterSymbol(RetargetingModuleSymbol retargetingModule, TypeParameterSymbol underlyingTypeParameter) 86internal override ImmutableArray<TypeWithAnnotations> GetConstraintTypes(ConsList<TypeParameterSymbol> inProgress) 99internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) 104internal override NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress) 109internal override TypeSymbol GetDeducedBaseType(ConsList<TypeParameterSymbol> inProgress)
Symbols\SignatureOnlyMethodSymbol.cs (3)
25private readonly ImmutableArray<TypeParameterSymbol> _typeParameters; 39ImmutableArray<TypeParameterSymbol> typeParameters, 71public override ImmutableArray<TypeParameterSymbol> TypeParameters { get { return _typeParameters; } }
Symbols\Source\CrefTypeParameterSymbol.cs (4)
197internal override ImmutableArray<TypeWithAnnotations> GetConstraintTypes(ConsList<TypeParameterSymbol> inProgress) 202internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) 207internal override NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress) 213internal override TypeSymbol GetDeducedBaseType(ConsList<TypeParameterSymbol> inProgress)
Symbols\Source\ExtensionGroupingInfo.cs (7)
264ImmutableArray<TypeParameterSymbol> typeParams1 = extension1.TypeParameters; 265ImmutableArray<TypeParameterSymbol> typeParams2 = extension2.TypeParameters; 360static bool haveSameConstraints(TypeParameterSymbol typeParameter1, TypeMap? typeMap1, TypeParameterSymbol typeParameter2, TypeMap? typeMap2) 376static bool haveSameTypeConstraints(TypeParameterSymbol typeParameter1, TypeMap? typeMap1, TypeParameterSymbol typeParameter2, TypeMap? typeMap2) 401static bool areConstraintTypesSubset(HashSet<TypeWithAnnotations> constraintTypes1, HashSet<TypeWithAnnotations> constraintTypes2, TypeParameterSymbol typeParameter2)
Symbols\Source\ImplicitNamedTypeSymbol.cs (2)
86public override ImmutableArray<TypeParameterSymbol> TypeParameters 88get { return ImmutableArray<TypeParameterSymbol>.Empty; }
Symbols\Source\IndexedTypeParameterSymbol.cs (11)
29private static TypeParameterSymbol[] s_parameterPool = Array.Empty<TypeParameterSymbol>(); 46internal static TypeParameterSymbol GetTypeParameter(int index) 62var newPool = new TypeParameterSymbol[newPoolSize]; 85internal static ImmutableArray<TypeParameterSymbol> TakeSymbols(int count) 92ArrayBuilder<TypeParameterSymbol> builder = ArrayBuilder<TypeParameterSymbol>.GetInstance(); 212internal override ImmutableArray<TypeWithAnnotations> GetConstraintTypes(ConsList<TypeParameterSymbol> inProgress) 217internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) 222internal override NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress) 227internal override TypeSymbol GetDeducedBaseType(ConsList<TypeParameterSymbol> inProgress)
Symbols\Source\LambdaSymbol.cs (2)
208public override ImmutableArray<TypeParameterSymbol> TypeParameters 210get { return ImmutableArray<TypeParameterSymbol>.Empty; }
Symbols\Source\LocalFunctionSymbol.cs (3)
326public override ImmutableArray<TypeParameterSymbol> TypeParameters 327=> _typeParameters.Cast<SourceMethodTypeParameterSymbol, TypeParameterSymbol>(); 467var tpEnclosing = ContainingSymbol.FindEnclosingTypeParameter(name);
Symbols\Source\ParameterHelpers.cs (3)
546var usedTypeParameters = PooledHashSet<TypeParameterSymbol>.GetInstance(); 552static void reportUnusedExtensionTypeParameters(Symbol extensionMember, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag diagnostics, NamedTypeSymbol extension, ParameterSymbol extensionParameter, PooledHashSet<TypeParameterSymbol> usedTypeParameters) 575foreach (var typeParameter in extension.TypeParameters)
Symbols\Source\SourceConstructorSymbolBase.cs (2)
140public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters 142get { return ImmutableArray<TypeParameterSymbol>.Empty; }
Symbols\Source\SourceDelegateMethodSymbol.cs (2)
148public override ImmutableArray<TypeParameterSymbol> TypeParameters 152return ImmutableArray<TypeParameterSymbol>.Empty;
Symbols\Source\SourceDestructorSymbol.cs (2)
113public override ImmutableArray<TypeParameterSymbol> TypeParameters 115get { return ImmutableArray<TypeParameterSymbol>.Empty; }
Symbols\Source\SourceEventAccessorSymbol.cs (2)
186public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters 188get { return ImmutableArray<TypeParameterSymbol>.Empty; }
Symbols\Source\SourceMemberContainerSymbol.cs (11)
628foreach (var typeParameter in this.TypeParameters) 1832else if (member is TypeParameterSymbol || member is SynthesizedMethodBaseSymbol) 2440foreach (TypeParameterSymbol typeParameter in indexer.ContainingType.TypeParameters) 2689foreach (var tp in TypeParameters) 5142ImmutableArray<TypeParameterSymbol>.Empty, 5189ImmutableArray<TypeParameterSymbol>.Empty, 5242ImmutableArray<TypeParameterSymbol>.Empty, 5302ImmutableArray<TypeParameterSymbol>.Empty, 5476ImmutableArray<TypeParameterSymbol>.Empty, 5569ImmutableArray<TypeParameterSymbol>.Empty, 6159foreach (var typeParameter in TypeParameters)
Symbols\Source\SourceMemberMethodSymbol.cs (2)
922foreach (var typeParameter in this.TypeParameters) 1012foreach (var typeParameter in method.TypeParameters)
Symbols\Source\SourceNamedTypeSymbol.cs (4)
144private ImmutableArray<TypeParameterSymbol> MakeTypeParameters(BindingDiagnosticBag diagnostics) 148return ImmutableArray<TypeParameterSymbol>.Empty; 227var tpEnclosing = ContainingType.FindEnclosingTypeParameter(name); 753public override ImmutableArray<TypeParameterSymbol> TypeParameters
Symbols\Source\SourceNamedTypeSymbol_Bases.cs (2)
429var usedTypeParameters = PooledHashSet<TypeParameterSymbol>.GetInstance(); 434foreach (var typeParameter in type.TypeParameters)
Symbols\Source\SourceNamedTypeSymbol_Extension.cs (12)
53foreach (var typeParameter in this.TypeParameters) 79static void appendTypeParameterDeclaration(TypeParameterSymbol typeParameter, StringBuilder builder) 109static void appendTypeParameterTypeConstraints(TypeParameterSymbol typeParameter, StringBuilder builder) 111ImmutableArray<TypeWithAnnotations> typeConstraints = typeParameter.GetConstraintTypes(ConsList<TypeParameterSymbol>.Empty); 163else if (type is TypeParameterSymbol typeParameter) 264static void appendTypeParameterReference(TypeParameterSymbol typeParameter, StringBuilder builder) 379foreach (TypeParameterSymbol typeParameter in this.TypeParameters) 416foreach (TypeParameterSymbol typeParameter in this.TypeParameters) 426static bool typeParameterHasConstraints(TypeParameterSymbol typeParameter) 470else if (type is TypeParameterSymbol { Name: var typeParameterName }) 594static void appendTypeParameterConstraints(TypeParameterSymbol typeParam, StringBuilder builder) 662static void appendTypeConstraints(TypeParameterSymbol typeParam, StringBuilder builder, ref bool needComma)
Symbols\Source\SourceOrdinaryMethodSymbol.cs (13)
193if (type.DefaultType is TypeParameterSymbol typeParameterSymbol && typeParameterSymbol.DeclaringMethod == (object)args.method) 619var typeParameter1 = typeParameters1[i]; 620var typeParameter2 = typeParameters2[i]; 675var typeParameter = this.TypeParameters[i]; 984public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters 985=> ImmutableArray<TypeParameterSymbol>.Empty; 1065public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters 1137private ImmutableArray<TypeParameterSymbol> MakeTypeParameters(MethodDeclarationSyntax syntax, BindingDiagnosticBag diagnostics) 1141return ImmutableArray<TypeParameterSymbol>.Empty; 1159var result = ArrayBuilder<TypeParameterSymbol>.GetInstance(); 1175var tpEnclosing = ContainingType.FindEnclosingTypeParameter(name); 1208var typeParameter = (typeMap != null) ? 1209(TypeParameterSymbol)new SourceOverridingMethodTypeParameterSymbol(
Symbols\Source\SourceOrdinaryMethodSymbolBase.cs (1)
80public abstract override ImmutableArray<TypeParameterSymbol> TypeParameters { get; }
Symbols\Source\SourcePropertyAccessorSymbol.cs (2)
365public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters 367get { return ImmutableArray<TypeParameterSymbol>.Empty; }
Symbols\Source\SourceTypeParameterSymbol.cs (24)
93internal override ImmutableArray<TypeWithAnnotations> GetConstraintTypes(ConsList<TypeParameterSymbol> inProgress) 99internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) 105internal override NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress) 111internal override TypeSymbol GetDeducedBaseType(ConsList<TypeParameterSymbol> inProgress) 217protected abstract ImmutableArray<TypeParameterSymbol> ContainerTypeParameters 222private TypeParameterBounds GetBounds(ConsList<TypeParameterSymbol> inProgress) 247protected abstract TypeParameterBounds ResolveBounds(ConsList<TypeParameterSymbol> inProgress, BindingDiagnosticBag diagnostics); 574protected override ImmutableArray<TypeParameterSymbol> ContainerTypeParameters 579protected override TypeParameterBounds ResolveBounds(ConsList<TypeParameterSymbol> inProgress, BindingDiagnosticBag diagnostics) 641protected sealed override ImmutableArray<TypeParameterSymbol> ContainerTypeParameters 646protected abstract override TypeParameterBounds ResolveBounds(ConsList<TypeParameterSymbol> inProgress, BindingDiagnosticBag diagnostics); 755protected override TypeParameterBounds ResolveBounds(ConsList<TypeParameterSymbol> inProgress, BindingDiagnosticBag diagnostics) 801public TypeParameterSymbol GetOverriddenTypeParameter(int ordinal) 910var typeParameter = this.OverriddenTypeParameter; 919var typeParameter = this.OverriddenTypeParameter; 928var typeParameter = this.OverriddenTypeParameter; 937var typeParameter = this.OverriddenTypeParameter; 946var typeParameter = this.OverriddenTypeParameter; 955var typeParameter = this.OverriddenTypeParameter; 964TypeParameterSymbol typeParameter = this.OverriddenTypeParameter; 989var typeParameter = this.OverriddenTypeParameter; 994protected override TypeParameterBounds ResolveBounds(ConsList<TypeParameterSymbol> inProgress, BindingDiagnosticBag diagnostics) 996var typeParameter = this.OverriddenTypeParameter; 1013private TypeParameterSymbol OverriddenTypeParameter
Symbols\Source\SourceUserDefinedOperatorSymbolBase.cs (3)
927return type is TypeParameterSymbol p && 998public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters 1000get { return ImmutableArray<TypeParameterSymbol>.Empty; }
Symbols\Source\SynthesizedSourceOrdinaryMethodSymbol.cs (2)
42public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters => ImmutableArray<TypeParameterSymbol>.Empty;
Symbols\Source\TypeParameterBuilder.cs (1)
34internal TypeParameterSymbol MakeSymbol(int ordinal, IList<TypeParameterBuilder> builders, BindingDiagnosticBag diagnostics)
Symbols\Source\TypeParameterConstraintClause.cs (19)
131internal static SmallDictionary<TypeParameterSymbol, bool> BuildIsValueTypeMap( 132ImmutableArray<TypeParameterSymbol> typeParameters, 137var isValueTypeMap = new SmallDictionary<TypeParameterSymbol, bool>(ReferenceEqualityComparer.Instance); 139foreach (TypeParameterSymbol typeParameter in typeParameters) 141isValueType(typeParameter, constraintClauses, isValueTypeMap, ConsList<TypeParameterSymbol>.Empty); 146static bool isValueType(TypeParameterSymbol thisTypeParameter, ImmutableArray<TypeParameterConstraintClause> constraintClauses, SmallDictionary<TypeParameterSymbol, bool> isValueTypeMap, ConsList<TypeParameterSymbol> inProgress) 175if (type is TypeParameterSymbol typeParameter && (object)typeParameter.ContainingSymbol == (object)container) 196internal static SmallDictionary<TypeParameterSymbol, bool> BuildIsReferenceTypeFromConstraintTypesMap( 197ImmutableArray<TypeParameterSymbol> typeParameters, 202var isReferenceTypeFromConstraintTypesMap = new SmallDictionary<TypeParameterSymbol, bool>(ReferenceEqualityComparer.Instance); 204foreach (TypeParameterSymbol typeParameter in typeParameters) 206isReferenceTypeFromConstraintTypes(typeParameter, constraintClauses, isReferenceTypeFromConstraintTypesMap, ConsList<TypeParameterSymbol>.Empty); 211static bool isReferenceTypeFromConstraintTypes(TypeParameterSymbol thisTypeParameter, ImmutableArray<TypeParameterConstraintClause> constraintClauses, 212SmallDictionary<TypeParameterSymbol, bool> isReferenceTypeFromConstraintTypesMap, ConsList<TypeParameterSymbol> inProgress) 235if (type is TypeParameterSymbol typeParameter) 251else if (TypeParameterSymbol.NonTypeParameterConstraintImpliesReferenceType(type))
Symbols\Source\TypeParameterInfo.cs (2)
16public ImmutableArray<TypeParameterSymbol> LazyTypeParameters; 32LazyTypeParameters = ImmutableArray<TypeParameterSymbol>.Empty,
Symbols\SubstitutedMethodSymbol.cs (5)
33private ImmutableArray<TypeParameterSymbol> _lazyTypeParameters; 93public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters 109ImmutableArray<TypeParameterSymbol> typeParameters; 123ImmutableInterlocked.InterlockedCompareExchange(ref _lazyTypeParameters, typeParameters, default(ImmutableArray<TypeParameterSymbol>)); 178public override TypeWithAnnotations GetTypeInferredDuringReduction(TypeParameterSymbol reducedFromTypeParameter)
Symbols\SubstitutedNamedTypeSymbol.cs (4)
41private ImmutableArray<TypeParameterSymbol> _lazyTypeParameters; 93public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters 109ImmutableArray<TypeParameterSymbol> typeParameters; 122ImmutableInterlocked.InterlockedCompareExchange(ref _lazyTypeParameters, typeParameters, default(ImmutableArray<TypeParameterSymbol>));
Symbols\SubstitutedTypeParameterSymbol.cs (10)
20internal SubstitutedTypeParameterSymbol(Symbol newContainer, TypeMap map, TypeParameterSymbol substitutedFrom, int ordinal) 30public override TypeParameterSymbol OriginalDefinition 45internal SubstitutedTypeParameterSymbolBase(Symbol newContainer, TypeMap map, TypeParameterSymbol substitutedFrom, int ordinal) 66public abstract override TypeParameterSymbol OriginalDefinition { get; } 68public override TypeParameterSymbol ReducedFrom 106internal override ImmutableArray<TypeWithAnnotations> GetConstraintTypes(ConsList<TypeParameterSymbol> inProgress) 169_map.SubstituteConstraintTypesDistinctWithoutModifiers(_underlyingTypeParameter, _underlyingTypeParameter.GetConstraintTypes(ConsList<TypeParameterSymbol>.Empty), constraintTypes, null); 177internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) 182internal override NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress) 187internal override TypeSymbol GetDeducedBaseType(ConsList<TypeParameterSymbol> inProgress)
Symbols\Symbol.cs (4)
1399internal static bool GetUnificationUseSiteDiagnosticRecursive(ref DiagnosticInfo result, ImmutableArray<TypeParameterSymbol> typeParameters, Symbol owner, ref HashSet<TypeSymbol> checkedTypes) 1401foreach (var typeParameter in typeParameters) 1704var typeParameter = (TypeParameterSymbol)this;
Symbols\SymbolExtensions.cs (4)
420internal static TypeParameterSymbol? EnsureCSharpSymbolOrNull(this ITypeParameterSymbol? symbol, string paramName) 422return (TypeParameterSymbol?)EnsureCSharpSymbolOrNull((ISymbol?)symbol, paramName); 647internal static ITypeParameterSymbol? GetPublicSymbol(this TypeParameterSymbol? symbol) 722internal static ImmutableArray<ITypeParameterSymbol> GetPublicSymbols(this ImmutableArray<TypeParameterSymbol> symbols)
Symbols\SymbolVisitor.cs (1)
115public virtual void VisitTypeParameter(TypeParameterSymbol symbol)
Symbols\SymbolVisitor`1.cs (1)
115public virtual TResult VisitTypeParameter(TypeParameterSymbol symbol)
Symbols\SymbolVisitor`2.cs (2)
149/// Called when visiting a <see cref="TypeParameterSymbol" />; Override this with specific 155public virtual TResult VisitTypeParameter(TypeParameterSymbol symbol, TArgument argument)
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListEnumeratorTypeSymbol.cs (2)
131public override ImmutableArray<TypeParameterSymbol> TypeParameters => ImmutableArray<TypeParameterSymbol>.Empty;
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListTypeParameterSymbol.cs (4)
59internal override ImmutableArray<TypeWithAnnotations> GetConstraintTypes(ConsList<TypeParameterSymbol> inProgress) => ImmutableArray<TypeWithAnnotations>.Empty; 61internal override TypeSymbol GetDeducedBaseType(ConsList<TypeParameterSymbol> inProgress) => ContainingAssembly.GetSpecialType(SpecialType.System_Object); 63internal override NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress) => ContainingAssembly.GetSpecialType(SpecialType.System_Object); 65internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) => ImmutableArray<NamedTypeSymbol>.Empty;
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListTypeSymbol.cs (2)
273TypeParameters = ImmutableArray.Create<TypeParameterSymbol>(typeParameter); 844public override ImmutableArray<TypeParameterSymbol> TypeParameters { get; }
Symbols\Synthesized\SynthesizedCollectionBuilderProjectedMethodSymbol.cs (1)
87public override ImmutableArray<TypeParameterSymbol> TypeParameters => [];
Symbols\Synthesized\SynthesizedContainer.cs (6)
24private readonly ImmutableArray<TypeParameterSymbol> _typeParameters; 25private readonly ImmutableArray<TypeParameterSymbol> _constructedFromTypeParameters; 27protected SynthesizedContainer(string name, ImmutableArray<TypeParameterSymbol> typeParametersToAlphaRename) 40_typeParameters = ImmutableArray<TypeParameterSymbol>.Empty; 78internal ImmutableArray<TypeParameterSymbol> ConstructedFromTypeParameters => _constructedFromTypeParameters; 80public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters => _typeParameters;
Symbols\Synthesized\SynthesizedDelegateSymbol.cs (2)
181public override ImmutableArray<TypeParameterSymbol> TypeParameters 183get { return ImmutableArray<TypeParameterSymbol>.Empty; }
Symbols\Synthesized\SynthesizedEmbeddedAttributeSymbol.cs (2)
57public override ImmutableArray<TypeParameterSymbol> TypeParameters => ImmutableArray<TypeParameterSymbol>.Empty;
Symbols\Synthesized\SynthesizedEntryPointSymbol.cs (2)
92public override ImmutableArray<TypeParameterSymbol> TypeParameters 94get { return ImmutableArray<TypeParameterSymbol>.Empty; }
Symbols\Synthesized\SynthesizedGlobalMethodSymbol.cs (5)
26private ImmutableArray<TypeParameterSymbol> _typeParameters; 43_typeParameters = ImmutableArray<TypeParameterSymbol>.Empty; 60protected void SetTypeParameters(ImmutableArray<TypeParameterSymbol> typeParameters) 160public override ImmutableArray<TypeParameterSymbol> TypeParameters 167return ImmutableArray<TypeParameterSymbol>.Empty;
Symbols\Synthesized\SynthesizedHotReloadExceptionSymbol.cs (1)
97public override ImmutableArray<TypeParameterSymbol> TypeParameters => [];
Symbols\Synthesized\SynthesizedImplementationMethod.cs (2)
24private readonly ImmutableArray<TypeParameterSymbol> _typeParameters; 86public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters
Symbols\Synthesized\SynthesizedInlineArrayAsReadOnlySpanMethod.cs (1)
15this.SetTypeParameters(ImmutableArray.Create<TypeParameterSymbol>(new SynthesizedSimpleMethodTypeParameterSymbol(this, 0, "TBuffer"), new SynthesizedSimpleMethodTypeParameterSymbol(this, 1, "TElement")));
Symbols\Synthesized\SynthesizedInlineArrayAsSpanMethod.cs (1)
15this.SetTypeParameters(ImmutableArray.Create<TypeParameterSymbol>(new SynthesizedSimpleMethodTypeParameterSymbol(this, 0, "TBuffer"), new SynthesizedSimpleMethodTypeParameterSymbol(this, 1, "TElement")));
Symbols\Synthesized\SynthesizedInlineArrayElementRefMethod.cs (1)
15this.SetTypeParameters(ImmutableArray.Create<TypeParameterSymbol>(new SynthesizedSimpleMethodTypeParameterSymbol(this, 0, "TBuffer"), new SynthesizedSimpleMethodTypeParameterSymbol(this, 1, "TElement")));
Symbols\Synthesized\SynthesizedInlineArrayElementRefReadOnlyMethod.cs (1)
15this.SetTypeParameters(ImmutableArray.Create<TypeParameterSymbol>(new SynthesizedSimpleMethodTypeParameterSymbol(this, 0, "TBuffer"), new SynthesizedSimpleMethodTypeParameterSymbol(this, 1, "TElement")));
Symbols\Synthesized\SynthesizedInlineArrayFirstElementRefMethod.cs (1)
15this.SetTypeParameters(ImmutableArray.Create<TypeParameterSymbol>(new SynthesizedSimpleMethodTypeParameterSymbol(this, 0, "TBuffer"), new SynthesizedSimpleMethodTypeParameterSymbol(this, 1, "TElement")));
Symbols\Synthesized\SynthesizedInlineArrayFirstElementRefReadOnlyMethod.cs (1)
15this.SetTypeParameters(ImmutableArray.Create<TypeParameterSymbol>(new SynthesizedSimpleMethodTypeParameterSymbol(this, 0, "TBuffer"), new SynthesizedSimpleMethodTypeParameterSymbol(this, 1, "TElement")));
Symbols\Synthesized\SynthesizedInlineArrayTypeSymbol.cs (6)
43TypeParameters = ImmutableArray.Create<TypeParameterSymbol>(typeParameter); 48public override ImmutableArray<TypeParameterSymbol> TypeParameters { get; } 264internal override ImmutableArray<TypeWithAnnotations> GetConstraintTypes(ConsList<TypeParameterSymbol> inProgress) => ImmutableArray<TypeWithAnnotations>.Empty; 266internal override TypeSymbol GetDeducedBaseType(ConsList<TypeParameterSymbol> inProgress) => ContainingAssembly.GetSpecialType(SpecialType.System_Object); 268internal override NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress) => ContainingAssembly.GetSpecialType(SpecialType.System_Object); 270internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) => ImmutableArray<NamedTypeSymbol>.Empty;
Symbols\Synthesized\SynthesizedInstanceConstructor.cs (2)
132public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters 134get { return ImmutableArray<TypeParameterSymbol>.Empty; }
Symbols\Synthesized\SynthesizedInteractiveInitializerMethod.cs (2)
163public override ImmutableArray<TypeParameterSymbol> TypeParameters 165get { return ImmutableArray<TypeParameterSymbol>.Empty; }
Symbols\Synthesized\SynthesizedIntrinsicOperatorSymbol.cs (2)
249public override ImmutableArray<TypeParameterSymbol> TypeParameters 253return ImmutableArray<TypeParameterSymbol>.Empty;
Symbols\Synthesized\SynthesizedPrivateImplementationDetailsType.cs (2)
41public override ImmutableArray<TypeParameterSymbol> TypeParameters => ImmutableArray<TypeParameterSymbol>.Empty;
Symbols\Synthesized\SynthesizedPropertySymbol.cs (1)
95public override ImmutableArray<TypeParameterSymbol> TypeParameters => [];
Symbols\Synthesized\SynthesizedSealedPropertyAccessor.cs (2)
209public override ImmutableArray<TypeParameterSymbol> TypeParameters 213return ImmutableArray<TypeParameterSymbol>.Empty;
Symbols\Synthesized\SynthesizedSimpleProgramEntryPointSymbol.cs (2)
136public override ImmutableArray<TypeParameterSymbol> TypeParameters 140return ImmutableArray<TypeParameterSymbol>.Empty;
Symbols\Synthesized\SynthesizedStaticConstructor.cs (2)
64public override ImmutableArray<TypeParameterSymbol> TypeParameters 68return ImmutableArray<TypeParameterSymbol>.Empty;
Symbols\Synthesized\SynthesizedTypeParameterSymbol.cs (3)
25public SynthesizedTypeParameterSymbol(Symbol owner, TypeMap map, TypeParameterSymbol substitutedFrom, int ordinal, bool propagateAttributes) 45public override TypeParameterSymbol OriginalDefinition => this; 51var definition = _underlyingTypeParameter.OriginalDefinition;
Symbols\SynthesizedSimpleMethodTypeParameterSymbol.cs (4)
110internal override ImmutableArray<TypeWithAnnotations> GetConstraintTypes(ConsList<TypeParameterSymbol> inProgress) 115internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) 120internal override NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress) 125internal override TypeSymbol GetDeducedBaseType(ConsList<TypeParameterSymbol> inProgress)
Symbols\TypeMap.cs (29)
25internal static ImmutableArray<TypeWithAnnotations> TypeParametersAsTypeSymbolsWithAnnotations(ImmutableArray<TypeParameterSymbol> typeParameters) 30internal static ImmutableArray<TypeWithAnnotations> TypeParametersAsTypeSymbolsWithIgnoredAnnotations(ImmutableArray<TypeParameterSymbol> typeParameters) 41internal TypeMap(ImmutableArray<TypeParameterSymbol> from, ImmutableArray<TypeWithAnnotations> to, bool allowAlpha = false) 49internal TypeMap(ImmutableArray<TypeParameterSymbol> from, ImmutableArray<TypeParameterSymbol> to, bool allowAlpha = false) 55private TypeMap(SmallDictionary<TypeParameterSymbol, TypeWithAnnotations> mapping) 56: base(new SmallDictionary<TypeParameterSymbol, TypeWithAnnotations>(mapping, ReferenceEqualityComparer.Instance)) 61private static SmallDictionary<TypeParameterSymbol, TypeWithAnnotations> ForType(NamedTypeSymbol containingType) 65new SmallDictionary<TypeParameterSymbol, TypeWithAnnotations>(substituted.TypeSubstitution.Mapping, ReferenceEqualityComparer.Instance) : 66new SmallDictionary<TypeParameterSymbol, TypeWithAnnotations>(ReferenceEqualityComparer.Instance); 69internal TypeMap(NamedTypeSymbol containingType, ImmutableArray<TypeParameterSymbol> typeParameters, ImmutableArray<TypeWithAnnotations> typeArguments) 74TypeParameterSymbol tp = typeParameters[i]; 83private static readonly SmallDictionary<TypeParameterSymbol, TypeWithAnnotations> s_emptyDictionary = 84new SmallDictionary<TypeParameterSymbol, TypeWithAnnotations>(ReferenceEqualityComparer.Instance); 102internal TypeMap WithAlphaRename(ImmutableArray<TypeParameterSymbol> oldTypeParameters, Symbol newOwner, bool propagateAttributes, out ImmutableArray<TypeParameterSymbol> newTypeParameters) 106newTypeParameters = ImmutableArray<TypeParameterSymbol>.Empty; 117ArrayBuilder<TypeParameterSymbol> newTypeParametersBuilder = ArrayBuilder<TypeParameterSymbol>.GetInstance(); 125foreach (var tp in oldTypeParameters) 127TypeParameterSymbol newTp = synthesized ? 139internal TypeMap WithAlphaRename(NamedTypeSymbol oldOwner, NamedTypeSymbol newOwner, out ImmutableArray<TypeParameterSymbol> newTypeParameters) 145internal TypeMap WithAlphaRename(MethodSymbol oldOwner, Symbol newOwner, bool propagateAttributes, out ImmutableArray<TypeParameterSymbol> newTypeParameters) 151internal static ImmutableArray<TypeParameterSymbol> ConcatMethodTypeParameters(MethodSymbol oldOwner, MethodSymbol stopAt) 168var parameters = ArrayBuilder<TypeParameterSymbol>.GetInstance(); 194private static SmallDictionary<TypeParameterSymbol, TypeWithAnnotations> ConstructMapping(ImmutableArray<TypeParameterSymbol> from, ImmutableArray<TypeWithAnnotations> to) 196var mapping = new SmallDictionary<TypeParameterSymbol, TypeWithAnnotations>(ReferenceEqualityComparer.Instance); 202TypeParameterSymbol tp = from[i];
Symbols\TypeParameterSymbol.cs (18)
28public new virtual TypeParameterSymbol OriginalDefinition 48public virtual TypeParameterSymbol ReducedFrom 88return this.GetConstraintTypes(ConsList<TypeParameterSymbol>.Empty); 265return this.GetEffectiveBaseClass(ConsList<TypeParameterSymbol>.Empty); 290return this.GetInterfaces(ConsList<TypeParameterSymbol>.Empty); 314return this.GetDeducedBaseType(ConsList<TypeParameterSymbol>.Empty); 375protected static void EnsureAllConstraintsAreResolved(ImmutableArray<TypeParameterSymbol> typeParameters) 377foreach (var typeParameter in typeParameters) 380var unused = typeParameter.GetConstraintTypes(ConsList<TypeParameterSymbol>.Empty); 384internal abstract ImmutableArray<TypeWithAnnotations> GetConstraintTypes(ConsList<TypeParameterSymbol> inProgress); 386internal abstract ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress); 388internal abstract NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress); 390internal abstract TypeSymbol GetDeducedBaseType(ConsList<TypeParameterSymbol> inProgress); 396return ((TypeParameterSymbol)constraint).IsReferenceTypeFromConstraintTypes; 487bool? isNotNullable = ((TypeParameterSymbol)constraintType.Type).IsNotNullable; 653return this.Equals(t2 as TypeParameterSymbol, comparison); 656internal bool Equals(TypeParameterSymbol other) 661private bool Equals(TypeParameterSymbol other, TypeCompareKind comparison)
Symbols\TypeParameterSymbolExtensions.cs (7)
11public static bool DependsOn(this TypeParameterSymbol typeParameter1, TypeParameterSymbol typeParameter2) 16Stack<TypeParameterSymbol>? stack = null; 17HashSet<TypeParameterSymbol>? visited = null; 23if (constraintType.Type is TypeParameterSymbol typeParameter) 29visited ??= new HashSet<TypeParameterSymbol>(); 32stack ??= new Stack<TypeParameterSymbol>();
Symbols\TypeSymbol.cs (6)
110var interfaces = (baseType.TypeKind == TypeKind.TypeParameter) ? ((TypeParameterSymbol)baseType).EffectiveInterfacesNoUseSiteDiagnostics : baseType.InterfacesNoUseSiteDiagnostics(); 241return this.IsTypeParameter() ? ((TypeParameterSymbol)this).EffectiveBaseClassNoUseSiteDiagnostics : this; 247return this.IsTypeParameter() ? ((TypeParameterSymbol)this).EffectiveBaseClass(ref useSiteInfo) : this; 346var interfaces = (baseType.TypeKind == TypeKind.TypeParameter) ? ((TypeParameterSymbol)baseType).EffectiveInterfacesNoUseSiteDiagnostics : baseType.InterfacesNoUseSiteDiagnostics(); 2137var typeParameter1 = typeParameters1[i]; 2138var typeParameter2 = typeParameters2[i];
Symbols\TypeSymbolExtensions.cs (27)
76var typeParameter = (TypeParameterSymbol)type; 93return type is TypeParameterSymbol { IsValueType: false, IsNotNullable: false }; 120var constraintTypes = ((TypeParameterSymbol)type).ConstraintTypesNoUseSiteDiagnostics; 373public static bool IsMethodTypeParameter(this TypeParameterSymbol p) 467var typeParameter = (TypeParameterSymbol)type; 587return type is { IsRefLikeType: true } or TypeParameterSymbol { AllowsRefLikeType: true }; 1244public static bool ContainsTypeParameter(this TypeSymbol type, TypeParameterSymbol? parameter = null) 1250private static readonly Func<TypeSymbol, TypeParameterSymbol?, bool, bool> s_containsTypeParameterPredicate = 1264public static bool ContainsTypeParameters(this TypeSymbol type, HashSet<TypeParameterSymbol> parameters) 1270private static readonly Func<TypeSymbol, HashSet<TypeParameterSymbol>, bool, bool> s_containsTypeParametersPredicate = 1271(type, parameters, unused) => type.TypeKind == TypeKind.TypeParameter && parameters.Contains((TypeParameterSymbol)type); 1273public static bool ContainsAdditionalTypeParameter(this TypeSymbol type, HashSet<TypeParameterSymbol> allowedTypeParameters) 1276static (type, allowedTypeParameters, isNested) => type is TypeParameterSymbol typeParameter && !allowedTypeParameters.Contains(typeParameter), allowedTypeParameters); 1280public static void FindTypeParameters(this TypeSymbol type, HashSet<TypeParameterSymbol> result) 1283public static void FindTypeParameters(this TypeWithAnnotations type, HashSet<TypeParameterSymbol> result) 1291public static void FindTypeParameters(this MethodSymbol method, HashSet<TypeParameterSymbol> result) 1301private static readonly Func<TypeSymbol, HashSet<TypeParameterSymbol>, bool, bool> s_typeParameterSymbolCollector = (typeSymbol, result, _) => 1303if (typeSymbol is TypeParameterSymbol typeParameter) 1769internal static ImmutableArray<TypeParameterSymbol> GetAllTypeParameters(this NamedTypeSymbol type) 1777var builder = ArrayBuilder<TypeParameterSymbol>.GetInstance(); 1786internal static void GetAllTypeParameters(this NamedTypeSymbol type, ArrayBuilder<TypeParameterSymbol> result) 1801internal static TypeParameterSymbol? FindEnclosingTypeParameter(this NamedTypeSymbol type, string name) 1805foreach (TypeParameterSymbol tpEnclosing in type.TypeParameters) 1824internal static TypeParameterSymbol? FindEnclosingTypeParameter(this Symbol methodOrType, string name) 1840foreach (var typeParameter in methodOrType.GetMemberTypeParameters())
Symbols\TypeUnification.cs (6)
209TypeParameterSymbol tp1 = (TypeParameterSymbol)t1.Type; 241var tp2 = (TypeParameterSymbol)t2.Type; 268private static void AddSubstitution(ref MutableTypeMap? substitution, TypeParameterSymbol tp1, TypeWithAnnotations t2) 284private static bool Contains(TypeSymbol type, TypeParameterSymbol typeParam)
Symbols\TypeWithAnnotations.cs (10)
178private static TypeWithAnnotations CreateLazySubstitutedType(TypeSymbol substitutedTypeSymbol, ImmutableArray<CustomModifier> customModifiers, TypeParameterSymbol typeParameter) 212if (((TypeParameterSymbol)typeSymbol).TypeParameterKind == TypeParameterKind.Cref) 326var declaringMethod = (DefaultType as TypeParameterSymbol)?.DeclaringMethod as SourceOrdinaryMethodSymbol; 468if (newTypeWithModifiers.Is((TypeParameterSymbol)typeSymbol) && 473else if (Is((TypeParameterSymbol)typeSymbol) && newTypeWithModifiers.NullableAnnotation != NullableAnnotation.Ignored) 502var typeParameter = (TypeParameterSymbol)typeSymbol; 561public bool Is(TypeParameterSymbol other) 957private readonly TypeParameterSymbol _typeParameter; 962public LazySubstitutedType(ImmutableArray<CustomModifier> customModifiers, TypeParameterSymbol typeParameter)
Symbols\UnboundGenericType.cs (1)
49public static ImmutableArray<TypeWithAnnotations> CreateTypeArguments(ImmutableArray<TypeParameterSymbol> typeParameters, int n, DiagnosticInfo errorInfo)
Symbols\VarianceSafety.cs (6)
261private static void CheckTypeParametersVarianceSafety(ImmutableArray<TypeParameterSymbol> typeParameters, MethodSymbol context, BindingDiagnosticBag diagnostics) 263foreach (TypeParameterSymbol typeParameter in typeParameters) 308TypeParameterSymbol typeParam = (TypeParameterSymbol)type; 388TypeParameterSymbol typeParam = namedType.TypeParameters[i]; 444TypeParameterSymbol unsafeTypeParameter,
Symbols\Wrapped\WrappedTypeParameterSymbol.cs (3)
29protected readonly TypeParameterSymbol _underlyingTypeParameter; 31public WrappedTypeParameterSymbol(TypeParameterSymbol underlyingTypeParameter) 37public TypeParameterSymbol UnderlyingTypeParameter
Utilities\TypeSymbolExtensions.cs (1)
184return ((TypeParameterSymbol)type).EffectiveBaseClassNoUseSiteDiagnostics;