21 instantiations of TypeMap
Microsoft.CodeAnalysis.CSharp (21)
Binder\Binder_Expressions.cs (1)
11267var substitution = new TypeMap(typeParameters, typeArguments);
Binder\Semantics\OverloadResolution\OverloadResolution.cs (1)
4342var map = new TypeMap(GetTypeParametersIncludingExtension(isNewExtensionMember ? leastOverriddenMember.OriginalDefinition : leastOverriddenMember), typeArguments, allowAlpha: true);
Lowering\Instrumentation\ModuleCancellationInstrumenter.cs (1)
193var typeMap = (methodDefinition.Arity > 0) ? new TypeMap(overload.TypeParameters, methodDefinition.TypeParameters) : null;
Symbols\AnonymousTypes\AnonymousTypeManager.Templates.cs (1)
343var typeMap = new TypeMap(typeParameters, IndexedTypeParameterSymbol.Take(typeParameters.Length), allowAlpha: true);
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.DelegateTemplateSymbol.cs (1)
183typeMap = new TypeMap(typeParametersToSubstitute, TypeParameters, allowAlpha: true);
Symbols\ConstructedMethodSymbol.cs (1)
20map: new TypeMap(constructedFrom.ContainingType, ((MethodSymbol)constructedFrom.OriginalDefinition).TypeParameters, typeArgumentsWithAnnotations),
Symbols\ConstructedNamedTypeSymbol.cs (1)
64map: new TypeMap(constructedFrom.ContainingType, constructedFrom.OriginalDefinition.TypeParameters, typeArgumentsWithAnnotations),
Symbols\ErrorTypeSymbol.cs (1)
674_map = new TypeMap(constructedFrom.ContainingType, constructedFrom.OriginalDefinition.TypeParameters, typeArgumentsWithAnnotations);
Symbols\MemberSignatureComparer.cs (1)
620new TypeMap(
Symbols\Metadata\PE\MemberRefMetadataDecoder.cs (1)
227TypeMap candidateMethodTypeMap = new TypeMap(
Symbols\Metadata\PE\PENamedTypeSymbol.cs (2)
489var typeMap = combinedTypeParameters.IsEmpty ? null : new TypeMap(combinedTypeParameters, candidate.TypeParameters); 3016var containingTypeMap = new TypeMap(containingTypeParameters, IndexedTypeParameterSymbol.Take(n), allowAlpha: false);
Symbols\NamedTypeSymbol.cs (1)
998TypeMap substitution = new TypeMap(definition.GetAllTypeParameters(), allTypeArguments);
Symbols\ReducedExtensionMethodSymbol.cs (1)
205var substitution = new TypeMap(typeParams, typeArgsForConstraintsCheck);
Symbols\Source\SourceOrdinaryMethodSymbol.cs (2)
605var typeMap1 = new TypeMap(typeParameters1, indexedTypeParameters, allowAlpha: true); 606var typeMap2 = new TypeMap(typeParameters2, indexedTypeParameters, allowAlpha: true);
Symbols\Source\SourceTypeParameterSymbol.cs (1)
830var typeMap = new TypeMap(overriddenTypeParameters, overridingTypeParameters, allowAlpha: true);
Symbols\TypeMap.cs (2)
93private static readonly TypeMap s_emptyTypeMap = new TypeMap(); 117TypeMap result = new TypeMap(this.Mapping);
Symbols\TypeSymbol.cs (2)
2108var typeMap1 = new TypeMap(typeParameters1, indexedTypeParameters, allowAlpha: true); 2109var typeMap2 = new TypeMap(typeParameters2, indexedTypeParameters, allowAlpha: true);
143 references to TypeMap
Microsoft.CodeAnalysis.CSharp (143)
Binder\Binder_Conversions.cs (1)
1897var allTypeParameters = TypeMap.TypeParametersAsTypeSymbolsWithAnnotations(targetType.OriginalDefinition.GetAllTypeParameters());
Binder\Binder_Deconstruct.cs (1)
259tupleOrDeconstructedTypes = type.TupleElementTypesWithAnnotations.SelectAsArray(TypeMap.AsTypeSymbol);
Binder\Binder_Expressions.cs (1)
11267var substitution = new TypeMap(typeParameters, typeArguments);
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (1)
571TypeMap typeMap = new TypeMap(_constructedContainingTypeOfMethod, _methodTypeParameters, fixedArguments);
Binder\Semantics\OverloadResolution\OverloadResolution.cs (1)
4342var map = new TypeMap(GetTypeParametersIncludingExtension(isNewExtensionMember ? leastOverriddenMember.OriginalDefinition : leastOverriddenMember), typeArguments, allowAlpha: true);
Emitter\EditAndContinue\CSharpSymbolMatcher.cs (2)
314var typeMap = new TypeMap(otherTypeParameters, otherTypeArguments, allowAlpha: true); 888var typeMap = new TypeMap(translatedOriginalDef.GetAllTypeParameters(), translatedTypeArguments, allowAlpha: true);
Lowering\AsyncRewriter\AsyncMethodBuilderMemberCollection.cs (1)
112internal static bool TryCreate(SyntheticBoundNodeFactory F, MethodSymbol method, TypeMap typeMap, out AsyncMethodBuilderMemberCollection collection)
Lowering\BoundTreeToDifferentEnclosingContextRewriter.cs (1)
29protected abstract TypeMap TypeMap { get; }
Lowering\ClosureConversion\ClosureConversion.cs (4)
115private TypeMap _currentLambdaBodyTypeMap; 186_currentLambdaBodyTypeMap = TypeMap.Empty; 313protected override TypeMap TypeMap 1559var oldTypeMap = _currentLambdaBodyTypeMap;
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (3)
20private readonly TypeMap _typeMap; 100private ExpressionLambdaRewriter(TypeCompilationState compilationState, TypeMap typeMap, SyntaxNode node, int recursionDepth, BindingDiagnosticBag diagnostics) 112internal static BoundNode RewriteLambda(BoundLambda node, TypeCompilationState compilationState, TypeMap typeMap, int recursionDepth, BindingDiagnosticBag diagnostics)
Lowering\ClosureConversion\SynthesizedClosureEnvironment.cs (1)
53: base(MakeName(scopeSyntaxOpt, methodId, closureId), containingMethod is null ? [] : TypeMap.ConcatMethodTypeParameters(containingMethod, stopAt: null))
Lowering\ClosureConversion\SynthesizedClosureMethod.cs (4)
51TypeMap typeMap; 61TypeMap.ConcatMethodTypeParameters(originalMethod, stopAt: lambdaFrame.OriginalContainingMethodOpt), 68typeMap = TypeMap.Empty.WithAlphaRename( 69TypeMap.ConcatMethodTypeParameters(originalMethod, stopAt: null),
Lowering\ExtensionMethodBodyRewriter.cs (1)
79protected override TypeMap TypeMap => _rewrittenContainingMethod.TypeMap;
Lowering\Instrumentation\ModuleCancellationInstrumenter.cs (1)
193var typeMap = (methodDefinition.Arity > 0) ? new TypeMap(overload.TypeParameters, methodDefinition.TypeParameters) : null;
Lowering\LocalRewriter\DelegateCacheContainer.cs (1)
35TypeMap.ConcatMethodTypeParameters((MethodSymbol)owner, stopAt: null)))
Lowering\LocalRewriter\DynamicSiteContainer.cs (1)
20TypeMap.ConcatMethodTypeParameters(containingMethod, stopAt: null)))
Lowering\LocalRewriter\LoweredDynamicOperationFactory.cs (2)
638var methodToContainerTypeParametersMap = containerDef.TypeMap; 705internal FieldSymbol DefineCallSiteStorageSymbol(NamedTypeSymbol containerDefinition, NamedTypeSymbol delegateTypeOverMethodTypeParameters, TypeMap methodToContainerTypeParametersMap)
Lowering\MethodToClassRewriter.cs (2)
464TypeMap? typeMap = methodBeingWrapped.ContainingType is SubstitutedNamedTypeSymbol substitutedType ? substitutedType.TypeSubstitution : TypeMap.Empty;
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (1)
181protected override TypeMap TypeMap
Lowering\StateMachineRewriter\StateMachineRewriter.cs (1)
145var typeMap = stateMachineType.TypeMap;
Lowering\StateMachineRewriter\StateMachineTypeSymbol.cs (1)
22: base(MakeName(slotAllocatorOpt, compilationState, kickoffMethod, kickoffMethodOrdinal), TypeMap.ConcatMethodTypeParameters(kickoffMethod, stopAt: null))
Lowering\SynthesizedMethodBaseSymbol.cs (2)
26internal TypeMap TypeMap { get; private set; } 60protected void AssignTypeMapAndTypeParameters(TypeMap typeMap, ImmutableArray<TypeParameterSymbol> typeParameters)
Operations\CSharpOperationFactory.cs (2)
768return CreateBoundDynamicMemberAccessOperation(methodGroup.ReceiverOpt, TypeMap.AsTypeSymbols(methodGroup.TypeArgumentsOpt), methodGroup.Name, 945return CreateBoundDynamicMemberAccessOperation(boundDynamicMemberAccess.Receiver, TypeMap.AsTypeSymbols(boundDynamicMemberAccess.TypeArgumentsOpt), boundDynamicMemberAccess.Name,
Symbols\AnonymousTypes\AnonymousTypeManager.Templates.cs (1)
343var typeMap = new TypeMap(typeParameters, IndexedTypeParameterSymbol.Take(typeParameters.Length), allowAlpha: true);
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.DelegateTemplateSymbol.cs (3)
167TypeMap typeMap; 172typeMap = TypeMap.Empty; 194TypeMap typeMap)
Symbols\ConstraintsHelper.cs (2)
891TypeMap substitution, 1031TypeMap substitution,
Symbols\ErrorTypeSymbol.cs (4)
667private readonly TypeMap _map; 702internal override TypeMap TypeSubstitution 712private readonly TypeMap _map; 741internal override TypeMap TypeSubstitution
Symbols\Extensions\RewrittenMethodSymbol.cs (3)
14private readonly TypeMap _typeMap; 18protected RewrittenMethodSymbol(MethodSymbol originalMethod, TypeMap typeMap, ImmutableArray<TypeParameterSymbol> typeParametersToAlphaRename) 28public TypeMap TypeMap => _typeMap;
Symbols\Extensions\SourceExtensionImplementationMethodSymbol.cs (1)
15: base(sourceMethod, TypeMap.Empty, sourceMethod.ContainingType.TypeParameters.Concat(sourceMethod.TypeParameters))
Symbols\MemberSignatureComparer.cs (24)
460TypeMap? typeMap1 = GetTypeMap(member1); 461TypeMap? typeMap2 = GetTypeMap(member2); 564public static bool HaveSameReturnTypes(Symbol member1, TypeMap? typeMap1, Symbol member2, TypeMap? typeMap2, TypeCompareKind typeComparison) 615private static TypeMap? GetTypeMap(Symbol member) 626private static bool HaveSameConstraints(Symbol member1, TypeMap? typeMap1, Symbol member2, TypeMap? typeMap2) 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) 751private static void SubstituteConstraintTypes(ImmutableArray<TypeWithAnnotations> types, TypeMap? typeMap, HashSet<TypeSymbol> result) 761TypeMap? typeMap1, 763TypeMap? typeMap2, 785TypeMap? typeMap1, 787TypeMap? typeMap2, 848private static TypeWithAnnotations SubstituteType(TypeMap? typeMap, TypeWithAnnotations typeSymbol) 853private static bool HaveSameCustomModifiers(ImmutableArray<CustomModifier> customModifiers1, TypeMap? typeMap1, ImmutableArray<CustomModifier> customModifiers2, TypeMap? typeMap2) 859private static ImmutableArray<CustomModifier> SubstituteModifiers(TypeMap? typeMap, ImmutableArray<CustomModifier> customModifiers)
Symbols\MemberSymbolExtensions.cs (2)
517return ((MethodSymbol)symbol).TypeArgumentsWithAnnotations.SelectAsArray(TypeMap.AsTypeSymbol); 520return ((NamedTypeSymbol)symbol).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics.SelectAsArray(TypeMap.AsTypeSymbol);
Symbols\Metadata\PE\MemberRefMetadataDecoder.cs (3)
227TypeMap candidateMethodTypeMap = new TypeMap( 247private static bool ParametersMatch(ParameterSymbol candidateParam, TypeMap candidateMethodTypeMap, ref ParamInfo<TypeSymbol> targetParam) 275private static bool ReturnTypesMatch(MethodSymbol candidateMethod, TypeMap candidateMethodTypeMap, ref ParamInfo<TypeSymbol> targetReturnParam)
Symbols\Metadata\PE\PENamedTypeSymbol.cs (3)
489var typeMap = combinedTypeParameters.IsEmpty ? null : new TypeMap(combinedTypeParameters, candidate.TypeParameters); 3016var containingTypeMap = new TypeMap(containingTypeParameters, IndexedTypeParameterSymbol.Take(n), allowAlpha: false); 3017var nestedTypeMap = new TypeMap(nestedTypeParameters, IndexedTypeParameterSymbol.Take(nestedTypeParameters.Length), allowAlpha: false);
Symbols\Metadata\PE\SymbolFactory.cs (1)
149TypeMap substitution = new TypeMap(typeParameters, arguments.SelectAsArray(arg => CreateType(arg.Key, arg.Value)));
Symbols\MethodSymbol.cs (2)
273return TypeMap.TypeParametersAsTypeSymbolsWithAnnotations(TypeParameters); 932internal virtual TypeMap TypeSubstitution
Symbols\NamedTypeSymbol.cs (4)
998TypeMap substitution = new TypeMap(definition.GetAllTypeParameters(), allTypeArguments); 1018TypeMap substitution = new TypeMap(allTypeParameters.ToImmutable(), allTypeArguments.ToImmutable()); 1329return TypeMap.TypeParametersAsTypeSymbolsWithAnnotations(this.TypeParameters); 1358internal virtual TypeMap TypeSubstitution
Symbols\ReducedExtensionMethodSymbol.cs (3)
25private readonly TypeMap _typeMap; 100_typeMap = TypeMap.Empty.WithAlphaRename(reducedFrom, this, out _typeParameters); 205var substitution = new TypeMap(typeParams, typeArgsForConstraintsCheck);
Symbols\Retargeting\RetargetingSymbolTranslator.cs (1)
580TypeMap substitution = new TypeMap(newParameters.ToImmutableAndFree(), newArguments.ToImmutable());
Symbols\Source\ExplicitInterfaceHelpers.cs (2)
113public static ImmutableArray<T> SubstituteExplicitInterfaceImplementations<T>(ImmutableArray<T> unsubstitutedExplicitInterfaceImplementations, TypeMap map) where T : Symbol 124public static T SubstituteExplicitInterfaceImplementation<T>(T unsubstitutedPropertyImplemented, TypeMap map) where T : Symbol
Symbols\Source\SourceMemberContainerSymbol_ImplementationChecks.cs (1)
984overriddenMethod = overriddenMethod.Construct(TypeMap.TypeParametersAsTypeSymbolsWithIgnoredAnnotations(overridingMethod.TypeParameters));
Symbols\Source\SourceOrdinaryMethodSymbol.cs (3)
483MethodSymbol constructedDefinition = definition.ConstructIfGeneric(TypeMap.TypeParametersAsTypeSymbolsWithIgnoredAnnotations(implementation.TypeParameters)); 605var typeMap1 = new TypeMap(typeParameters1, indexedTypeParameters, allowAlpha: true); 606var typeMap2 = new TypeMap(typeParameters2, indexedTypeParameters, allowAlpha: true);
Symbols\Source\SourceTypeParameterSymbol.cs (4)
795private TypeMap _lazyTypeMap; 816public TypeMap TypeMap 830var typeMap = new TypeMap(overriddenTypeParameters, overridingTypeParameters, allowAlpha: true); 1010var map = _map.TypeMap;
Symbols\SubstitutedMethodSymbol.cs (8)
26private readonly TypeMap _inputMap; 31private TypeMap _lazyMap; 47protected SubstitutedMethodSymbol(Symbol containingSymbol, TypeMap map, MethodSymbol originalDefinition, MethodSymbol constructedFrom) 83private TypeMap Map 112var newMap = _inputMap.WithAlphaRename(this.OriginalDefinition, this, out typeParameters); 114var prevMap = Interlocked.CompareExchange(ref _lazyMap, newMap, null); 307internal sealed override TypeMap TypeSubstitution 344TypeMap map = Map;
Symbols\SubstitutedNamedTypeSymbol.cs (7)
31private readonly TypeMap _inputMap; 41private TypeMap _lazyMap; 58protected SubstitutedNamedTypeSymbol(Symbol newContainer, TypeMap map, NamedTypeSymbol originalDefinition, NamedTypeSymbol constructedFrom = null, bool unbound = false, TupleExtraData tupleData = null) 85private TypeMap Map 113var newMap = _inputMap.WithAlphaRename(OriginalDefinition, this, out typeParameters); 115var prevMap = Interlocked.CompareExchange(ref _lazyMap, newMap, null); 431internal sealed override TypeMap TypeSubstitution
Symbols\SubstitutedParameterSymbol.cs (7)
17internal SubstitutedParameterSymbol(MethodSymbol containingSymbol, TypeMap map, ParameterSymbol originalParameter) : 22internal SubstitutedParameterSymbol(PropertySymbol containingSymbol, TypeMap map, ParameterSymbol originalParameter) : 27internal SubstitutedParameterSymbol(NamedTypeSymbol containingSymbol, TypeMap map, ParameterSymbol originalParameter) : 32private SubstitutedParameterSymbol(Symbol containingSymbol, TypeMap map, ParameterSymbol originalParameter) : 60TypeWithAnnotations substituted = ((TypeMap)mapOrType).SubstituteType(this._underlyingParameter.TypeWithAnnotations); 83var map = _mapOrType as TypeMap;
Symbols\SubstitutedTypeParameterSymbol.cs (2)
20private readonly TypeMap _map; 28internal SubstitutedTypeParameterSymbol(Symbol newContainer, TypeMap map, TypeParameterSymbol substitutedFrom, int ordinal)
Symbols\Synthesized\SynthesizedContainer.cs (3)
31TypeMap = TypeMap.Empty.WithAlphaRename(typeParametersToAlphaRename, this, out _typeParameters); 40TypeMap = TypeMap.Empty; 43internal TypeMap TypeMap { get; }
Symbols\Synthesized\SynthesizedImplementationMethod.cs (2)
45var typeMap = interfaceMethod.ContainingType.TypeSubstitution ?? TypeMap.Empty;
Symbols\Synthesized\SynthesizedSubstitutedTypeParameterSymbol.cs (1)
19public SynthesizedSubstitutedTypeParameterSymbol(Symbol owner, TypeMap map, TypeParameterSymbol substitutedFrom, int ordinal)
Symbols\TypeMap.cs (6)
93private static readonly TypeMap s_emptyTypeMap = new TypeMap(); 94public static TypeMap Empty 103internal TypeMap WithAlphaRename(ImmutableArray<TypeParameterSymbol> oldTypeParameters, Symbol newOwner, out ImmutableArray<TypeParameterSymbol> newTypeParameters) 117TypeMap result = new TypeMap(this.Mapping); 139internal TypeMap WithAlphaRename(NamedTypeSymbol oldOwner, NamedTypeSymbol newOwner, out ImmutableArray<TypeParameterSymbol> newTypeParameters) 145internal TypeMap WithAlphaRename(MethodSymbol oldOwner, Symbol newOwner, out ImmutableArray<TypeParameterSymbol> newTypeParameters)
Symbols\TypeSymbol.cs (3)
1956implementedMethod = implementedMethod.Construct(TypeMap.TypeParametersAsTypeSymbolsWithIgnoredAnnotations(implementingMethod.TypeParameters)); 2108var typeMap1 = new TypeMap(typeParameters1, indexedTypeParameters, allowAlpha: true); 2109var typeMap2 = new TypeMap(typeParameters2, indexedTypeParameters, allowAlpha: true);
Symbols\TypeSymbolExtensions.cs (1)
1989var typeMap = new TypeMap(typeParameters, typeArgumentsBuilder.ToImmutable(), allowAlpha: true);