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)
212private sealed class InlineArrayTypeParameterSymbol : TypeParameterSymbol
Symbols\SynthesizedSimpleMethodTypeParameterSymbol.cs (1)
14internal sealed class SynthesizedSimpleMethodTypeParameterSymbol : TypeParameterSymbol
Symbols\Wrapped\WrappedTypeParameterSymbol.cs (1)
22: TypeParameterSymbol
740 references to TypeParameterSymbol
Microsoft.CodeAnalysis.CSharp (740)
Binder\Binder.ValueChecks.cs (5)
2512if (receiver.Type is TypeParameterSymbol typeParameter) 3093private readonly TypeParameterSymbol _type; 3096internal TypeParameterThisParameterSymbol(ParameterSymbol underlyingParameter, TypeParameterSymbol type) 5603ImmutableArray<TypeParameterSymbol>.Empty, 5643ImmutableArray<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)
417Debug.Assert(conversion.ConstrainedToTypeOpt is TypeParameterSymbol); 580method.Parameters[0].Type is ArrayTypeSymbol { IsSZArray: true, ElementType: TypeParameterSymbol }); 785return binder.BindTypeParameterCreationExpression(syntax, (TypeParameterSymbol)type, arguments, initializerOpt, typeSyntax: syntax, wasTargetTyped: true, diagnostics); 1093else if (targetType is TypeParameterSymbol typeParameter) 1163else if (targetType is TypeParameterSymbol typeParameter)
Binder\Binder_Expressions.cs (6)
1509Debug.Assert(symbol is null or LocalSymbol or LocalFunctionSymbol or RangeVariableSymbol or TypeParameterSymbol); 5217return BindTypeParameterCreationExpression(node, (TypeParameterSymbol)type, diagnostics); 7077private BoundExpression BindTypeParameterCreationExpression(ObjectCreationExpressionSyntax node, TypeParameterSymbol typeParameter, BindingDiagnosticBag diagnostics) 7087private static bool TypeParameterHasParameterlessConstructor(SyntaxNode node, TypeParameterSymbol typeParameter, BindingDiagnosticBag diagnostics) 7099SyntaxNode node, TypeParameterSymbol typeParameter, AnalyzedArguments analyzedArguments, InitializerExpressionSyntax? initializerOpt, 9096if (receiverOpt is { Type: TypeParameterSymbol { AllowsRefLikeType: true } } &&
Binder\Binder_Lookup.cs (4)
256this.LookupMembersInTypeParameter(result, (TypeParameterSymbol)type, name, arity, basesBeingResolved, options, originalBinder, diagnose, ref useSiteInfo); 1254private void LookupMembersInTypeParameter(LookupResult current, TypeParameterSymbol typeParameter, string name, int arity, ConsList<TypeSymbol> basesBeingResolved, LookupOptions options, Binder originalBinder, bool diagnose, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 1958this.AddMemberLookupSymbolsInfoInTypeParameter(result, (TypeParameterSymbol)type, options, originalBinder); 2123private 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)
550Debug.Assert(left.Type is not TypeParameterSymbol); 989case (BoundKind.DefaultLiteral, _) when right.Type is TypeParameterSymbol: 993case (_, BoundKind.DefaultLiteral) when left.Type is TypeParameterSymbol: 2829if (constrainedToTypeOpt is not TypeParameterSymbol) 3961if (targetType is TypeParameterSymbol { AllowsRefLikeType: true }) 3968else if (operandType is not TypeParameterSymbol { AllowsRefLikeType: true }) 3972if (operandType is TypeParameterSymbol) 3974Debug.Assert(operandType is TypeParameterSymbol { AllowsRefLikeType: false }); 3980if (targetType is TypeParameterSymbol) 3982Debug.Assert(targetType is TypeParameterSymbol { AllowsRefLikeType: false });
Binder\Binder_Patterns.cs (1)
466var interfaces = inputType is TypeParameterSymbol typeParam ? typeParam.EffectiveInterfacesNoUseSiteDiagnostics : inputType.AllInterfacesNoUseSiteDiagnostics;
Binder\Binder_WithExpression.cs (1)
42cloneMethod = SynthesizedRecordClone.FindValidCloneMethod(receiverType is TypeParameterSymbol typeParameter ? typeParameter.EffectiveBaseClass(ref useSiteInfo) : receiverType, ref useSiteInfo);
Binder\BinderFactory.BinderFactoryVisitor.cs (1)
1363ImmutableArray<TypeParameterSymbol> typeParameters = delegateType.TypeParameters;
Binder\ForEachLoopBinder.cs (3)
1270if (enumeratorType is TypeParameterSymbol { AllowsRefLikeType: true }) 1843var 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)
511internal TypeParameterSymbol? ConstrainedToTypeOpt
Binder\Semantics\Conversions\ConversionsBase.cs (25)
1897private static bool HasIdentityConversionToAny(NamedTypeSymbol type, ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)> targetTypes) 2670return HasImplicitReferenceTypeParameterConversion((TypeParameterSymbol)source, destination, ref useSiteInfo); 2849public bool HasImplicitTypeParameterConversion(TypeParameterSymbol source, TypeSymbol destination, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 2861if (destination is TypeParameterSymbol { AllowsRefLikeType: false } && 2863source.DependsOn((TypeParameterSymbol)destination)) 2871private bool HasImplicitReferenceTypeParameterConversion(TypeParameterSymbol source, TypeSymbol destination, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 2904if (destination is TypeParameterSymbol { AllowsRefLikeType: false } && 2905source.DependsOn((TypeParameterSymbol)destination)) 2914private bool HasImplicitEffectiveBaseConversion(TypeParameterSymbol source, TypeSymbol destination, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 2938private bool HasImplicitEffectiveInterfaceSetConversion(TypeParameterSymbol source, TypeSymbol destination, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 2943private bool HasVarianceCompatibleInterfaceInEffectiveInterfaceSet(TypeParameterSymbol source, TypeSymbol destination, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 3021if (typeToCheck is TypeParameterSymbol typeParameter) 3186TypeParameterSymbol typeParameterSymbol = (TypeParameterSymbol)typeParameters[paramIndex].Type; 3248private bool HasImplicitBoxingTypeParameterConversion(TypeParameterSymbol source, TypeSymbol destination, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 3281if (destination is TypeParameterSymbol { AllowsRefLikeType: false } d && 3309HasImplicitBoxingTypeParameterConversion((TypeParameterSymbol)source, destination, ref useSiteInfo)) 3533TypeParameterSymbol s = source as TypeParameterSymbol; 3534TypeParameterSymbol t = destination as TypeParameterSymbol; 3585TypeParameterSymbol s = source as TypeParameterSymbol; 3586TypeParameterSymbol 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, 961var d = ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)>.GetInstance();
Binder\Semantics\Operators\BinaryOperatorOverloadResolution.cs (7)
136if (!isShift && (leftOperatorSourceOpt is null || (leftOperatorSourceOpt is not TypeParameterSymbol && rightOperatorSourceOpt is TypeParameterSymbol))) 246interfaces = ((TypeParameterSymbol)operatorSourceOpt).AllEffectiveInterfacesWithDefinitionUseSiteDiagnostics(ref useSiteInfo); 721if ((left.Type is TypeParameterSymbol { AllowsRefLikeType: true } && right.IsLiteralNull()) || 722(right.Type is TypeParameterSymbol { AllowsRefLikeType: true } && left.IsLiteralNull())) 779return (operand.Type is TypeParameterSymbol { AllowsRefLikeType: true }) ? Conversion.Boxing : Conversions.ClassifyConversionFromExpression(operand, objectType, isChecked: isChecked, ref useSiteInfo); 895current = ((TypeParameterSymbol)type0).EffectiveBaseClass(ref useSiteInfo);
Binder\Semantics\Operators\UnaryOperatorOverloadResolution.cs (3)
380TypeSymbol constrainedToTypeOpt = type0 as TypeParameterSymbol; 399current = ((TypeParameterSymbol)type0).EffectiveBaseClass(ref useSiteInfo); 426interfaces = ((TypeParameterSymbol)type0).AllEffectiveInterfacesWithDefinitionUseSiteDiagnostics(ref useSiteInfo);
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (23)
134private readonly ImmutableArray<TypeParameterSymbol> _methodTypeParameters; 143private readonly Dictionary<TypeParameterSymbol, int> _ordinals; 173ImmutableArray<TypeParameterSymbol> methodTypeParameters, 281Dictionary<TypeParameterSymbol, int> ordinals = null) 325ImmutableArray<TypeParameterSymbol> methodTypeParameters, 331Dictionary<TypeParameterSymbol, int>? ordinals) 506TypeParameterSymbol typeParameter = (TypeParameterSymbol)type.Type; 513private int GetOrdinal(TypeParameterSymbol typeParameter) 539var methodTypeParameter = (TypeParameterSymbol)methodTypeParameterWithAnnotations.Type; 655var ordinal = GetOrdinal((TypeParameterSymbol)target.Type); 1008private static bool DoesInputTypeContain(BoundExpression argument, TypeSymbol formalParameterType, TypeParameterSymbol typeParameter) 1064TypeParameterSymbol typeParameter) 2286sourceBase = ((TypeParameterSymbol)source).EffectiveBaseClass(ref useSiteInfo); 2329var typeParameter = (TypeParameterSymbol)source; 2388var typeParameters = ArrayBuilder<TypeParameterSymbol>.GetInstance(); 2738var typeParameters = ArrayBuilder<TypeParameterSymbol>.GetInstance(); 2829var typeParameter = _methodTypeParameters[iParam]; 2861TypeParameterSymbol typeParameter, 3017static bool hasExpressionTypeConstraint(TypeParameterSymbol typeParameter) 3317TypeParameterSymbol pParam = _methodTypeParameters[iParam];
Binder\Semantics\OverloadResolution\OverloadResolution.cs (3)
4285ImmutableArray<TypeParameterSymbol> typeParameters = leastOverriddenMember.GetTypeParametersIncludingExtension(); 4398ImmutableArray<TypeParameterSymbol> originalTypeParameters, 4413Dictionary<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>(); 78private void AddTypeParameters(TypeSyntax typeSyntax, MultiDictionary<string, TypeParameterSymbol> map) 103private void AddTypeParameters(MemberCrefSyntax memberSyntax, MultiDictionary<string, TypeParameterSymbol> map) 112private static void AddTypeParameters(GenericNameSyntax genericNameSyntax, MultiDictionary<string, TypeParameterSymbol> map) 132TypeParameterSymbol typeParameterSymbol = new CrefTypeParameterSymbol(name, i, typeParameterSyntax); 145foreach (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 (1)
22protected abstract MultiDictionary<string, TypeParameterSymbol> TypeParameterMap { get; }
CodeGen\EmitExpression.cs (1)
441((TypeParameterSymbol)receiverType).EffectiveInterfacesNoUseSiteDiagnostics.IsEmpty) || // This could be a nullable value type, which must be copied in order to not mutate the original value
CodeGen\EmitOperators.cs (1)
375if (comparand is BoundConversion { Type.SpecialType: SpecialType.System_Object, ConversionKind: ConversionKind.Boxing, Operand.Type: TypeParameterSymbol { AllowsRefLikeType: true } } &&
Compilation\BuiltInOperators.cs (2)
885leftType = ((TypeParameterSymbol)leftType).EffectiveBaseClass(ref useSiteInfo); 896rightType = ((TypeParameterSymbol)rightType).EffectiveBaseClass(ref useSiteInfo);
Compilation\SyntaxTreeSemanticModel.cs (3)
2230private TypeParameterSymbol GetTypeParameterSymbol(ImmutableArray<TypeParameterSymbol> parameters, TypeParameterSyntax parameter) 2232foreach (var symbol in parameters)
Compiler\ClsComplianceChecker.cs (2)
553private void CheckTypeParameterCompliance(ImmutableArray<TypeParameterSymbol> typeParameters, NamedTypeSymbol context) 557foreach (TypeParameterSymbol typeParameter in typeParameters)
Compiler\DocumentationCommentCompiler.cs (8)
363HashSet<TypeParameterSymbol> documentedTypeParameters; 431foreach (TypeParameterSymbol typeParameter in GetTypeParameters(symbol)) 532out HashSet<TypeParameterSymbol> documentedTypeParameters, 673private static ImmutableArray<TypeParameterSymbol> GetTypeParameters(Symbol symbol) 683return ImmutableArray<TypeParameterSymbol>.Empty; 1165ref HashSet<TypeParameterSymbol> documentedTypeParameters, 1184documentedTypeParameters = new HashSet<TypeParameterSymbol>(); 1242if (!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)
94public override object VisitTypeParameter(TypeParameterSymbol symbol, StringBuilder builder)
DocumentationComments\DocumentationCommentIDVisitor.PartVisitor.cs (1)
148public override object VisitTypeParameter(TypeParameterSymbol symbol, StringBuilder builder)
Emitter\EditAndContinue\CSharpSymbolMatcher.cs (6)
438public override Symbol VisitTypeParameter(TypeParameterSymbol symbol) 731private static bool AreTypeParametersEqual(TypeParameterSymbol type, TypeParameterSymbol other) 777return AreTypeParametersEqual((TypeParameterSymbol)type, (TypeParameterSymbol)other); 945public override Symbol VisitTypeParameter(TypeParameterSymbol symbol)
Emitter\Model\MethodSymbolAdapter.cs (1)
337foreach (var @param in AdaptedMethodSymbol.TypeParameters)
Emitter\Model\NamedTypeSymbolAdapter.cs (1)
460foreach (var t in AdaptedNamedTypeSymbol.TypeParameters)
Emitter\Model\PEModuleBuilder.cs (2)
1127internal static Cci.IGenericParameterReference Translate(TypeParameterSymbol param) 1158return Translate((TypeParameterSymbol)typeSymbol);
Emitter\Model\TypeParameterSymbolAdapter.cs (2)
390internal TypeParameterSymbolAdapter(TypeParameterSymbol underlyingTypeParameterSymbol) 396internal TypeParameterSymbol AdaptedTypeParameterSymbol { get; }
FlowAnalysis\NullableWalker.cs (11)
2380if (type.Type.IsTypeParameterDisallowingAnnotationInCSharp8() && !(type.Type is TypeParameterSymbol { IsNotNullable: true })) 5670TypeParameterSymbol tp => tp.EffectiveBaseClassNoUseSiteDiagnostics, 5676TypeParameterSymbol tp => tp.AllEffectiveInterfacesNoUseSiteDiagnostics, 8161Dictionary<TypeParameterSymbol, int>? ordinals = definition.MakeAdjustedTypeParameterOrdinalsIfNeeded(typeParameters); 9506type is TypeParameterSymbol typeParameter1 && 9507dependsOnTypeParameter(typeParameter1, (TypeParameterSymbol)targetType.Type, NullableAnnotation.NotAnnotated, out var annotation)) 9537type is TypeParameterSymbol typeParameter1 && 9538targetType.Type is TypeParameterSymbol typeParameter2) 9577static bool dependsOnTypeParameter(TypeParameterSymbol typeParameter1, TypeParameterSymbol typeParameter2, NullableAnnotation typeParameter1Annotation, out NullableAnnotation annotation) 9588if (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 (8)
169var usedTypeParameters = PooledHashSet<TypeParameterSymbol>.GetInstance(); 207static bool usedTypeParametersContains(HashSet<TypeParameterSymbol> used, ImmutableArray<TypeParameterSymbol> typeParameters) 209foreach (var typeParameter in typeParameters) 221private static void FindTypeParameters(TypeSymbol type, HashSet<TypeParameterSymbol> result) 224private static void FindTypeParameters(MethodSymbol method, HashSet<TypeParameterSymbol> result) 234private static readonly Func<TypeSymbol, HashSet<TypeParameterSymbol>, bool, bool> s_typeParameterSymbolCollector = (typeSymbol, result, _) => 236if (typeSymbol is TypeParameterSymbol typeParameter)
Lowering\LocalRewriter\LocalRewriter_Conversion.cs (3)
1221var constrainedToTypeOpt = conversion.ConstrainedToTypeOpt; 1366var constrainedToTypeOpt = conversion.ConstrainedToTypeOpt; 1443var constrainedToTypeOpt = conversion.ConstrainedToTypeOpt;
Lowering\LocalRewriter\LocalRewriter_ObjectCreationExpression.cs (2)
314var rewrittenNewT = MakeNewT(node.Syntax, (TypeParameterSymbol)node.Type); 323private BoundExpression MakeNewT(SyntaxNode syntax, TypeParameterSymbol typeParameter)
Lowering\LocalRewriter\LoweredDynamicOperationFactory.cs (1)
700return synthesizedContainer.Construct(synthesizedContainer.ConstructedFromTypeParameters.Cast<TypeParameterSymbol, TypeSymbol>());
Lowering\MethodToClassRewriter.cs (2)
438ImmutableArray<TypeParameterSymbol> typeParameters; 441typeParameters = 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)
1516arg.Type is TypeParameterSymbol { AllowsRefLikeType: true } && type.IsObjectType())
Operations\CSharpOperationFactory.cs (9)
454TypeParameterSymbol? constrainedToType = GetConstrainedToType(targetMethod, boundCall.ReceiverOpt); 461private static TypeParameterSymbol? GetConstrainedToType(Symbol targetMember, BoundExpression? receiverOpt) 464receiverOpt is BoundTypeExpression { Type: TypeParameterSymbol typeParameter }) 620TypeParameterSymbol? constrainedToType = GetConstrainedToType(boundPropertyAccess.PropertySymbol, boundPropertyAccess.ReceiverOpt); 639TypeParameterSymbol? constrainedToType = GetConstrainedToType(property, boundIndexerAccess.ReceiverOpt); 650TypeParameterSymbol? constrainedToType = GetConstrainedToType(boundEventAccess.EventSymbol, boundEventAccess.ReceiverOpt); 1162TypeParameterSymbol? constrainedToType = GetConstrainedToType(methodSymbol, boundMethodGroup.ReceiverOpt); 1374private static TypeParameterSymbol? GetConstrainedToTypeForOperator(MethodSymbol? operatorMethod, TypeSymbol? constrainedToTypeOpt) 1377constrainedToTypeOpt 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 (9)
339static SynthesizedDelegateKey getTemplateKey(AnonymousTypeDescriptor typeDescr, ImmutableArray<TypeParameterSymbol> typeParameters) 351private static ImmutableArray<TypeParameterSymbol> GetReferencedTypeParameters(AnonymousTypeDescriptor typeDescr) 353var referenced = PooledHashSet<TypeParameterSymbol>.GetInstance(); 361if (type is TypeParameterSymbol typeParameter) 371ImmutableArray<TypeParameterSymbol> typeParameters; 374typeParameters = ImmutableArray<TypeParameterSymbol>.Empty; 378var builder = ArrayBuilder<TypeParameterSymbol>.GetInstance(); 386static int compareTypeParameters(TypeParameterSymbol x, TypeParameterSymbol y)
Symbols\AnonymousTypes\PublicSymbols\AnonymousManager.TypeOrDelegatePublicSymbol.cs (2)
98public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters 100get { 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); 245public 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); 150public 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)
1191TypeParameterSymbol typeParam = (TypeParameterSymbol)type; 1205TypeParameterSymbol 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, 901ImmutableArray<TypeParameterSymbol> typeParameters, 907HashSet<TypeParameterSymbol> ignoreTypeConstraintsDependentOnTypeParametersOpt = null) 952TypeParameterSymbol typeParameter, 1059TypeParameterSymbol typeParameter, 1064HashSet<TypeParameterSymbol> ignoreTypeConstraintsDependentOnTypeParametersOpt) 1120static bool errorIfNotSatisfiesConstructorConstraint(Symbol containingSymbol, TypeParameterSymbol typeParameter, TypeWithAnnotations typeArgument, ArrayBuilder<TypeParameterDiagnosticInfo> diagnosticsBuilder) 1145TypeParameterSymbol typeParameter, 1169TypeParameterSymbol typeParameter, 1246var typeParameter = type as TypeParameterSymbol; 1284var typeParameter = type as TypeParameterSymbol; 1302TypeParameterSymbol typeParameter, 1387var typeParameter = (TypeParameterSymbol)typeArgument.Type; 1441private static bool IsReferenceType(TypeParameterSymbol typeParameter, ImmutableArray<TypeWithAnnotations> constraintTypes) 1443return typeParameter.HasReferenceTypeConstraint || TypeParameterSymbol.CalculateIsReferenceTypeFromConstraintTypes(constraintTypes); 1446private static bool IsValueType(TypeParameterSymbol typeParameter, ImmutableArray<TypeWithAnnotations> constraintTypes) 1448return typeParameter.HasValueTypeConstraint || TypeParameterSymbol.CalculateIsValueTypeFromConstraintTypes(constraintTypes); 1451private static TypeParameterDiagnosticInfo GenerateConflictingConstraintsError(TypeParameterSymbol typeParameter, TypeSymbol deducedBase, bool classConflict) 1502var typeParameter = (TypeParameterSymbol)typeArgument;
Symbols\ConstructedNamedTypeSymbol.cs (1)
96internal static bool TypeParametersMatchTypeArguments(ImmutableArray<TypeParameterSymbol> typeParameters, ImmutableArray<TypeWithAnnotations> typeArguments)
Symbols\ErrorMethodSymbol.cs (2)
148public override ImmutableArray<TypeParameterSymbol> TypeParameters 150get { return ImmutableArray<TypeParameterSymbol>.Empty; }
Symbols\ErrorTypeSymbol.cs (9)
25private ImmutableArray<TypeParameterSymbol> _lazyTypeParameters; 317public override ImmutableArray<TypeParameterSymbol> TypeParameters 325default(ImmutableArray<TypeParameterSymbol>)); 331private ImmutableArray<TypeParameterSymbol> GetTypeParameters() 336return ImmutableArray<TypeParameterSymbol>.Empty; 340var @params = new TypeParameterSymbol[arity]; 683public override ImmutableArray<TypeParameterSymbol> TypeParameters 712private readonly ImmutableArray<TypeParameterSymbol> _typeParameters; 722public 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)
15private readonly ImmutableArray<TypeParameterSymbol> _typeParameters; 18protected RewrittenMethodSymbol(MethodSymbol originalMethod, TypeMap typeMap, ImmutableArray<TypeParameterSymbol> typeParametersToAlphaRename) 32public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters
Symbols\Extensions\SynthesizedExtensionMarker.cs (5)
117static void checkUnderspecifiedGenericExtension(ParameterSymbol parameter, ImmutableArray<TypeParameterSymbol> typeParameters, BindingDiagnosticBag diagnostics) 120var usedTypeParameters = PooledHashSet<TypeParameterSymbol>.GetInstance(); 123foreach (var typeParameter in typeParameters) 134static bool collectTypeParameters(TypeSymbol type, PooledHashSet<TypeParameterSymbol> typeParameters, bool ignored) 136if (type is TypeParameterSymbol typeParameter)
Symbols\FunctionPointers\FunctionPointerMethodSymbol.cs (2)
820public override ImmutableArray<TypeParameterSymbol> TypeParameters => ImmutableArray<TypeParameterSymbol>.Empty;
Symbols\MemberSignatureComparer.cs (9)
641public static bool HaveSameConstraints(ImmutableArray<TypeParameterSymbol> typeParameters1, TypeMap? typeMap1, ImmutableArray<TypeParameterSymbol> typeParameters2, TypeMap? typeMap2) 657public static bool HaveSameConstraints(TypeParameterSymbol typeParameter1, TypeMap? typeMap1, TypeParameterSymbol typeParameter2, TypeMap? typeMap2) 674private static bool HaveSameTypeConstraints(TypeParameterSymbol typeParameter1, TypeMap? typeMap1, TypeParameterSymbol typeParameter2, TypeMap? typeMap2, IEqualityComparer<TypeSymbol> comparer) 701public static bool HaveSameNullabilityInConstraints(TypeParameterSymbol typeParameter1, TypeMap typeMap1, TypeParameterSymbol typeParameter2, TypeMap typeMap2) 721private static bool AreConstraintTypesSubset(HashSet<TypeSymbol> constraintTypes1, HashSet<TypeSymbol> constraintTypes2, TypeParameterSymbol typeParameter2)
Symbols\MemberSymbolExtensions.cs (7)
130internal static ImmutableArray<TypeParameterSymbol> GetTypeParametersIncludingExtension<TMember>(this TMember member) where TMember : Symbol 150internal static Dictionary<TypeParameterSymbol, int>? MakeAdjustedTypeParameterOrdinalsIfNeeded<TMember>(this TMember member, ImmutableArray<TypeParameterSymbol> originalTypeParameters) 155Dictionary<TypeParameterSymbol, int>? ordinals = null; 162ordinals = new Dictionary<TypeParameterSymbol, int>(ReferenceEqualityComparer.Instance); 556internal static ImmutableArray<TypeParameterSymbol> GetMemberTypeParameters(this Symbol symbol) 568return 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)
387private ImmutableArray<TypeParameterSymbol> _lazyTypeParameters; 843ImmutableArray<TypeParameterSymbol>.Empty); 906public override ImmutableArray<TypeParameterSymbol> TypeParameters 921private ImmutableArray<TypeParameterSymbol> EnsureTypeParametersAreLoaded(ref DiagnosticInfo diagnosticInfo) 932private ImmutableArray<TypeParameterSymbol> LoadTypeParameters(ref DiagnosticInfo diagnosticInfo) 941return ImmutableArray<TypeParameterSymbol>.Empty; 945var ownedParams = ImmutableArray.CreateBuilder<TypeParameterSymbol>(gpHandles.Count); 957return ImmutableArray<TypeParameterSymbol>.Empty; 1551foreach (var typeParam in TypeParameters)
Symbols\Metadata\PE\PENamedTypeSymbol.cs (10)
488ImmutableArray<TypeParameterSymbol> combinedTypeParameters = @this.TypeParameters.Concat(method.TypeParameters); 1840public override ImmutableArray<TypeParameterSymbol> TypeParameters 1844return ImmutableArray<TypeParameterSymbol>.Empty; 2434foreach (var typeParameter in TypeParameters) 2871private ImmutableArray<TypeParameterSymbol> _lazyTypeParameters; 2891_lazyTypeParameters = ImmutableArray<TypeParameterSymbol>.Empty; 2934public override ImmutableArray<TypeParameterSymbol> TypeParameters 2959var ownedParams = ArrayBuilder<TypeParameterSymbol>.GetInstance(_arity); 3021var containingTypeParameter = containingTypeParameters[i]; 3022var 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) 658private TypeParameterBounds GetBounds(ConsList<TypeParameterSymbol> inProgress)
Symbols\Metadata\PE\SymbolFactory.cs (1)
141ImmutableArray<TypeParameterSymbol> typeParameters = genericType.GetAllTypeParameters();
Symbols\MethodSymbol.cs (2)
269public abstract ImmutableArray<TypeParameterSymbol> TypeParameters { get; } 831public virtual TypeSymbol GetTypeInferredDuringReduction(TypeParameterSymbol reducedFromTypeParameter)
Symbols\MutableTypeMap.cs (2)
20: base(new SmallDictionary<TypeParameterSymbol, TypeWithAnnotations>()) 24internal void Add(TypeParameterSymbol key, TypeWithAnnotations value)
Symbols\NamedTypeSymbol.cs (3)
62public abstract ImmutableArray<TypeParameterSymbol> TypeParameters { get; } 1010var allTypeParameters = ArrayBuilder<TypeParameterSymbol>.GetInstance(); 1041ArrayBuilder<TypeParameterSymbol> allTypeParameters,
Symbols\NativeIntegerTypeSymbol.cs (4)
39public override ImmutableArray<TypeParameterSymbol> TypeParameters => ImmutableArray<TypeParameterSymbol>.Empty; 356public 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)
26private readonly ImmutableArray<TypeParameterSymbol> _typeParameters; 173var notInferredTypeParameters = PooledHashSet<TypeParameterSymbol>.GetInstance(); 257public override TypeSymbol GetTypeInferredDuringReduction(TypeParameterSymbol reducedFromTypeParameter) 286public 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)
30private ImmutableArray<TypeParameterSymbol> _lazyTypeParameters; 66public override ImmutableArray<TypeParameterSymbol> TypeParameters 74_lazyTypeParameters = ImmutableArray<TypeParameterSymbol>.Empty; 79this.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)
38public RetargetingTypeParameterSymbol(RetargetingModuleSymbol retargetingModule, TypeParameterSymbol underlyingTypeParameter) 84internal override ImmutableArray<TypeWithAnnotations> GetConstraintTypes(ConsList<TypeParameterSymbol> inProgress) 97internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) 102internal override NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress) 107internal 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\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)
193public override ImmutableArray<TypeParameterSymbol> TypeParameters 195get { return ImmutableArray<TypeParameterSymbol>.Empty; }
Symbols\Source\LocalFunctionSymbol.cs (3)
317public override ImmutableArray<TypeParameterSymbol> TypeParameters 318=> _typeParameters.Cast<SourceMethodTypeParameterSymbol, TypeParameterSymbol>(); 442var tpEnclosing = ContainingSymbol.FindEnclosingTypeParameter(name);
Symbols\Source\SourceConstructorSymbolBase.cs (2)
140public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters 142get { return ImmutableArray<TypeParameterSymbol>.Empty; }
Symbols\Source\SourceDelegateMethodSymbol.cs (2)
145public override ImmutableArray<TypeParameterSymbol> TypeParameters 149return ImmutableArray<TypeParameterSymbol>.Empty;
Symbols\Source\SourceDestructorSymbol.cs (2)
110public override ImmutableArray<TypeParameterSymbol> TypeParameters 112get { 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)
600foreach (var typeParameter in this.TypeParameters) 1698else if (member is TypeParameterSymbol || member is SynthesizedMethodBaseSymbol) 2263foreach (TypeParameterSymbol typeParameter in indexer.ContainingType.TypeParameters) 2541foreach (var tp in TypeParameters) 4872ImmutableArray<TypeParameterSymbol>.Empty, 4919ImmutableArray<TypeParameterSymbol>.Empty, 4972ImmutableArray<TypeParameterSymbol>.Empty, 5032ImmutableArray<TypeParameterSymbol>.Empty, 5206ImmutableArray<TypeParameterSymbol>.Empty, 5299ImmutableArray<TypeParameterSymbol>.Empty, 5879foreach (var typeParameter in TypeParameters)
Symbols\Source\SourceMemberMethodSymbol.cs (2)
934foreach (var typeParameter in this.TypeParameters) 1018foreach (var typeParameter in method.TypeParameters)
Symbols\Source\SourceNamedTypeSymbol.cs (4)
141private ImmutableArray<TypeParameterSymbol> MakeTypeParameters(BindingDiagnosticBag diagnostics) 145return ImmutableArray<TypeParameterSymbol>.Empty; 223var tpEnclosing = ContainingType.FindEnclosingTypeParameter(name); 748public override ImmutableArray<TypeParameterSymbol> TypeParameters
Symbols\Source\SourceOrdinaryMethodSymbol.cs (13)
192if (type.DefaultType is TypeParameterSymbol typeParameterSymbol && typeParameterSymbol.DeclaringMethod == (object)args.method) 612var typeParameter1 = typeParameters1[i]; 613var typeParameter2 = typeParameters2[i]; 651var typeParameter = this.TypeParameters[i]; 969public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters 970=> ImmutableArray<TypeParameterSymbol>.Empty; 1050public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters 1122private ImmutableArray<TypeParameterSymbol> MakeTypeParameters(MethodDeclarationSyntax syntax, BindingDiagnosticBag diagnostics) 1126return ImmutableArray<TypeParameterSymbol>.Empty; 1144var result = ArrayBuilder<TypeParameterSymbol>.GetInstance(); 1160var tpEnclosing = ContainingType.FindEnclosingTypeParameter(name); 1193var typeParameter = (typeMap != null) ? 1194(TypeParameterSymbol)new SourceOverridingMethodTypeParameterSymbol(
Symbols\Source\SourceOrdinaryMethodSymbolBase.cs (1)
80public abstract override ImmutableArray<TypeParameterSymbol> TypeParameters { get; }
Symbols\Source\SourcePropertyAccessorSymbol.cs (2)
335public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters 337get { 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); 584protected override ImmutableArray<TypeParameterSymbol> ContainerTypeParameters 589protected override TypeParameterBounds ResolveBounds(ConsList<TypeParameterSymbol> inProgress, BindingDiagnosticBag diagnostics) 651protected sealed override ImmutableArray<TypeParameterSymbol> ContainerTypeParameters 656protected abstract override TypeParameterBounds ResolveBounds(ConsList<TypeParameterSymbol> inProgress, BindingDiagnosticBag diagnostics); 765protected override TypeParameterBounds ResolveBounds(ConsList<TypeParameterSymbol> inProgress, BindingDiagnosticBag diagnostics) 811public TypeParameterSymbol GetOverriddenTypeParameter(int ordinal) 920var typeParameter = this.OverriddenTypeParameter; 929var typeParameter = this.OverriddenTypeParameter; 938var typeParameter = this.OverriddenTypeParameter; 947var typeParameter = this.OverriddenTypeParameter; 956var typeParameter = this.OverriddenTypeParameter; 965var typeParameter = this.OverriddenTypeParameter; 974TypeParameterSymbol typeParameter = this.OverriddenTypeParameter; 999var typeParameter = this.OverriddenTypeParameter; 1004protected override TypeParameterBounds ResolveBounds(ConsList<TypeParameterSymbol> inProgress, BindingDiagnosticBag diagnostics) 1006var typeParameter = this.OverriddenTypeParameter; 1023private TypeParameterSymbol OverriddenTypeParameter
Symbols\Source\SourceUserDefinedOperatorSymbolBase.cs (3)
838return type is TypeParameterSymbol p && 903public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters 905get { 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)
32private ImmutableArray<TypeParameterSymbol> _lazyTypeParameters; 92public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters 108ImmutableArray<TypeParameterSymbol> typeParameters; 122ImmutableInterlocked.InterlockedCompareExchange(ref _lazyTypeParameters, typeParameters, default(ImmutableArray<TypeParameterSymbol>)); 173public override TypeSymbol 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 (8)
28internal SubstitutedTypeParameterSymbol(Symbol newContainer, TypeMap map, TypeParameterSymbol substitutedFrom, int ordinal) 49public override TypeParameterSymbol OriginalDefinition 61public override TypeParameterSymbol ReducedFrom 99internal override ImmutableArray<TypeWithAnnotations> GetConstraintTypes(ConsList<TypeParameterSymbol> inProgress) 162_map.SubstituteConstraintTypesDistinctWithoutModifiers(_underlyingTypeParameter, _underlyingTypeParameter.GetConstraintTypes(ConsList<TypeParameterSymbol>.Empty), constraintTypes, null); 170internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) 175internal override NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress) 180internal override TypeSymbol GetDeducedBaseType(ConsList<TypeParameterSymbol> inProgress)
Symbols\Symbol.cs (2)
1383internal static bool GetUnificationUseSiteDiagnosticRecursive(ref DiagnosticInfo result, ImmutableArray<TypeParameterSymbol> typeParameters, Symbol owner, ref HashSet<TypeSymbol> checkedTypes) 1385foreach (var typeParameter in typeParameters)
Symbols\SymbolExtensions.cs (4)
419internal static TypeParameterSymbol? EnsureCSharpSymbolOrNull(this ITypeParameterSymbol? symbol, string paramName) 421return (TypeParameterSymbol?)EnsureCSharpSymbolOrNull((ISymbol?)symbol, paramName); 646internal static ITypeParameterSymbol? GetPublicSymbol(this TypeParameterSymbol? symbol) 721internal 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)
123public 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); 800public override ImmutableArray<TypeParameterSymbol> TypeParameters { get; }
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; 74internal ImmutableArray<TypeParameterSymbol> ConstructedFromTypeParameters => _constructedFromTypeParameters; 76public sealed override ImmutableArray<TypeParameterSymbol> TypeParameters => _typeParameters;
Symbols\Synthesized\SynthesizedDelegateSymbol.cs (2)
176public override ImmutableArray<TypeParameterSymbol> TypeParameters 178get { 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) 158public override ImmutableArray<TypeParameterSymbol> TypeParameters 165return ImmutableArray<TypeParameterSymbol>.Empty;
Symbols\Synthesized\SynthesizedHotReloadExceptionSymbol.cs (1)
85public 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; } 259internal override ImmutableArray<TypeWithAnnotations> GetConstraintTypes(ConsList<TypeParameterSymbol> inProgress) => ImmutableArray<TypeWithAnnotations>.Empty; 261internal override TypeSymbol GetDeducedBaseType(ConsList<TypeParameterSymbol> inProgress) => ContainingAssembly.GetSpecialType(SpecialType.System_Object); 263internal override NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress) => ContainingAssembly.GetSpecialType(SpecialType.System_Object); 265internal 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)
247public override ImmutableArray<TypeParameterSymbol> TypeParameters 251return ImmutableArray<TypeParameterSymbol>.Empty;
Symbols\Synthesized\SynthesizedPrivateImplementationDetailsType.cs (2)
41public override ImmutableArray<TypeParameterSymbol> TypeParameters => ImmutableArray<TypeParameterSymbol>.Empty;
Symbols\Synthesized\SynthesizedSealedPropertyAccessor.cs (2)
209public override ImmutableArray<TypeParameterSymbol> TypeParameters 213return ImmutableArray<TypeParameterSymbol>.Empty;
Symbols\Synthesized\SynthesizedSimpleProgramEntryPointSymbol.cs (2)
131public override ImmutableArray<TypeParameterSymbol> TypeParameters 135return ImmutableArray<TypeParameterSymbol>.Empty;
Symbols\Synthesized\SynthesizedStaticConstructor.cs (2)
64public override ImmutableArray<TypeParameterSymbol> TypeParameters 68return ImmutableArray<TypeParameterSymbol>.Empty;
Symbols\Synthesized\SynthesizedSubstitutedTypeParameterSymbol.cs (1)
19public SynthesizedSubstitutedTypeParameterSymbol(Symbol owner, TypeMap map, TypeParameterSymbol substitutedFrom, int ordinal)
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 (28)
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, out ImmutableArray<TypeParameterSymbol> newTypeParameters) 106newTypeParameters = ImmutableArray<TypeParameterSymbol>.Empty; 117ArrayBuilder<TypeParameterSymbol> newTypeParametersBuilder = ArrayBuilder<TypeParameterSymbol>.GetInstance(); 124foreach (var tp in oldTypeParameters) 138internal TypeMap WithAlphaRename(NamedTypeSymbol oldOwner, NamedTypeSymbol newOwner, out ImmutableArray<TypeParameterSymbol> newTypeParameters) 144internal TypeMap WithAlphaRename(MethodSymbol oldOwner, Symbol newOwner, out ImmutableArray<TypeParameterSymbol> newTypeParameters) 150internal static ImmutableArray<TypeParameterSymbol> ConcatMethodTypeParameters(MethodSymbol oldOwner, MethodSymbol stopAt) 167var parameters = ArrayBuilder<TypeParameterSymbol>.GetInstance(); 193private static SmallDictionary<TypeParameterSymbol, TypeWithAnnotations> ConstructMapping(ImmutableArray<TypeParameterSymbol> from, ImmutableArray<TypeWithAnnotations> to) 195var mapping = new SmallDictionary<TypeParameterSymbol, TypeWithAnnotations>(ReferenceEqualityComparer.Instance); 201TypeParameterSymbol 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; 655return this.Equals(t2 as TypeParameterSymbol, comparison); 658internal bool Equals(TypeParameterSymbol other) 663private 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)
108var interfaces = (baseType.TypeKind == TypeKind.TypeParameter) ? ((TypeParameterSymbol)baseType).EffectiveInterfacesNoUseSiteDiagnostics : baseType.InterfacesNoUseSiteDiagnostics(); 239return this.IsTypeParameter() ? ((TypeParameterSymbol)this).EffectiveBaseClassNoUseSiteDiagnostics : this; 245return this.IsTypeParameter() ? ((TypeParameterSymbol)this).EffectiveBaseClass(ref useSiteInfo) : this; 344var interfaces = (baseType.TypeKind == TypeKind.TypeParameter) ? ((TypeParameterSymbol)baseType).EffectiveInterfacesNoUseSiteDiagnostics : baseType.InterfacesNoUseSiteDiagnostics(); 2125var typeParameter1 = typeParameters1[i]; 2126var typeParameter2 = typeParameters2[i];
Symbols\TypeSymbolExtensions.cs (20)
76var typeParameter = (TypeParameterSymbol)type; 93return type is TypeParameterSymbol { IsValueType: false, IsNotNullable: false }; 120var constraintTypes = ((TypeParameterSymbol)type).ConstraintTypesNoUseSiteDiagnostics; 351public static bool IsMethodTypeParameter(this TypeParameterSymbol p) 427var typeParameter = (TypeParameterSymbol)type; 547return type is { IsRefLikeType: true } or TypeParameterSymbol { AllowsRefLikeType: true }; 1199public static bool ContainsTypeParameter(this TypeSymbol type, TypeParameterSymbol? parameter = null) 1205private static readonly Func<TypeSymbol, TypeParameterSymbol?, bool, bool> s_containsTypeParameterPredicate = 1219public static bool ContainsTypeParameters(this TypeSymbol type, HashSet<TypeParameterSymbol> parameters) 1225private static readonly Func<TypeSymbol, HashSet<TypeParameterSymbol>, bool, bool> s_containsTypeParametersPredicate = 1226(type, parameters, unused) => type.TypeKind == TypeKind.TypeParameter && parameters.Contains((TypeParameterSymbol)type); 1686internal static ImmutableArray<TypeParameterSymbol> GetAllTypeParameters(this NamedTypeSymbol type) 1694var builder = ArrayBuilder<TypeParameterSymbol>.GetInstance(); 1703internal static void GetAllTypeParameters(this NamedTypeSymbol type, ArrayBuilder<TypeParameterSymbol> result) 1718internal static TypeParameterSymbol? FindEnclosingTypeParameter(this NamedTypeSymbol type, string name) 1722foreach (TypeParameterSymbol tpEnclosing in type.TypeParameters) 1741internal static TypeParameterSymbol? FindEnclosingTypeParameter(this Symbol methodOrType, string name) 1757foreach (var typeParameter in methodOrType.GetMemberTypeParameters())
Symbols\TypeUnification.cs (6)
190TypeParameterSymbol tp1 = (TypeParameterSymbol)t1.Type; 222var tp2 = (TypeParameterSymbol)t2.Type; 249private static void AddSubstitution(ref MutableTypeMap? substitution, TypeParameterSymbol tp1, TypeWithAnnotations t2) 265private 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)
27protected readonly TypeParameterSymbol _underlyingTypeParameter; 29public WrappedTypeParameterSymbol(TypeParameterSymbol underlyingTypeParameter) 35public TypeParameterSymbol UnderlyingTypeParameter
Utilities\TypeSymbolExtensions.cs (1)
184return ((TypeParameterSymbol)type).EffectiveBaseClassNoUseSiteDiagnostics;