31 instantiations of TypeMap
Microsoft.CodeAnalysis.CSharp (29)
Binder\Binder_Expressions.cs (1)
11268var substitution = new TypeMap(typeParameters, typeArguments);
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (1)
572TypeMap typeMap = new TypeMap(_constructedContainingTypeOfMethod, _methodTypeParameters, fixedArguments);
Binder\Semantics\OverloadResolution\OverloadResolution.cs (1)
4344var map = new TypeMap(methodForTypeParameters.GetTypeParametersIncludingExtension(), typeArguments, allowAlpha: true);
Emitter\EditAndContinue\CSharpSymbolMatcher.cs (2)
329var typeMap = new TypeMap(otherTypeParameters, otherTypeArguments, allowAlpha: true); 902var typeMap = new TypeMap(translatedOriginalDef.GetAllTypeParameters(), translatedTypeArguments, 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)
337var typeMap = new TypeMap(typeParameters, IndexedTypeParameterSymbol.Take(typeParameters.Length), allowAlpha: true);
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.DelegateTemplateSymbol.cs (1)
184typeMap = 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)
678_map = new TypeMap(constructedFrom.ContainingType, constructedFrom.OriginalDefinition.TypeParameters, typeArgumentsWithAnnotations);
Symbols\MemberSignatureComparer.cs (1)
595new TypeMap(
Symbols\Metadata\PE\MemberRefMetadataDecoder.cs (1)
227TypeMap candidateMethodTypeMap = new TypeMap(
Symbols\Metadata\PE\PENamedTypeSymbol.cs (3)
517var typeMap = combinedTypeParameters.IsEmpty ? null : new TypeMap(combinedTypeParameters, candidate.TypeParameters); 3178var containingTypeMap = new TypeMap(containingTypeParameters, IndexedTypeParameterSymbol.Take(n), allowAlpha: false); 3179var 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\NamedTypeSymbol.cs (2)
1022TypeMap substitution = new TypeMap(definition.GetAllTypeParameters(), allTypeArguments); 1042TypeMap substitution = new TypeMap(allTypeParameters.ToImmutable(), allTypeArguments.ToImmutable());
Symbols\ReducedExtensionMethodSymbol.cs (1)
205var substitution = new TypeMap(typeParams, typeArgsForConstraintsCheck);
Symbols\Retargeting\RetargetingSymbolTranslator.cs (1)
580TypeMap substitution = new TypeMap(newParameters.ToImmutableAndFree(), newArguments.ToImmutable());
Symbols\Source\SourceOrdinaryMethodSymbol.cs (2)
610var typeMap1 = new TypeMap(typeParameters1, indexedTypeParameters, allowAlpha: true); 611var typeMap2 = new TypeMap(typeParameters2, indexedTypeParameters, allowAlpha: true);
Symbols\Source\SourceTypeParameterSymbol.cs (1)
831var 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)
2121var typeMap1 = new TypeMap(typeParameters1, indexedTypeParameters, allowAlpha: true); 2122var typeMap2 = new TypeMap(typeParameters2, indexedTypeParameters, allowAlpha: true);
Symbols\TypeSymbolExtensions.cs (1)
1990var typeMap = new TypeMap(typeParameters, typeArgumentsBuilder.ToImmutable(), allowAlpha: true);
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (2)
Symbols\Source\ModifierTests.cs (1)
161var typeMap = new TypeMap(ImmutableArray.Create(typeParamType), ImmutableArray.Create(TypeWithAnnotations.Create(intType)));
Symbols\Source\TypeMapTests.cs (1)
97return new TypeMap(allTypeParameters.ToImmutableAndFree(), typeArguments.SelectAsArray(t => TypeWithAnnotations.Create(t))).SubstituteNamedType(type);
153 references to TypeMap
Microsoft.CodeAnalysis.CSharp (150)
Binder\Binder_Conversions.cs (1)
1884var allTypeParameters = TypeMap.TypeParametersAsTypeSymbolsWithAnnotations(targetType.OriginalDefinition.GetAllTypeParameters());
Binder\Binder_Deconstruct.cs (1)
259tupleOrDeconstructedTypes = type.TupleElementTypesWithAnnotations.SelectAsArray(TypeMap.AsTypeSymbol);
Binder\Binder_Expressions.cs (1)
11268var substitution = new TypeMap(typeParameters, typeArguments);
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (1)
572TypeMap typeMap = new TypeMap(_constructedContainingTypeOfMethod, _methodTypeParameters, fixedArguments);
Binder\Semantics\OverloadResolution\OverloadResolution.cs (1)
4344var map = new TypeMap(methodForTypeParameters.GetTypeParametersIncludingExtension(), typeArguments, allowAlpha: true);
Emitter\EditAndContinue\CSharpSymbolMatcher.cs (2)
329var typeMap = new TypeMap(otherTypeParameters, otherTypeArguments, allowAlpha: true); 902var 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)
54: 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)
80protected 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)
36TypeMap.ConcatMethodTypeParameters((MethodSymbol)owner, stopAt: null)))
Lowering\LocalRewriter\DynamicSiteContainer.cs (1)
20TypeMap.ConcatMethodTypeParameters(containingMethod, stopAt: null)))
Lowering\LocalRewriter\LoweredDynamicOperationFactory.cs (2)
639var methodToContainerTypeParametersMap = containerDef.TypeMap; 706internal 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)
27internal TypeMap TypeMap { get; private set; } 61protected 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)
337var typeMap = new TypeMap(typeParameters, IndexedTypeParameterSymbol.Take(typeParameters.Length), allowAlpha: true);
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.DelegateTemplateSymbol.cs (3)
168TypeMap typeMap; 173typeMap = TypeMap.Empty; 195TypeMap typeMap)
Symbols\ConstraintsHelper.cs (2)
900TypeMap substitution, 1058TypeMap substitution,
Symbols\ErrorTypeSymbol.cs (4)
671private readonly TypeMap _map; 706internal override TypeMap TypeSubstitution 716private readonly TypeMap _map; 745internal 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)
22: base(sourceMethod, TypeMap.Empty, sourceMethod.ContainingType.TypeParameters.Concat(sourceMethod.TypeParameters))
Symbols\MemberSignatureComparer.cs (22)
431TypeMap? typeMap1 = GetTypeMap(member1); 432TypeMap? typeMap2 = GetTypeMap(member2); 539public static bool HaveSameReturnTypes(Symbol member1, TypeMap? typeMap1, Symbol member2, TypeMap? typeMap2, TypeCompareKind typeComparison) 590internal static TypeMap? GetTypeMap(Symbol member) 601public static bool HaveSameConstraints(ImmutableArray<TypeParameterSymbol> typeParameters1, TypeMap? typeMap1, ImmutableArray<TypeParameterSymbol> typeParameters2, TypeMap? typeMap2, TypeCompareKind typeComparison) 617public static bool HaveSameConstraints(TypeParameterSymbol typeParameter1, TypeMap? typeMap1, TypeParameterSymbol typeParameter2, TypeMap? typeMap2, TypeCompareKind typeComparison) 634private static bool HaveSameTypeConstraints(TypeParameterSymbol typeParameter1, TypeMap? typeMap1, TypeParameterSymbol typeParameter2, TypeMap? typeMap2, IEqualityComparer<TypeSymbol> comparer) 661public static bool HaveSameNullabilityInConstraints(TypeParameterSymbol typeParameter1, TypeMap typeMap1, TypeParameterSymbol typeParameter2, TypeMap typeMap2) 711private static void SubstituteConstraintTypes(ImmutableArray<TypeWithAnnotations> types, TypeMap? typeMap, HashSet<TypeSymbol> result) 721TypeMap? typeMap1, 723TypeMap? typeMap2, 745TypeMap? typeMap1, 747TypeMap? typeMap2, 812internal static TypeWithAnnotations SubstituteType(TypeMap? typeMap, TypeWithAnnotations typeSymbol) 817private static bool HaveSameCustomModifiers(ImmutableArray<CustomModifier> customModifiers1, TypeMap? typeMap1, ImmutableArray<CustomModifier> customModifiers2, TypeMap? typeMap2) 823private static ImmutableArray<CustomModifier> SubstituteModifiers(TypeMap? typeMap, ImmutableArray<CustomModifier> customModifiers)
Symbols\MemberSymbolExtensions.cs (2)
580return ((MethodSymbol)symbol).TypeArgumentsWithAnnotations.SelectAsArray(TypeMap.AsTypeSymbol); 583return ((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)
517var typeMap = combinedTypeParameters.IsEmpty ? null : new TypeMap(combinedTypeParameters, candidate.TypeParameters); 3178var containingTypeMap = new TypeMap(containingTypeParameters, IndexedTypeParameterSymbol.Take(n), allowAlpha: false); 3179var 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)
275return TypeMap.TypeParametersAsTypeSymbolsWithAnnotations(TypeParameters); 936internal virtual TypeMap TypeSubstitution
Symbols\NamedTypeSymbol.cs (4)
1022TypeMap substitution = new TypeMap(definition.GetAllTypeParameters(), allTypeArguments); 1042TypeMap substitution = new TypeMap(allTypeParameters.ToImmutable(), allTypeArguments.ToImmutable()); 1353return TypeMap.TypeParametersAsTypeSymbolsWithAnnotations(this.TypeParameters); 1382internal 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\ExtensionGroupingInfo.cs (9)
222TypeMap? typeMap1 = MemberSignatureComparer.GetTypeMap(extension1); 223TypeMap? typeMap2 = MemberSignatureComparer.GetTypeMap(extension2); 258TypeMap? typeMap1 = MemberSignatureComparer.GetTypeMap(extension1); 259TypeMap? typeMap2 = MemberSignatureComparer.GetTypeMap(extension2); 358static bool haveSameConstraints(TypeParameterSymbol typeParameter1, TypeMap? typeMap1, TypeParameterSymbol typeParameter2, TypeMap? typeMap2) 374static bool haveSameTypeConstraints(TypeParameterSymbol typeParameter1, TypeMap? typeMap1, TypeParameterSymbol typeParameter2, TypeMap? typeMap2) 412static void substituteConstraintTypes(ImmutableArray<TypeWithAnnotations> types, TypeMap? typeMap, HashSet<TypeWithAnnotations> result)
Symbols\Source\SourceMemberContainerSymbol_ImplementationChecks.cs (1)
988overriddenMethod = overriddenMethod.Construct(TypeMap.TypeParametersAsTypeSymbolsWithIgnoredAnnotations(overridingMethod.TypeParameters));
Symbols\Source\SourceOrdinaryMethodSymbol.cs (3)
488MethodSymbol constructedDefinition = definition.ConstructIfGeneric(TypeMap.TypeParametersAsTypeSymbolsWithIgnoredAnnotations(implementation.TypeParameters)); 610var typeMap1 = new TypeMap(typeParameters1, indexedTypeParameters, allowAlpha: true); 611var typeMap2 = new TypeMap(typeParameters2, indexedTypeParameters, allowAlpha: true);
Symbols\Source\SourceTypeParameterSymbol.cs (4)
796private TypeMap _lazyTypeMap; 817public TypeMap TypeMap 831var typeMap = new TypeMap(overriddenTypeParameters, overridingTypeParameters, allowAlpha: true); 1011var 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); 309internal sealed override TypeMap TypeSubstitution 349TypeMap 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)
32TypeMap = TypeMap.Empty.WithAlphaRename(typeParametersToAlphaRename, this, out _typeParameters); 41TypeMap = TypeMap.Empty; 44internal 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)
1964implementedMethod = implementedMethod.Construct(TypeMap.TypeParametersAsTypeSymbolsWithIgnoredAnnotations(implementingMethod.TypeParameters)); 2121var typeMap1 = new TypeMap(typeParameters1, indexedTypeParameters, allowAlpha: true); 2122var typeMap2 = new TypeMap(typeParameters2, indexedTypeParameters, allowAlpha: true);
Symbols\TypeSymbolExtensions.cs (1)
1990var typeMap = new TypeMap(typeParameters, typeArgumentsBuilder.ToImmutable(), allowAlpha: true);
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (1)
Symbols\Source\ModifierTests.cs (1)
161var typeMap = new TypeMap(ImmutableArray.Create(typeParamType), ImmutableArray.Create(TypeWithAnnotations.Create(intType)));
Microsoft.CodeAnalysis.CSharp.Test.Utilities (2)
Extensions.cs (2)
686return TypeMap.AsTypeSymbols(symbol.TypeArgumentsWithAnnotationsNoUseSiteDiagnostics); 691return TypeMap.AsTypeSymbols(symbol.ConstraintTypesNoUseSiteDiagnostics);