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)
4347var map = new TypeMap(methodForTypeParameters.GetTypeParametersIncludingExtension(), 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)
92private static readonly TypeMap s_emptyTypeMap = new TypeMap(); 116TypeMap result = new TypeMap(this.Mapping);
Symbols\TypeSymbol.cs (2)
2119var typeMap1 = new TypeMap(typeParameters1, indexedTypeParameters, allowAlpha: true); 2120var 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)
572TypeMap typeMap = new TypeMap(_constructedContainingTypeOfMethod, _methodTypeParameters, fixedArguments);
Binder\Semantics\OverloadResolution\OverloadResolution.cs (1)
4347var map = new TypeMap(methodForTypeParameters.GetTypeParametersIncludingExtension(), typeArguments, allowAlpha: true);
Emitter\EditAndContinue\CSharpSymbolMatcher.cs (2)
313var typeMap = new TypeMap(otherTypeParameters, otherTypeArguments, allowAlpha: true); 887var 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)
32protected abstract TypeMap TypeMap { get; }
Lowering\ClosureConversion\ClosureConversion.cs (4)
115private TypeMap _currentLambdaBodyTypeMap; 191_currentLambdaBodyTypeMap = TypeMap.Empty; 318protected override TypeMap TypeMap 1564var 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)
83protected 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)
436TypeMap? 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)
892TypeMap substitution, 1046TypeMap 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)
19: 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)
579return ((MethodSymbol)symbol).TypeArgumentsWithAnnotations.SelectAsArray(TypeMap.AsTypeSymbol); 582return ((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)
988overriddenMethod = 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 347TypeMap map = Map;
Symbols\SubstitutedNamedTypeSymbol.cs (7)
30private readonly TypeMap _inputMap; 40private TypeMap _lazyMap; 57protected SubstitutedNamedTypeSymbol(Symbol newContainer, TypeMap map, NamedTypeSymbol originalDefinition, NamedTypeSymbol constructedFrom = null, bool unbound = false, TupleExtraData tupleData = null) 84private TypeMap Map 112var newMap = _inputMap.WithAlphaRename(OriginalDefinition, this, out typeParameters); 114var prevMap = Interlocked.CompareExchange(ref _lazyMap, newMap, null); 430internal 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)
92private static readonly TypeMap s_emptyTypeMap = new TypeMap(); 93public static TypeMap Empty 102internal TypeMap WithAlphaRename(ImmutableArray<TypeParameterSymbol> oldTypeParameters, Symbol newOwner, out ImmutableArray<TypeParameterSymbol> newTypeParameters) 116TypeMap result = new TypeMap(this.Mapping); 138internal TypeMap WithAlphaRename(NamedTypeSymbol oldOwner, NamedTypeSymbol newOwner, out ImmutableArray<TypeParameterSymbol> newTypeParameters) 144internal TypeMap WithAlphaRename(MethodSymbol oldOwner, Symbol newOwner, out ImmutableArray<TypeParameterSymbol> newTypeParameters)
Symbols\TypeSymbol.cs (3)
1962implementedMethod = implementedMethod.Construct(TypeMap.TypeParametersAsTypeSymbolsWithIgnoredAnnotations(implementingMethod.TypeParameters)); 2119var typeMap1 = new TypeMap(typeParameters1, indexedTypeParameters, allowAlpha: true); 2120var typeMap2 = new TypeMap(typeParameters2, indexedTypeParameters, allowAlpha: true);
Symbols\TypeSymbolExtensions.cs (1)
1989var typeMap = new TypeMap(typeParameters, typeArgumentsBuilder.ToImmutable(), allowAlpha: true);