8 types derived from MethodDesc
ILCompiler.TypeSystem (8)
parent\parent\Common\TypeSystem\Common\ArrayType.cs (1)
184public sealed partial class ArrayMethod : MethodDesc
parent\parent\Common\TypeSystem\Common\InstantiatedMethod.cs (1)
12public sealed partial class InstantiatedMethod : MethodDesc
parent\parent\Common\TypeSystem\Common\MethodDelegator.cs (1)
13public abstract partial class MethodDelegator : MethodDesc
parent\parent\Common\TypeSystem\Common\MethodForInstantiatedType.cs (1)
12public sealed partial class MethodForInstantiatedType : MethodDesc
parent\parent\Common\TypeSystem\Ecma\EcmaMethod.cs (1)
16public sealed partial class EcmaMethod : MethodDesc, EcmaModule.IEntityHandleObject
parent\parent\Common\TypeSystem\IL\Stubs\ILEmitter.cs (1)
861public abstract partial class ILStubMethod : MethodDesc
parent\parent\Common\TypeSystem\IL\Stubs\PInvokeTargetNativeMethod.cs (1)
16public sealed partial class PInvokeTargetNativeMethod : MethodDesc
parent\parent\Common\TypeSystem\RuntimeDetermined\MethodForRuntimeDeterminedType.cs (1)
11public sealed partial class MethodForRuntimeDeterminedType : MethodDesc
3064 references to MethodDesc
crossgen2 (8)
Program.cs (8)
433MethodDesc singleMethod = CheckAndParseSingleMethodModeArguments(typeSystemContext); 770private MethodDesc CheckAndParseSingleMethodModeArguments(CompilerTypeSystemContext context) 784MethodDesc method = null; 787foreach (var searchMethod in owningType.GetMethods()) 817foreach (var searchMethod in owningType.GetMethods()) 848internal static string CreateReproArgumentString(MethodDesc method) 858foreach (var searchMethod in method.OwningType.GetMethods()) 881MethodDesc failingMethod = ex.Method;
ilc (22)
ConfigurablePInvokePolicy.cs (1)
142public override bool GenerateDirectCall(MethodDesc method, out string externName)
parent\parent\Common\TypeSystem\IL\HelperExtensions.cs (8)
30public static MethodDesc GetHelperEntryPoint(this TypeSystemContext context, ReadOnlySpan<byte> typeName, ReadOnlySpan<byte> methodName) 33MethodDesc helperMethod = helperType.GetKnownMethod(methodName, null); 37public static MethodDesc GetCoreLibEntryPoint(this TypeSystemContext context, ReadOnlySpan<byte> namespaceName, ReadOnlySpan<byte> typeName, ReadOnlySpan<byte> methodName, MethodSignature signature) 43public static MethodDesc GetOptionalHelperEntryPoint(this TypeSystemContext context, ReadOnlySpan<byte> typeName, ReadOnlySpan<byte> methodName) 46MethodDesc helperMethod = helperType?.GetMethod(methodName, null); 55public static void EmitCallThrowHelper(this ILCodeStream codeStream, ILEmitter emitter, MethodDesc method) 74public static MethodDesc GetKnownMethod(this TypeDesc type, ReadOnlySpan<byte> name, MethodSignature signature) 76MethodDesc method = type.GetMethod(name, signature);
Program.cs (10)
47private IReadOnlyCollection<MethodDesc> CreateInitializerList(CompilerTypeSystemContext context) 61IReadOnlyCollection<MethodDesc> result = libraryInitializers.LibraryInitializerMethods; 65List<MethodDesc> instrumentedResult = new List<MethodDesc>(result); 168MethodDesc singleMethod = CheckAndParseSingleMethodModeArguments(typeSystemContext); 355MethodDesc throwInvalidProgramMethod = typeSystemContext.GetHelperEntryPoint("ThrowHelpers"u8, "ThrowInvalidProgramException"u8); 357new GenericRootProvider<MethodDesc>(throwInvalidProgramMethod, 358(MethodDesc method, IRootingServiceProvider rooter) => rooter.AddCompilationRoot(method, "Invalid IL insurance"))); 788private MethodDesc CheckAndParseSingleMethodModeArguments(CompilerTypeSystemContext context) 803MethodDesc method = owningType.GetMethod(Encoding.UTF8.GetBytes(singleMethodName), null);
RdXmlRootProvider.cs (3)
164static bool SignatureMatches(MethodDesc method, List<TypeDesc> parameter) 180foreach (var m in containingType.GetMethods()) 182var method = m;
ILCompiler.Compiler (1579)
Compiler\AnalysisBasedInteropStubManager.cs (2)
43public override void AddDependenciesDueToMethodCodePresence(ref DependencyList dependencies, NodeFactory factory, MethodDesc method) 51public override void AddMarshalAPIsGenericDependencies(ref DependencyList dependencies, NodeFactory factory, MethodDesc method)
Compiler\AnalysisBasedMetadataManager.cs (10)
30private readonly Dictionary<MethodDesc, MetadataCategory> _reflectableMethods = new Dictionary<MethodDesc, MetadataCategory>(); 39Array.Empty<ReflectableEntity<TypeDesc>>(), Array.Empty<ReflectableEntity<MethodDesc>>(), 57IEnumerable<ReflectableEntity<MethodDesc>> reflectableMethods, 146out List<MetadataMapping<MethodDesc>> methodMappings, 147out Dictionary<MethodDesc, int> methodMetadataMappings, 164protected sealed override MetadataCategory GetMetadataCategory(MethodDesc method) 210MethodDesc method = pair.Key; 242public bool GeneratesMetadata(MethodDesc methodDef) 289public bool IsBlocked(MethodDesc methodDef)
Compiler\BodySubstitution.cs (1)
32public MethodIL EmitIL(MethodDesc method)
Compiler\BodySubstitutionParser.cs (9)
22private readonly Dictionary<MethodDesc, BodySubstitution> _methodSubstitutions; 29_methodSubstitutions = new Dictionary<MethodDesc, BodySubstitution>(); 36_methodSubstitutions = new Dictionary<MethodDesc, BodySubstitution>(); 61MethodDesc method = FindMethod(type, signature); 157private static MethodDesc FindMethod(TypeDesc type, string signature) 159foreach (MethodDesc meth in type.GetMethods()) 228private Dictionary<MethodDesc, BodySubstitution> _bodySubstitutions; 231public IReadOnlyDictionary<MethodDesc, BodySubstitution> BodySubstitutions => _bodySubstitutions; 234public BodyAndFieldSubstitutions(Dictionary<MethodDesc, BodySubstitution> bodySubstitutions, Dictionary<FieldDesc, object> fieldSubstitutions)
Compiler\Compilation.cs (40)
79public virtual MethodIL GetMethodIL(MethodDesc method) 92public void DetectGenericCycles(MethodDesc caller, MethodDesc callee) 102public bool CanInline(MethodDesc caller, MethodDesc callee) 117public DelegateCreationInfo GetDelegateCtor(TypeDesc delegateType, MethodDesc target, TypeDesc constrainedType, bool followVirtualDispatch) 127MethodDesc originalTarget = target; 128MethodDesc targetDefinition = target.GetMethodDefinition(); 174public MethodDesc ExpandIntrinsicForCallsite(MethodDesc intrinsicMethod, MethodDesc callsiteMethod) 240public bool IsEffectivelySealed(MethodDesc method) 245public MethodDesc ResolveVirtualMethod(MethodDesc declMethod, TypeDesc implType, out CORINFO_DEVIRTUALIZATION_DETAIL devirtualizationDetail) 266return ((MethodDesc)targetOfLookup).IsRuntimeDeterminedExactMethod; 302public static MethodDesc GetConstructorForCreateInstanceIntrinsic(TypeDesc type) 304MethodDesc ctor = type.GetDefaultConstructor(); 355return NodeFactory.MethodGenericDictionary((MethodDesc)targetOfLookup); 357return NodeFactory.FatFunctionPointer((MethodDesc)targetOfLookup); 359return NodeFactory.RuntimeMethodHandle((MethodDesc)targetOfLookup); 365MethodDesc ctor = GetConstructorForCreateInstanceIntrinsic(type); 379public GenericDictionaryLookup ComputeGenericLookup(MethodDesc contextMethod, ReadyToRunHelperId lookupKind, object targetOfLookup) 457public bool IsFatPointerCandidate(MethodDesc containingMethod, MethodSignature signature) 480public MethodDesc GetTargetOfGenericVirtualMethodCall(MethodDesc calledMethod) 488MethodDesc targetMethod = calledMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 489MethodDesc targetMethodDefinition = targetMethod.GetMethodDefinition(); 491MethodDesc slotNormalizedMethodDefinition = MetadataVirtualMethodAlgorithm.FindSlotDefiningMethodForVirtualMethod(targetMethodDefinition); 508MethodDesc runtimeDeterminedSlotNormalizedMethod; 560private sealed class ILCache : LockFreeReaderHashtable<MethodDesc, ILCache.MethodILData> 569protected override int GetKeyHashCode(MethodDesc key) 577protected override bool CompareKeyToValue(MethodDesc key, MethodILData value) 585protected override MethodILData CreateValueFromKey(MethodDesc key) 592public MethodDesc Method; 608public override MethodIL GetMethodIL(MethodDesc method) 653public IEnumerable<MethodDesc> CompiledMethodBodies 665public bool IsMethodBodyCompiled(MethodDesc method) 694public IEnumerable<MethodDesc> ReflectedMethods 710public readonly MethodDesc Method; 711public ConstrainedCallInfo(TypeDesc constrainedType, MethodDesc method)
Compiler\CompilationModuleGroup.Aot.cs (4)
18public abstract bool ContainsMethodDictionary(MethodDesc method); 22public abstract bool ImportsMethod(MethodDesc method, bool unboxingStub); 51public abstract bool AllowInstanceMethodOptimization(MethodDesc method); 57public abstract bool AllowVirtualMethodOnAbstractTypeOptimization(MethodDesc method);
Compiler\CompilerTypeSystemContext.Aot.cs (8)
198protected override IEnumerable<MethodDesc> GetAllMethods(TypeDesc type) 203protected override IEnumerable<MethodDesc> GetAllVirtualMethods(TypeDesc type) 209private IEnumerable<MethodDesc> GetAllMethods(TypeDesc type, bool virtualOnly) 229protected virtual IEnumerable<MethodDesc> GetAllMethodsForDelegate(TypeDesc type, bool virtualOnly) 236foreach (MethodDesc syntheticMethod in info.Methods) 245foreach (MethodDesc syntheticMethod in info.Methods) 253IEnumerable<MethodDesc> metadataMethods = virtualOnly ? type.GetVirtualMethods() : type.GetMethods(); 254foreach (var m in metadataMethods)
Compiler\CompilerTypeSystemContext.DynamicInvoke.cs (1)
25public MethodDesc GetDynamicInvokeThunk(MethodSignature signature, bool valueTypeInstanceMethod)
Compiler\CompilerTypeSystemContext.GetFieldMethodOverrides.cs (15)
16private MethodDesc _objectEqualsMethod; 19private sealed class GetFieldMethodHashtable : LockFreeReaderHashtable<MetadataType, MethodDesc> 22protected override int GetValueHashCode(MethodDesc value) => value.OwningType.GetHashCode(); 23protected override bool CompareKeyToValue(MetadataType key, MethodDesc value) => key == value.OwningType; 24protected override bool CompareValueToValue(MethodDesc v1, MethodDesc v2) => v1.OwningType == v2.OwningType; 26protected override MethodDesc CreateValueFromKey(MetadataType key) 34protected virtual IEnumerable<MethodDesc> GetAllMethodsForValueType(TypeDesc valueType, bool virtualOnly) 40MethodDesc getFieldHelperMethod = _getFieldMethodHashtable.GetOrCreateValue((MetadataType)valueTypeDefinition); 52IEnumerable<MethodDesc> metadataMethods = virtualOnly ? valueType.GetVirtualMethods() : valueType.GetMethods(); 53foreach (MethodDesc method in metadataMethods) 57protected virtual IEnumerable<MethodDesc> GetAllMethodsForAttribute(TypeDesc attributeType, bool virtualOnly) 63MethodDesc getFieldHelperMethod = _getFieldMethodHashtable.GetOrCreateValue((MetadataType)attributeTypeDefinition); 75IEnumerable<MethodDesc> metadataMethods = virtualOnly ? attributeType.GetVirtualMethods() : attributeType.GetMethods(); 76foreach (MethodDesc method in metadataMethods)
Compiler\CompilerTypeSystemContext.InterfaceThunks.cs (14)
70public MethodDesc GetDefaultInterfaceMethodImplementationThunk(MethodDesc targetMethod, TypeDesc implementingClass, DefType interfaceOnDefinition, out int interfaceIndex) 98MethodDesc thunk = _dimThunkHashtable.GetOrCreateValue(methodKey); 105public readonly MethodDesc TargetMethod; 109public DefaultInterfaceMethodImplementationInstantiationThunkHashtableKey(MethodDesc targetMethod, int interfaceIndex, bool useContextFromRuntime) 150public bool IsDefaultInterfaceMethodImplementationInstantiationThunk(MethodDesc method) 158public MethodDesc GetTargetOfDefaultInterfaceMethodImplementationInstantiationThunk(MethodDesc method) 168private readonly MethodDesc _targetMethod; 174public DefaultInterfaceMethodImplementationInstantiationThunk(TypeDesc owningType, MethodDesc targetMethod, int interfaceIndex, bool useContextFromRuntime) 198public MethodDesc TargetMethod => _targetMethod; 216public MethodDesc BaseMethod => _targetMethod; 229MethodDesc getOrdinalInterfaceMethod = Context.GetHelperEntryPoint("SharedCodeHelpers"u8, "GetOrdinalInterface"u8); 230MethodDesc getCurrentContext = Context.GetHelperEntryPoint("SharedCodeHelpers"u8, "GetCurrentSharedThunkContext"u8);
Compiler\CompilerTypeSystemContext.Sorting.cs (1)
15protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
Compiler\Dataflow\AsyncMaskingILProvider.cs (6)
28public override MethodIL GetMethodIL(MethodDesc method) 32MethodDesc methodForIL; 45MethodDesc owningMethod = methodIL.OwningMethod; 56private readonly MethodDesc _owner; 59public AsyncMaskedMethodIL(MethodDesc owner, MethodIL wrappedIL) 63public override MethodDesc OwningMethod => _owner;
Compiler\Dataflow\AttributeDataFlow.cs (3)
48public DependencyList? ProcessAttributeDataflow(MethodDesc method, CustomAttributeValue arguments) 84MethodDesc setter = property.SetMethod; 97private void ProcessAttributeDataflow(MethodDesc method, ImmutableArray<object?> arguments, ref DependencyList? result)
Compiler\Dataflow\CompilerGeneratedCallGraph.cs (5)
29public void TrackCall(MethodDesc fromMethod, MethodDesc toMethod) 37public void TrackCall(MethodDesc fromMethod, DefType toType) 45public void TrackCall(DefType fromType, MethodDesc toMethod) 54public IEnumerable<TypeSystemEntity> GetReachableMembers(MethodDesc start)
Compiler\Dataflow\CompilerGeneratedState.cs (40)
26MethodDesc CreatingMethod, 89private Dictionary<MetadataType, MethodDesc>? _compilerGeneratedTypeToUserCodeMethod; 91private Dictionary<MethodDesc, MethodDesc>? _compilerGeneratedMethodToUserCodeMethod; 96private Dictionary<MethodDesc, List<TypeSystemEntity>>? _compilerGeneratedMembers; 125var userDefinedMethods = new HashSet<MethodDesc>(); 137void ProcessMethod(MethodDesc method) 175MethodDesc? referencedMethod = methodBody.GetObject(reader.ReadILToken(), NotFoundBehavior.ReturnNull) as MethodDesc; 193var alreadyAssociatedMethod = generatedTypeToTypeArgs[generatedType].CreatingMethod; 258_compilerGeneratedTypeToUserCodeMethod ??= new Dictionary<MetadataType, MethodDesc>(); 261var alreadyAssociatedMethod = _compilerGeneratedTypeToUserCodeMethod[stateMachineType]; 287foreach (MethodDesc method in type.GetMethods()) 299foreach (var method in nestedType.GetMethods()) 314foreach (var userDefinedMethod in userDefinedMethods) 320_compilerGeneratedMembers ??= new Dictionary<MethodDesc, List<TypeSystemEntity>>(); 327case MethodDesc nestedFunction: 330_compilerGeneratedMethodToUserCodeMethod ??= new Dictionary<MethodDesc, MethodDesc>(); 333var alreadyAssociatedMethod = _compilerGeneratedMethodToUserCodeMethod[nestedFunction]; 364var method = info.CreatingMethod; 365var alreadyAssociatedMethod = _generatedTypeToTypeArgumentInfo[generatedType].CreatingMethod; 403var method = typeInfo.CreatingMethod; 468MethodDesc? methodOperand = null; 473methodOperand = body.GetObject(reader.ReadILToken()) as MethodDesc; 474if (methodOperand is MethodDesc { OwningType: MetadataType owningType } 487methodOperand = body.GetObject(reader.ReadILToken()) as MethodDesc; 528public bool TryGetCompilerGeneratedCalleesForUserMethod(MethodDesc method, [NotNullWhen(true)] out List<TypeSystemEntity>? callees) 549public bool TryGetOwningMethodForCompilerGeneratedMethod(MethodDesc compilerGeneratedMethod, [NotNullWhen(true)] out MethodDesc? owningMethod) 560public bool TryGetOwningMethodForCompilerGeneratedType(MetadataType compilerGeneratedType, [NotNullWhen(true)] out MethodDesc? owningMethod) 604if (member is MethodDesc method && CompilerGeneratedNames.IsLambdaOrLocalFunction(method.Name.AsSpan())) 613public static bool TryGetStateMachineType(MethodDesc method, [NotNullWhen(true)] out MetadataType? stateMachineType) 660public bool TryGetCompilerGeneratedCalleesForUserMethod(MethodDesc method, [NotNullWhen(true)] out List<TypeSystemEntity>? callees) 707public bool TryGetOwningMethodForCompilerGeneratedMember(TypeSystemEntity sourceMember, [NotNullWhen(true)] out MethodDesc? owningMethod) 727MethodDesc? compilerGeneratedMethod = sourceMember as MethodDesc; 740public bool TryGetUserMethodForCompilerGeneratedMember(TypeSystemEntity sourceMember, [NotNullWhen(true)] out MethodDesc? userMethod) 746Debug.Assert(sourceMember is not MethodDesc sourceMethod || sourceMethod.IsTypicalMethodDefinition); 753MethodDesc? userMethodCandidate;
Compiler\Dataflow\DiagnosticUtilities.cs (8)
13internal static string GetParameterNameForErrorMessage(MethodDesc method, int parameterIndex) 21internal static string GetMethodSignatureDisplayName(MethodDesc method) 30if (parent is MethodDesc m) 42case MethodDesc method: 95internal static bool IsInRequiresScope(this MethodDesc method, string requiresAttribute) 98internal static bool IsInRequiresScope(this MethodDesc method, string requiresAttribute, [NotNullWhen(returnValue: true)] out CustomAttributeValue<TypeDesc>? attribute) 121internal static bool DoesMethodRequire(this MethodDesc method, string requiresAttribute, [NotNullWhen(returnValue: true)] out CustomAttributeValue<TypeDesc>? attribute) 181MethodDesc method => DoesMethodRequire(method, requiresAttribute, out attribute),
Compiler\Dataflow\FlowAnnotations.cs (21)
52public bool RequiresDataflowAnalysisDueToSignature(MethodDesc method) 68public bool RequiresVirtualMethodDataflowAnalysis(MethodDesc method) 110public bool HasGenericParameterAnnotation(MethodDesc method) 125MethodDesc method = param.Method.Method.GetTypicalMethodDefinition(); 135public DynamicallyAccessedMemberTypes GetReturnParameterAnnotation(MethodDesc method) 167MethodDesc method => ShouldWarnWhenAccessedForReflection(method), 190MethodDesc parent = ecmaGenericParameter.Module.GetMethod(paramDef.Parent); 201public bool ShouldWarnWhenAccessedForReflection(MethodDesc method) 528MethodDesc setMethod = property.SetMethod; 573MethodDesc getMethod = property.GetMethod; 727internal void ValidateMethodAnnotationsAreSame(MethodDesc method, MethodDesc baseMethod, TypeSystemEntity origin) 785private void ValidateMethodParametersHaveNoAnnotations(DynamicallyAccessedMemberTypes[] parameterAnnotations, MethodDesc method, MethodDesc baseMethod, TypeSystemEntity origin) 798private void ValidateMethodGenericParametersHaveNoAnnotations(DynamicallyAccessedMemberTypes[] genericParameterAnnotations, MethodDesc method, MethodDesc baseMethod, TypeSystemEntity origin) 831case (TypeDesc, MethodDesc method): 833DiagnosticUtilities.GetMethodSignatureDisplayName(method), DiagnosticUtilities.GetMethodSignatureDisplayName((MethodDesc)baseProvider)); 860public bool TryGetAnnotation(MethodDesc method, out MethodAnnotations annotations) 926public readonly MethodDesc Method; 932MethodDesc method,
Compiler\Dataflow\GenericArgumentDataFlow.cs (4)
43public static void ProcessGenericArgumentDataFlow(ref DependencyList dependencies, NodeFactory factory, in MessageOrigin origin, TypeDesc type, MethodDesc contextMethod) 107public static void ProcessGenericArgumentDataFlow(in DiagnosticContext diagnosticContext, ReflectionMarker reflectionMarker, MethodDesc method) 109MethodDesc typicalMethod = method.GetTypicalMethodDefinition(); 147public static bool RequiresGenericArgumentDataFlow(FlowAnnotations flowAnnotations, MethodDesc method)
Compiler\Dataflow\HandleCallAction.cs (11)
30private readonly MethodDesc _callingMethod; 31private readonly MethodDesc _reason; 38MethodDesc callingMethod, 39MethodDesc reason) 147MethodDesc methodInstantiated = methodBaseValue.RepresentedMethod.Method; 311&& systemTypeValue.RepresentedType.Type.GetParameterlessConstructor() is MethodDesc ctorMethod 583MethodDesc contextMethod, 697foreach (var method in type.Type.GetMethodsOnTypeHierarchy(m => m.Name.StringEquals(name), bindingFlags)) 817private readonly MethodDesc _method; 819public MakeGenericMethodSite(MethodDesc method) => _method = method; 824MethodDesc instantiatedMethod = _method.InstantiateSignature(typeInstantiation, methodInstantiation);
Compiler\Dataflow\InterproceduralState.cs (3)
56public void TrackMethod(MethodDesc method) 79foreach (var stateMachineMethod in stateMachineType.GetMethods()) 130private bool TryGetMethodBody(MethodDesc method, [NotNullWhen(true)] out MethodIL? methodBody)
Compiler\Dataflow\MethodBodyScanner.cs (15)
288MethodDesc startingMethod = startingMethodBody.OwningMethod; 334private static void TrackNestedFunctionReference(MethodDesc referencedMethod, ref InterproceduralState interproceduralState) 336MethodDesc method = referencedMethod.GetTypicalMethodDefinition(); 346MethodDesc thisMethod = methodIL.OwningMethod; 475if (methodIL.GetObject(reader.ReadILToken()) is MethodDesc methodOperand) 536if (methodIL.GetObject(reader.ReadILToken()) is MethodDesc methodOperand) 763MethodDesc methodOperand = (MethodDesc)methodIL.GetObject(reader.ReadILToken()); 884private void ScanLdarg(ILOpcode opcode, int parameterIndex, Stack<StackSlot> currentStack, MethodDesc thisMethod) 979else if (operand is MethodDesc method) 1167MethodDesc methodCalled, 1241MethodDesc calledMethod, 1265protected abstract void HandleMethodTokenAccess(MethodIL methodIL, int offset, MethodDesc accessedMethod); 1276MethodDesc calledMethod, 1327MethodDesc calledMethod,
Compiler\Dataflow\MethodReturnValue.cs (2)
21public MethodReturnValue(MethodDesc method, bool isNewObj, DynamicallyAccessedMemberTypes dynamicallyAccessedMemberTypes) 30public readonly MethodDesc MethodDesc;
Compiler\Dataflow\ReflectionMarker.cs (11)
35public List<(MethodDesc OwningMethod, INodeWithRuntimeDeterminedDependencies Dependency)> RuntimeDeterminedDependencies { get; } = new List<(MethodDesc, INodeWithRuntimeDeterminedDependencies)>(); 78case MethodDesc method: 181internal void MarkMethod(in MessageOrigin origin, MethodDesc method, TypeSystemEntity reason, AccessKind accessKind = AccessKind.Unspecified) 189internal void MarkMethod(in MessageOrigin origin, MethodDesc method, string reason, AccessKind accessKind = AccessKind.Unspecified) 239internal void MarkConstructorsOnType(in MessageOrigin origin, TypeDesc type, Func<MethodDesc, bool>? filter, TypeSystemEntity reason, BindingFlags? bindingFlags = null) 245foreach (var ctor in type.GetConstructorsOnType(filter, bindingFlags)) 284MethodDesc cctor = type.GetStaticConstructor(); 306Debug.Assert(entity is MethodDesc or FieldDesc); 334if (entity is MethodDesc) 358Debug.Assert(entity is MethodDesc or FieldDesc);
Compiler\Dataflow\ReflectionMethodBodyScanner.cs (9)
37public static bool RequiresReflectionMethodBodyScannerForCallSite(FlowAnnotations flowAnnotations, MethodDesc method) 48public static bool RequiresReflectionMethodBodyScannerForMethodBody(FlowAnnotations flowAnnotations, MethodDesc methodDefinition) 127public static DependencyList ScanAndProcessReturnValue(NodeFactory factory, FlowAnnotations annotations, Logger logger, MethodIL methodIL, out List<(MethodDesc OwningMethod, INodeWithRuntimeDeterminedDependencies Dependency)> runtimeDependencies) 271protected override void HandleMethodTokenAccess(MethodIL methodIL, int offset, MethodDesc accessedMethod) 289public override MultiValue HandleCall(MethodIL callingMethodIL, MethodDesc calledMethod, ILOpcode operation, int offset, ValueNodeList methodParams) 333MethodDesc calledMethod, 340var callingMethodDefinition = callingMethodBody.OwningMethod; 442private void ProcessGenericArgumentDataFlow(MethodDesc method) 477internal static bool IsPInvokeDangerous(MethodDesc calledMethod, out bool comDangerousMethod, out bool aotUnsafeDelegate)
Compiler\Dataflow\TrimAnalysisGenericInstantiationAccessPattern.cs (1)
41case MethodDesc method:
Compiler\Dataflow\TrimAnalysisMethodCallPattern.cs (3)
22public readonly MethodDesc CalledMethod; 31MethodDesc calledMethod, 36Debug.Assert(origin.MemberDefinition is MethodDesc);
Compiler\Dataflow\TrimAnalysisTokenAccessPattern.cs (1)
30case MethodDesc method:
Compiler\DelegateCreationInfo.cs (8)
33private MethodDesc _targetMethod; 43public MethodDesc TargetMethod 54public MethodDesc PossiblyUnresolvedTargetMethod 170private DelegateCreationInfo(TypeDesc delegateType, IMethodNode constructor, MethodDesc targetMethod, TypeDesc constrainedType, TargetKind targetKind, IMethodNode thunk = null) 186public static DelegateCreationInfo Create(TypeDesc delegateType, MethodDesc targetMethod, TypeDesc constrainedType, NodeFactory factory, bool followVirtualDispatch) 211MethodDesc invokeThunk; 212MethodDesc initMethod; 244MethodDesc targetCanonMethod = targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific);
Compiler\DependencyAnalysis\AddressTakenMethodNode.cs (1)
34public MethodDesc Method => _methodNode.Method;
Compiler\DependencyAnalysis\CodeBasedDependencyAlgorithm.cs (3)
17public static void AddDependenciesDueToMethodCodePresence(ref DependencyList dependencies, NodeFactory factory, MethodDesc method, MethodIL methodIL) 69public static bool HasConditionalDependenciesDueToMethodCodePresence(MethodDesc method) 75public static void AddConditionalDependenciesDueToMethodCodePresence(ref CombinedDependencyList dependencies, NodeFactory factory, MethodDesc method)
Compiler\DependencyAnalysis\CustomAttributeBasedDependencyAlgorithm.cs (3)
112MethodDesc constructor = module.GetMethod(attribute.Constructor); 232MethodDesc setterMethod = (MethodDesc)attributeTypeDefinition.Module.GetObject(accessors.Setter);
Compiler\DependencyAnalysis\DataflowAnalyzedMethodNode.cs (4)
22private List<(MethodDesc OwningMethod, INodeWithRuntimeDeterminedDependencies Dependency)> _runtimeDependencies; 42_runtimeDependencies = new List<(MethodDesc, INodeWithRuntimeDeterminedDependencies)>(); 56MethodDesc method = methodBody.Method; 57MethodDesc typicalMethod = method.GetTypicalMethodDefinition();
Compiler\DependencyAnalysis\DelegateTargetVirtualMethodNode.cs (6)
18private readonly MethodDesc _method; 21public DelegateTargetVirtualMethodNode(MethodDesc method, bool reflected) 44private readonly MethodDesc _declaration; 45private readonly MethodDesc _implementation; 47public ReflectableVirtualMethodImplNode(MethodDesc declaration, MethodDesc implementation)
Compiler\DependencyAnalysis\DictionaryLayoutNode.cs (5)
45MethodDesc method = _owningMethodOrType as MethodDesc; 61Debug.Assert(_owningMethodOrType is MethodDesc); 159if (_owningMethodOrType is MethodDesc) 161templateLayout = factory.NativeLayout.TemplateMethodLayout((MethodDesc)_owningMethodOrType);
Compiler\DependencyAnalysis\DispatchCellNode.cs (3)
19private readonly MethodDesc _targetMethod; 24internal MethodDesc TargetMethod => _targetMethod; 28public DispatchCellNode(MethodDesc targetMethod, ISortableSymbolNode callSiteIdentifier)
Compiler\DependencyAnalysis\EETypeNode.cs (22)
111foreach (MethodDesc method in defType.GetAllVirtualMethods()) 120MethodDesc slotDecl = MetadataVirtualMethodAlgorithm.FindSlotDefiningMethodForVirtualMethod(method); 144foreach (MethodDesc method in interfaceImpl.EnumAllVirtualSlots()) 151MethodDesc slotDecl = method.Signature.IsStatic ? 298foreach (var method in currentType.GetAllVirtualMethods()) 371foreach (MethodDesc decl in defType.EnumAllVirtualSlots()) 377MethodDesc impl = defType.FindVirtualFunctionTargetMethodOnObjectType(decl); 392MethodDesc canonImpl = impl.GetCanonMethodTarget(CanonicalFormKind.Specific); 449foreach (MethodDesc interfaceMethod in interfaceType.EnumAllVirtualSlots()) 460MethodDesc interfaceMethodDefinition = interfaceMethod; 464MethodDesc implMethod = isStaticInterfaceMethod ? 480MethodDesc defaultIntfMethod = implMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 507MethodDesc typicalInterfaceMethod = interfaceMethod.GetTypicalMethodDefinition(); 532MethodDesc defaultIntfMethod = implMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 570internal static bool MethodHasNonGenericILMethodBody(MethodDesc method) 650foreach (var method in _type.GetClosestDefType().ConvertToCanonForm(CanonicalFormKind.Specific).GetAllMethodsAndAsyncVariants()) 966IReadOnlyList<MethodDesc> virtualSlots = declVTable.Slots; 970MethodDesc declMethod = virtualSlots[i]; 991MethodDesc implMethod = implType.GetClosestDefType().FindVirtualFunctionTargetMethodOnObjectType(declMethod); 1009MethodDesc canonImplMethod = implMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 1077MethodDesc finalizerMethod = _type.GetFinalizer(); 1078MethodDesc canonFinalizerMethod = finalizerMethod.GetCanonMethodTarget(CanonicalFormKind.Specific);
Compiler\DependencyAnalysis\ExactMethodInstantiationsEntryNode.cs (3)
16private readonly MethodDesc _method; 18public ExactMethodInstantiationsEntryNode(MethodDesc method) 26public MethodDesc Method => _method;
Compiler\DependencyAnalysis\ExactMethodInstantiationsNode.cs (6)
51foreach (MethodDesc method in factory.MetadataManager.GetExactMethodHashtableEntries()) 75MethodDesc methodForMetadata = GetMethodForMetadata(method, out bool isAsyncVariant, out bool isReturnDroppingAsyncThunk); 103public static void GetExactMethodInstantiationDependenciesForMethod(ref DependencyList dependencies, NodeFactory factory, MethodDesc method) 123private static MethodDesc GetMethodForMetadata(MethodDesc method, out bool isAsyncVariant, out bool isReturnDroppingAsyncThunk) 125MethodDesc result = method.GetTypicalMethodDefinition();
Compiler\DependencyAnalysis\ExternMethodSymbolNode.cs (3)
15private MethodDesc _method; 17public ExternMethodSymbolNode(NodeFactory factory, MethodDesc method, bool isUnboxing = false) 24public MethodDesc Method
Compiler\DependencyAnalysis\ExternSymbolsImportedNodeProvider.cs (2)
28public override ISortableSymbolNode ImportedMethodDictionaryNode(NodeFactory factory, MethodDesc method) 33public override IMethodNode ImportedMethodCodeNode(NodeFactory factory, MethodDesc method, bool unboxingStub)
Compiler\DependencyAnalysis\FatFunctionPointerNode.cs (3)
23public FatFunctionPointerNode(MethodDesc methodRepresented, bool isUnboxingStub, bool addressTaken) 44public MethodDesc Method { get; } 69MethodDesc canonMethod = Method.GetCanonMethodTarget(CanonicalFormKind.Specific);
Compiler\DependencyAnalysis\GenericDictionaryNode.cs (5)
152foreach (var method in _owningType.GetAllMethodsAndAsyncVariants()) 187private MethodDesc _owningMethod; 198public MethodDesc OwningMethod => _owningMethod; 210MethodDesc canonicalTarget = _owningMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 273public MethodGenericDictionaryNode(MethodDesc owningMethod, NodeFactory factory)
Compiler\DependencyAnalysis\GenericLookupResult.cs (26)
36Debug.Assert(_canonicalOwner is MethodDesc); 37MethodDesc owningMethodDefinition = ((MethodDesc)_canonicalOwner).GetTypicalMethodDefinition(); 40MethodDesc concreteMethod = owningMethodDefinition; 428private MethodDesc _method; 432public MethodHandleGenericLookupResult(MethodDesc method) 440MethodDesc instantiatedMethod = _method.GetNonRuntimeDeterminedMethodFromRuntimeDeterminedMethodViaSubstitution(dictionary.TypeInstantiation, dictionary.MethodInstantiation); 549private MethodDesc _method; 553public MethodDictionaryGenericLookupResult(MethodDesc method) 561MethodDesc instantiatedMethod = _method.GetNonRuntimeDeterminedMethodFromRuntimeDeterminedMethodViaSubstitution(dictionary.TypeInstantiation, dictionary.MethodInstantiation); 584public MethodDesc Method => _method; 613private MethodDesc _method; 618public MethodEntryGenericLookupResult(MethodDesc method, bool isUnboxingThunk) 627MethodDesc instantiatedMethod = _method.GetNonRuntimeDeterminedMethodFromRuntimeDeterminedMethodViaSubstitution(dictionary.TypeInstantiation, dictionary.MethodInstantiation); 661MethodDesc canonMethod = _method.GetCanonMethodTarget(CanonicalFormKind.Specific); 697private MethodDesc _method; 701public DispatchCellGenericLookupResult(MethodDesc method) 712MethodDesc instantiatedMethod = _method.GetNonRuntimeDeterminedMethodFromRuntimeDeterminedMethodViaSubstitution(context.TypeInstantiation, context.MethodInstantiation); 722(GenericDictionaryNode)factory.MethodGenericDictionary((MethodDesc)contextOwner); 1017MethodDesc defaultCtor = Compilation.GetConstructorForCreateInstanceIntrinsic(instantiatedType); 1052private MethodDesc _constrainedMethod; 1058public ConstrainedMethodUseLookupResult(MethodDesc constrainedMethod, TypeDesc constraintType, bool directCall) 1070MethodDesc canonMethod = _constrainedMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 1086MethodDesc instantiatedConstrainedMethod = _constrainedMethod.GetNonRuntimeDeterminedMethodFromRuntimeDeterminedMethodViaSubstitution(dictionary.TypeInstantiation, dictionary.MethodInstantiation); 1097MethodDesc implMethod; 1099MethodDesc instantiatedConstrainedMethodDefinition = instantiatedConstrainedMethod.GetMethodDefinition();
Compiler\DependencyAnalysis\GenericMethodsHashtableEntryNode.cs (3)
16private readonly MethodDesc _method; 18public GenericMethodsHashtableEntryNode(MethodDesc method) 23public MethodDesc Method => _method;
Compiler\DependencyAnalysis\GenericMethodsHashtableNode.cs (6)
51foreach (MethodDesc method in factory.MetadataManager.GetGenericMethodHashtableEntries()) 70MethodDesc methodForMetadata = GetMethodForMetadata(method, out bool isAsyncVariant, out bool isReturnDroppingAsyncThunk); 96public static void GetGenericMethodsHashtableDependenciesForMethod(ref DependencyList dependencies, NodeFactory factory, MethodDesc method) 116private static MethodDesc GetMethodForMetadata(MethodDesc method, out bool isAsyncVariant, out bool isReturnDroppingAsyncThunk) 118MethodDesc result = method.GetTypicalMethodDefinition();
Compiler\DependencyAnalysis\GenericMethodsTemplateMap.cs (2)
75public static void GetTemplateMethodDependencies(ref DependencyList dependencies, NodeFactory factory, MethodDesc method) 85private static bool IsEligibleToBeATemplate(MethodDesc method)
Compiler\DependencyAnalysis\GenericVirtualMethodImplNode.cs (2)
18private readonly MethodDesc _method; 20public GenericVirtualMethodImplNode(MethodDesc method)
Compiler\DependencyAnalysis\GenericVirtualMethodTableNode.cs (15)
20private Dictionary<MethodDesc, Dictionary<TypeDesc, MethodDesc>> _gvmImplementations; 25_gvmImplementations = new Dictionary<MethodDesc, Dictionary<TypeDesc, MethodDesc>>(); 46public static void GetGenericVirtualMethodImplementationDependencies(ref DependencyList dependencies, NodeFactory factory, MethodDesc callingMethod, MethodDesc implementationMethod) 51MethodDesc openCallingMethod = callingMethod.GetTypicalMethodDefinition(); 52MethodDesc openImplementationMethod = implementationMethod.GetTypicalMethodDefinition(); 60private void AddGenericVirtualMethodImplementation(MethodDesc callingMethod, MethodDesc implementationMethod) 65MethodDesc openCallingMethod = callingMethod.GetTypicalMethodDefinition(); 66MethodDesc openImplementationMethod = implementationMethod.GetTypicalMethodDefinition(); 70_gvmImplementations[openCallingMethod] = new Dictionary<TypeDesc, MethodDesc>(); 106MethodDesc callingMethod = gvmEntry.Key; 108MethodDesc implementationMethod = implementationEntry.Value;
Compiler\DependencyAnalysis\GvmDispatchCellInfoSectionNode.cs (6)
55MethodDesc targetMethod = cells[firstCell].TargetMethod; 99public static IEnumerable<DependencyListEntry> GetCellDependencies(NodeFactory factory, MethodDesc targetMethod) 103MethodDesc canonMethod = targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 121public static MethodDesc GetMethodForMetadata(MethodDesc method, out bool isAsyncVariant) 124MethodDesc targetMethodForMetadata = method.GetTypicalMethodDefinition();
Compiler\DependencyAnalysis\ILScanNodeFactory.cs (2)
20protected override IMethodNode CreateMethodEntrypointNode(MethodDesc method) 45protected override IMethodNode CreateUnboxingStubNode(MethodDesc method)
Compiler\DependencyAnalysis\ImportedNodeProvider.cs (4)
17public abstract ISortableSymbolNode ImportedMethodDictionaryNode(NodeFactory factory, MethodDesc method); 18public abstract IMethodNode ImportedMethodCodeNode(NodeFactory factory, MethodDesc method, bool unboxingStub); 38public override ISortableSymbolNode ImportedMethodDictionaryNode(NodeFactory factory, MethodDesc method) 43public override IMethodNode ImportedMethodCodeNode(NodeFactory factory, MethodDesc method, bool unboxingStub)
Compiler\DependencyAnalysis\InlineableStringsResourceNode.cs (1)
61public static void AddDependenciesDueToResourceStringUse(ref DependencyList dependencies, NodeFactory factory, MethodDesc method)
Compiler\DependencyAnalysis\InterfaceDispatchCellInfoSectionNode.cs (3)
55MethodDesc targetMethod = cells[firstCell].TargetMethod; 92public static IEnumerable<DependencyListEntry> GetCellDependencies(NodeFactory factory, MethodDesc targetMethod) 108private static IEETypeNode GetInterfaceTypeNode(NodeFactory factory, MethodDesc targetMethod)
Compiler\DependencyAnalysis\InterfaceDispatchMapNode.cs (8)
100foreach (MethodDesc slotMethod in vtableSlice.Slots) 102MethodDesc declMethod = slotMethod; 114var implMethod = declMethod.Signature.IsStatic ? 171IReadOnlyList<MethodDesc> virtualSlots = interfaceVTable.Slots; 175MethodDesc declMethod = virtualSlots[interfaceMethodSlot]; 186var implMethod = declMethod.Signature.IsStatic ? 198MethodDesc targetMethod = implMethod; 232DefaultInterfaceMethodResolution baseResult = declTypeBaseDefinition.ResolveInterfaceMethodToDefaultImplementationOnType(declMethod, out MethodDesc baseImplMethod);
Compiler\DependencyAnalysis\InterfaceGenericVirtualMethodTableNode.cs (11)
21private Dictionary<MethodDesc, HashSet<object>> _interfaceGvmSlots; 27_interfaceGvmSlots = new Dictionary<MethodDesc, HashSet<object>>(); 48public static void GetGenericVirtualMethodImplementationDependencies(ref DependencyList dependencies, NodeFactory factory, MethodDesc callingMethod, TypeDesc implementationType, MethodDesc implementationMethod) 53MethodDesc openCallingMethod = callingMethod.GetTypicalMethodDefinition(); 61MethodDesc openImplementationMethod = implementationMethod.GetTypicalMethodDefinition(); 81private void AddGenericVirtualMethodImplementation(MethodDesc callingMethod, TypeDesc implementationType, MethodDesc implementationMethod, DefaultInterfaceMethodResolution resolution) 86MethodDesc openCallingMethod = callingMethod.GetTypicalMethodDefinition(); 149MethodDesc callingMethod = gvmEntry.Key; 162if (impl is MethodDesc implementationMethod)
Compiler\DependencyAnalysis\InvalidExternalTypeMapNode.cs (2)
13internal sealed class InvalidExternalTypeMapNode(TypeDesc typeMapGroup, MethodDesc throwingMethodStub) : SortableDependencyNode, IExternalTypeMapNode 35public MethodDesc ThrowingMethodStub { get; } = throwingMethodStub;
Compiler\DependencyAnalysis\InvalidProxyTypeMapNode.cs (2)
13internal sealed class InvalidProxyTypeMapNode(TypeDesc typeMapGroup, MethodDesc throwingMethodStub) : SortableDependencyNode, IProxyTypeMapNode 16public MethodDesc ThrowingMethodStub { get; } = throwingMethodStub;
Compiler\DependencyAnalysis\MetadataEETypeNode.cs (1)
65foreach (MethodDesc intfaceMethod in intface.GetAllVirtualMethods())
Compiler\DependencyAnalysis\MethodExceptionHandlingInfoNode.cs (3)
13private readonly MethodDesc _owningMethod; 16public MethodDesc Method => _owningMethod; 18public MethodExceptionHandlingInfoNode(MethodDesc owningMethod, ObjectData data)
Compiler\DependencyAnalysis\MethodMetadataNode.cs (2)
34public MethodMetadataNode(MethodDesc method, bool isMinimal) 41public MethodDesc Method => _method;
Compiler\DependencyAnalysis\ModuleInitializerListNode.cs (1)
42MethodDesc method = methodNode.Method;
Compiler\DependencyAnalysis\ModuleMetadataNode.cs (1)
41&& ecmaModule.EntryPoint is MethodDesc entrypoint
Compiler\DependencyAnalysis\ModuleUseBasedDependencyAlgorithm.cs (1)
15if (module.GetGlobalModuleType().GetStaticConstructor() is MethodDesc moduleCctor)
Compiler\DependencyAnalysis\NativeLayoutVertexNode.cs (33)
102protected readonly MethodDesc _method; 107public MethodDesc Method => _method; 113public NativeLayoutMethodEntryVertexNode(NodeFactory factory, MethodDesc method, MethodEntryFlags flags) 194MethodDesc methodForToken = GetMethodForMetadata(_method, out bool isAsyncVariant, out bool isReturnDroppingAsyncThunk); 213private static MethodDesc GetMethodForMetadata(MethodDesc method, out bool isAsyncVariant, out bool isReturnDroppingAsyncThunk) 215MethodDesc result = method.GetTypicalMethodDefinition(); 642private static bool NeedsEntrypoint(MethodDesc method) 659public NativeLayoutTemplateMethodSignatureVertexNode(NodeFactory factory, MethodDesc method) 707if (owningMethodOrType is MethodDesc owningMethod) 725if (_owningMethodOrType is MethodDesc owningMethod) 802private MethodDesc _method; 806public NativeLayoutTemplateMethodLayoutVertexNode(NodeFactory factory, MethodDesc method) 1044MethodDesc cctorMethod = _type.GetStaticConstructor(); 1045MethodDesc canonCctorMethod = cctorMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 1240private MethodDesc _method; 1242public NativeLayoutInterfaceDispatchGenericDictionarySlotNode(NodeFactory factory, MethodDesc method) 1255MethodDesc method = _method; 1272MethodDesc method = _method; 1284private MethodDesc _method; 1286public NativeLayoutGvmDispatchGenericDictionarySlotNode(NodeFactory factory, MethodDesc method) 1311MethodDesc canonMethod = _method.GetCanonMethodTarget(CanonicalFormKind.Specific); 1327private MethodDesc _method; 1329public NativeLayoutMethodDictionaryGenericDictionarySlotNode(NodeFactory factory, MethodDesc method) 1410private MethodDesc _method; 1412public NativeLayoutMethodLdTokenGenericDictionarySlotNode(NodeFactory factory, MethodDesc method) 1456private MethodDesc _constrainedMethod; 1460public NativeLayoutConstrainedMethodDictionarySlotNode(MethodDesc constrainedMethod, TypeDesc constraintType, bool directCall) 1521MethodDesc canonMethod = _constrainedMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 1539var canonConstrainedMethod = _constrainedMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 1549private MethodDesc _method; 1559public WrappedMethodEntryVertexNode(NodeFactory factory, MethodDesc method, bool unboxingStub, IMethodNode functionPointerNode) : 1575public NativeLayoutMethodEntrypointGenericDictionarySlotNode(NodeFactory factory, MethodDesc method, IMethodNode functionPointerNode, bool unboxingStub)
Compiler\DependencyAnalysis\NodeFactory.cs (102)
131protected virtual bool CanFold(MethodDesc method) => false; 299_tentativeMethodEntrypoints = new NodeCache<MethodDesc, IMethodNode>((MethodDesc method) => 311_unboxingStubs = new NodeCache<MethodDesc, IMethodNode>(CreateUnboxingStubNode); 328_gvmDependenciesNode = new NodeCache<MethodDesc, GVMDependenciesNode>(method => 333_gvmImpls = new NodeCache<MethodDesc, GenericVirtualMethodImplNode>(method => 338_genericMethodEntries = new NodeCache<MethodDesc, GenericMethodsHashtableEntryNode>(method => 343_exactMethodEntries = new NodeCache<MethodDesc, ExactMethodInstantiationsEntryNode>(method => 353_addressTakenMethods = new NodeCache<MethodDesc, AddressTakenMethodNode>(method => 358_reflectedDelegateTargetMethods = new NodeCache<MethodDesc, DelegateTargetVirtualMethodNode>(method => 363_delegateTargetMethods = new NodeCache<MethodDesc, DelegateTargetVirtualMethodNode>(method => 368_reflectableVirtualMethodImpls = new NodeCache<(MethodDesc Declaration, MethodDesc Implementation), ReflectableVirtualMethodImplNode>(methods => 378_reflectedMethods = new NodeCache<MethodDesc, ReflectedMethodNode>(method => 420_variantMethods = new NodeCache<MethodDesc, VariantInterfaceMethodUseNode>((MethodDesc method) => 474_runtimeMethodHandles = new NodeCache<MethodDesc, RuntimeMethodHandleNode>((MethodDesc method) => 519_eagerCctorIndirectionNodes = new NodeCache<MethodDesc, EmbeddedObjectNode>((MethodDesc method) => 538_methodGenericDictionaries = new NodeCache<MethodDesc, ISortableSymbolNode>(method => 562_methodsWithMetadata = new NodeCache<MethodDesc, MethodMetadataNode>(method => 567_methodsWithLimitedMetadata = new NodeCache<MethodDesc, MethodMetadataNode>(method => 609_stringAllocators = new NodeCache<MethodDesc, IMethodNode>(constructor => 711protected abstract IMethodNode CreateMethodEntrypointNode(MethodDesc method); 713protected abstract IMethodNode CreateUnboxingStubNode(MethodDesc method); 893public DispatchCellNode DispatchCell(MethodDesc method, ISortableSymbolNode callSite = null) 898private NodeCache<MethodDesc, RuntimeMethodHandleNode> _runtimeMethodHandles; 900public RuntimeMethodHandleNode RuntimeMethodHandle(MethodDesc method) 1062private NodeCache<MethodDesc, ISortableSymbolNode> _methodGenericDictionaries; 1063public ISortableSymbolNode MethodGenericDictionary(MethodDesc method) 1080private NodeCache<MethodDesc, IMethodNode> _stringAllocators; 1081public IMethodNode StringAllocator(MethodDesc stringConstructor) 1097private sealed class MethodEntrypointHashtable : LockFreeReaderHashtable<MethodDesc, IMethodNode> 1101protected override bool CompareKeyToValue(MethodDesc key, IMethodNode value) => key == value.Method; 1103protected override IMethodNode CreateValueFromKey(MethodDesc key) => _factory.CreateMethodEntrypointNode(key); 1104protected override int GetKeyHashCode(MethodDesc key) => key.GetHashCode(); 1109private NodeCache<MethodDesc, IMethodNode> _unboxingStubs; 1112public IMethodNode MethodEntrypoint(MethodDesc method, bool unboxingStub = false) 1122protected NodeCache<MethodDesc, IMethodNode> _tentativeMethodEntrypoints; 1124public IMethodNode TentativeMethodEntrypoint(MethodDesc method, bool unboxingStub = false) 1132public IMethodNode MethodEntrypointOrTentativeMethod(MethodDesc method, bool unboxingStub = false) 1151public IMethodNode FatFunctionPointer(MethodDesc method, bool isUnboxingStub = false) 1158public IMethodNode FatAddressTakenFunctionPointer(MethodDesc method, bool isUnboxingStub = false) 1166public IMethodNode ExactCallableAddress(MethodDesc method, bool isUnboxingStub = false) 1168MethodDesc canonMethod = method.GetCanonMethodTarget(CanonicalFormKind.Specific); 1175public IMethodNode ExactCallableAddressTakenAddress(MethodDesc method, bool isUnboxingStub = false) 1177MethodDesc canonMethod = method.GetCanonMethodTarget(CanonicalFormKind.Specific); 1184public IMethodNode CanonicalEntrypoint(MethodDesc method) 1186MethodDesc canonMethod = method.GetCanonMethodTarget(CanonicalFormKind.Specific); 1193private NodeCache<MethodDesc, GVMDependenciesNode> _gvmDependenciesNode; 1194public GVMDependenciesNode GVMDependencies(MethodDesc method) 1199private NodeCache<MethodDesc, GenericVirtualMethodImplNode> _gvmImpls; 1200public GenericVirtualMethodImplNode GenericVirtualMethodImpl(MethodDesc method) 1205private NodeCache<MethodDesc, GenericMethodsHashtableEntryNode> _genericMethodEntries; 1206public GenericMethodsHashtableEntryNode GenericMethodsHashtableEntry(MethodDesc method) 1211private NodeCache<MethodDesc, ExactMethodInstantiationsEntryNode> _exactMethodEntries; 1212public ExactMethodInstantiationsEntryNode ExactMethodInstantiationsHashtableEntry(MethodDesc method) 1223private NodeCache<MethodDesc, AddressTakenMethodNode> _addressTakenMethods; 1224public IMethodNode AddressTakenMethodEntrypoint(MethodDesc method, bool unboxingStub = false) 1232private NodeCache<MethodDesc, DelegateTargetVirtualMethodNode> _reflectedDelegateTargetMethods; 1233public DelegateTargetVirtualMethodNode ReflectedDelegateTargetVirtualMethod(MethodDesc method) 1238private NodeCache<MethodDesc, DelegateTargetVirtualMethodNode> _delegateTargetMethods; 1239public DelegateTargetVirtualMethodNode DelegateTargetVirtualMethod(MethodDesc method) 1244private NodeCache<(MethodDesc Declaration, MethodDesc Implementation), ReflectableVirtualMethodImplNode> _reflectableVirtualMethodImpls; 1245public ReflectableVirtualMethodImplNode ReflectableVirtualMethodImpl(MethodDesc declaration, MethodDesc implementation) 1260private NodeCache<MethodDesc, ReflectedMethodNode> _reflectedMethods; 1261public ReflectedMethodNode ReflectedMethod(MethodDesc method) 1302private sealed class ShadowConcreteMethodHashtable : LockFreeReaderHashtable<MethodDesc, ShadowConcreteMethodNode> 1306protected override bool CompareKeyToValue(MethodDesc key, ShadowConcreteMethodNode value) => key == value.Method; 1308protected override ShadowConcreteMethodNode CreateValueFromKey(MethodDesc key) => 1310protected override int GetKeyHashCode(MethodDesc key) => key.GetHashCode(); 1315public ShadowConcreteMethodNode ShadowConcreteMethod(MethodDesc method) 1320private sealed class ShadowNonConcreteMethodHashtable : LockFreeReaderHashtable<MethodDesc, ShadowNonConcreteMethodNode> 1324protected override bool CompareKeyToValue(MethodDesc key, ShadowNonConcreteMethodNode value) => key == value.Method; 1326protected override ShadowNonConcreteMethodNode CreateValueFromKey(MethodDesc key) => 1328protected override int GetKeyHashCode(MethodDesc key) => key.GetHashCode(); 1333public ShadowNonConcreteMethodNode ShadowNonConcreteMethod(MethodDesc method) 1360var method = type.GetKnownMethod(Encoding.UTF8.GetBytes(entry[2]), null); 1378private MethodDesc _instanceMethodRemovedHelper; 1379public MethodDesc InstanceMethodRemovedHelper 1389private sealed class VirtualMethodUseHashtable : LockFreeReaderHashtable<MethodDesc, VirtualMethodUseNode> 1393protected override bool CompareKeyToValue(MethodDesc key, VirtualMethodUseNode value) => key == value.Method; 1395protected override VirtualMethodUseNode CreateValueFromKey(MethodDesc key) 1402protected override int GetKeyHashCode(MethodDesc key) => key.GetHashCode(); 1408public DependencyNodeCore<NodeFactory> VirtualMethodUse(MethodDesc decl) 1413private NodeCache<MethodDesc, VariantInterfaceMethodUseNode> _variantMethods; 1415public DependencyNodeCore<NodeFactory> VariantInterfaceMethodUse(MethodDesc decl) 1458private NodeCache<MethodDesc, MethodMetadataNode> _methodsWithMetadata; 1460internal MethodMetadataNode MethodMetadata(MethodDesc method) 1468private NodeCache<MethodDesc, MethodMetadataNode> _methodsWithLimitedMetadata; 1470internal MethodMetadataNode LimitedMethodMetadata(MethodDesc method) 1572private NodeCache<MethodDesc, EmbeddedObjectNode> _eagerCctorIndirectionNodes; 1574public EmbeddedObjectNode EagerCctorIndirection(MethodDesc cctorMethod) 1628public WasmTypeNode WasmTypeNode(MethodDesc desc) 1716public Vertex EncodeReferenceToMethod(NativeWriter writer, MethodDesc method) 1724public readonly MethodDesc Method; 1727public MethodKey(MethodDesc method, bool isUnboxingStub) 1786public readonly MethodDesc Target; 1789public DispatchCellKey(MethodDesc target, ISortableSymbolNode callsiteId)
Compiler\DependencyAnalysis\NodeFactory.GenericLookups.cs (13)
45_methodHandles = new NodeCache<MethodDesc, GenericLookupResult>(method => 55_methodDictionaries = new NodeCache<MethodDesc, GenericLookupResult>(method => 65_dispatchCells = new NodeCache<MethodDesc, GenericLookupResult>(method => 140private NodeCache<MethodDesc, GenericLookupResult> _methodHandles; 142public GenericLookupResult MethodHandle(MethodDesc method) 175private NodeCache<MethodDesc, GenericLookupResult> _methodDictionaries; 177public GenericLookupResult MethodDictionary(MethodDesc method) 182private NodeCache<MethodDesc, GenericLookupResult> _dispatchCells; 184public GenericLookupResult DispatchCell(MethodDesc method) 191public GenericLookupResult MethodEntry(MethodDesc method, bool isUnboxingThunk = false) 211public GenericLookupResult ConstrainedMethodUse(MethodDesc constrainedMethod, TypeDesc constraintType, bool directCall) 221public ConstrainedMethodUseKey(MethodDesc constrainedMethod, TypeDesc constraintType, bool directCall) 228public readonly MethodDesc ConstrainedMethod;
Compiler\DependencyAnalysis\NodeFactory.NativeLayout.cs (25)
55_methodEntries = new NodeCache<MethodDesc, NativeLayoutMethodEntryVertexNode>(method => 60_templateMethodEntries = new NodeCache<MethodDesc, NativeLayoutTemplateMethodSignatureVertexNode>(method => 65_templateMethodLayouts = new NodeCache<MethodDesc, NativeLayoutTemplateMethodLayoutVertexNode>(method => 110_interfaceCell_GenericDictionarySlots = new NodeCache<MethodDesc, NativeLayoutInterfaceDispatchGenericDictionarySlotNode>(method => 115_gvmCell_GenericDictionarySlots = new NodeCache<MethodDesc, NativeLayoutGvmDispatchGenericDictionarySlotNode>(method => 120_methodDictionary_GenericDictionarySlots = new NodeCache<MethodDesc, NativeLayoutMethodDictionaryGenericDictionarySlotNode>(method => 135_methodLdToken_GenericDictionarySlots = new NodeCache<MethodDesc, NativeLayoutMethodLdTokenGenericDictionarySlotNode>(method => 315private NodeCache<MethodDesc, NativeLayoutMethodEntryVertexNode> _methodEntries; 316internal NativeLayoutMethodEntryVertexNode MethodEntry(MethodDesc method) 321private NodeCache<MethodDesc, NativeLayoutTemplateMethodSignatureVertexNode> _templateMethodEntries; 322internal NativeLayoutTemplateMethodSignatureVertexNode TemplateMethodEntry(MethodDesc method) 327private NodeCache<MethodDesc, NativeLayoutTemplateMethodLayoutVertexNode> _templateMethodLayouts; 328public NativeLayoutTemplateMethodLayoutVertexNode TemplateMethodLayout(MethodDesc method) 381private NodeCache<MethodDesc, NativeLayoutInterfaceDispatchGenericDictionarySlotNode> _interfaceCell_GenericDictionarySlots; 382public NativeLayoutInterfaceDispatchGenericDictionarySlotNode InterfaceCellDictionarySlot(MethodDesc method) 387private NodeCache<MethodDesc, NativeLayoutGvmDispatchGenericDictionarySlotNode> _gvmCell_GenericDictionarySlots; 388public NativeLayoutGvmDispatchGenericDictionarySlotNode GvmCellDictionarySlot(MethodDesc method) 393private NodeCache<MethodDesc, NativeLayoutMethodDictionaryGenericDictionarySlotNode> _methodDictionary_GenericDictionarySlots; 394public NativeLayoutMethodDictionaryGenericDictionarySlotNode MethodDictionaryDictionarySlot(MethodDesc method) 404public readonly MethodDesc Method; 407public MethodEntrypointSlotKey(MethodDesc method, bool unboxing, IMethodNode functionPointerTarget) 447public NativeLayoutMethodEntrypointGenericDictionarySlotNode MethodEntrypointDictionarySlot(MethodDesc method, bool unboxing, IMethodNode functionPointerTarget) 458private NodeCache<MethodDesc, NativeLayoutMethodLdTokenGenericDictionarySlotNode> _methodLdToken_GenericDictionarySlots; 459public NativeLayoutMethodLdTokenGenericDictionarySlotNode MethodLdTokenDictionarySlot(MethodDesc method) 471public NativeLayoutConstrainedMethodDictionarySlotNode ConstrainedMethodUse(MethodDesc constrainedMethod, TypeDesc constraintType, bool directCall)
Compiler\DependencyAnalysis\NonGCStaticsNode.cs (1)
217MethodDesc cctorMethod = _type.GetStaticConstructor();
Compiler\DependencyAnalysis\ReadyToRunGenericHelperNode.cs (20)
44|| (dictionaryOwner is MethodDesc method && method.HasInstantiation)); 67return factory.GenericLookup.MethodHandle((MethodDesc)target); 77return factory.GenericLookup.MethodDictionary((MethodDesc)target); 79return factory.GenericLookup.DispatchCell((MethodDesc)target); 81return factory.GenericLookup.MethodEntry((MethodDesc)target); 157MethodDesc instantiatedTargetMethod = createInfo.TargetMethod.GetNonRuntimeDeterminedMethodFromRuntimeDeterminedMethodViaSubstitution(typeInstantiation, methodInstantiation); 231MethodDesc targetMethod = delegateCreationInfo.PossiblyUnresolvedTargetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 243if (_dictionaryOwner is MethodDesc) 245templateLayout = factory.NativeLayout.TemplateMethodLayout((MethodDesc)_dictionaryOwner); 276MethodDesc targetMethod = delegateCreationInfo.PossiblyUnresolvedTargetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 289if (_dictionaryOwner is MethodDesc) 294compare = comparer.Compare((MethodDesc)_dictionaryOwner, (MethodDesc)((ReadyToRunGenericHelperNode)other)._dictionaryOwner); 298if (((ReadyToRunGenericHelperNode)other)._dictionaryOwner is MethodDesc) 321return comparer.Compare((MethodDesc)_target, (MethodDesc)((ReadyToRunGenericHelperNode)other)._target); 344if (_dictionaryOwner is MethodDesc) 345mangledContextName = nameMangler.GetMangledMethodName((MethodDesc)_dictionaryOwner); 366if (_dictionaryOwner is MethodDesc) 367mangledContextName = nameMangler.GetMangledMethodName((MethodDesc)_dictionaryOwner);
Compiler\DependencyAnalysis\ReadyToRunHelperNode.cs (9)
73MethodDesc method = (MethodDesc)target; 111sb.Append(nameMangler.GetMangledMethodName((MethodDesc)_target)); 126var targetMethod = (MethodDesc)_target; 136dependencyList.Add(factory.VirtualMethodUse((MethodDesc)_target), "ReadyToRun Virtual Method Call"); 149MethodDesc targetMethod = info.TargetMethod; 197return comparer.Compare((MethodDesc)_target, (MethodDesc)((ReadyToRunHelperNode)other)._target);
Compiler\DependencyAnalysis\ReflectedMethodNode.cs (4)
23private readonly MethodDesc _method; 25public ReflectedMethodNode(MethodDesc method) 31public MethodDesc Method => _method; 43MethodDesc typicalMethod = _method.GetTypicalMethodDefinition();
Compiler\DependencyAnalysis\ReflectionInvokeMapNode.cs (4)
40public static void AddDependenciesDueToReflectability(ref DependencyList dependencies, NodeFactory factory, MethodDesc method) 51MethodDesc invokeStub = factory.MetadataManager.GetReflectionInvokeStub(method); 139MethodDesc method = mappingEntry.Entity; 198MethodDesc invokeStub = factory.MetadataManager.GetReflectionInvokeStub(method);
Compiler\DependencyAnalysis\ReflectionInvokeSupportDependencyAlgorithm.cs (1)
29public static void GetDependenciesFromParamsArray(ref DependencyList dependencies, NodeFactory factory, MethodDesc method)
Compiler\DependencyAnalysis\ReflectionVirtualInvokeMapNode.cs (9)
40public static bool NeedsVirtualInvokeInfo(NodeFactory factory, MethodDesc method) 51public static MethodDesc GetDeclaringVirtualMethodAndHierarchyDistance(MethodDesc method, out int parentHierarchyDistance) 55MethodDesc declaringMethodForSlot = MetadataVirtualMethodAlgorithm.FindSlotDefiningMethodForVirtualMethod(method.GetTypicalMethodDefinition()); 79public static void GetVirtualInvokeMapDependencies(ref DependencyList dependencies, NodeFactory factory, MethodDesc method) 89MethodDesc methodDefinition = method.GetMethodDefinition(); 90MethodDesc slotDefiningMethod = MetadataVirtualMethodAlgorithm.FindSlotDefiningMethodForVirtualMethod(methodDefinition); 129MethodDesc method = mappingEntry.Entity; 174MethodDesc declaringMethodForSlot = GetDeclaringVirtualMethodAndHierarchyDistance(method, out parentHierarchyDistance);
Compiler\DependencyAnalysis\RuntimeImportMethodNode.cs (3)
15private MethodDesc _method; 17public RuntimeImportMethodNode(MethodDesc method, NameMangler nameMangler) 23public MethodDesc Method
Compiler\DependencyAnalysis\RuntimeMethodHandleNode.cs (4)
14private MethodDesc _targetMethod; 16public MethodDesc Method => _targetMethod; 18public RuntimeMethodHandleNode(MethodDesc targetMethod) 57MethodDesc canonMethod = _targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific);
Compiler\DependencyAnalysis\ScannedMethodNode.cs (4)
23private readonly MethodDesc _method; 31public ScannedMethodNode(MethodDesc method) 38public MethodDesc Method => _method; 61MethodDesc nonUnboxingMethod = factory.TypeSystemContext.GetTargetOfSpecialUnboxingThunk(_method);
Compiler\DependencyAnalysis\SealedVTableNode.cs (15)
70public int ComputeSealedVTableSlot(MethodDesc method) 84public int ComputeDefaultInterfaceMethodSlot(MethodDesc method, DefType interfaceOnDefinition) 122IReadOnlyList<MethodDesc> virtualSlots = declTypeVTable.Slots; 132MethodDesc implMethod = declType.FindVirtualFunctionTargetMethodOnObjectType(virtualSlots[i]); 165MethodDesc declMethod = virtualSlots[interfaceMethodSlot]; 173MethodDesc interfaceDefDeclMethod = declMethod; 177var implMethod = declMethod.Signature.IsStatic ? 191MethodDesc targetMethod = implMethod; 217MethodDesc canonImplMethod = implMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 299private readonly MethodDesc _method; 303private SealedVTableEntry(MethodDesc method, DefType interfaceDefinition, IMethodNode target) 309public static SealedVTableEntry FromVirtualMethod(MethodDesc method, IMethodNode target) 312public static SealedVTableEntry FromDefaultInterfaceMethod(MethodDesc method, DefType interfaceOnDefinition, IMethodNode target) 315public bool Matches(MethodDesc method) 337public bool Matches(MethodDesc method, DefType interfaceDefinition)
Compiler\DependencyAnalysis\StringAllocatorMethodNode.cs (4)
24private readonly MethodDesc _allocationMethod; 25private readonly MethodDesc _constructorMethod; 27public MethodDesc Method => _allocationMethod; 36public StringAllocatorMethodNode(MethodDesc constructorMethod)
Compiler\DependencyAnalysis\Target_ARM\ARMReadyToRunHelperNode.cs (2)
130MethodDesc targetMethod = (MethodDesc)Target;
Compiler\DependencyAnalysis\Target_ARM64\ARM64ReadyToRunHelperNode.cs (2)
145MethodDesc targetMethod = (MethodDesc)Target;
Compiler\DependencyAnalysis\Target_LoongArch64\LoongArch64ReadyToRunHelperNode.cs (2)
137MethodDesc targetMethod = (MethodDesc)Target;
Compiler\DependencyAnalysis\Target_RiscV64\RiscV64ReadyToRunHelperNode.cs (2)
135MethodDesc targetMethod = (MethodDesc)Target;
Compiler\DependencyAnalysis\Target_X64\X64ReadyToRunHelperNode.cs (2)
150MethodDesc targetMethod = (MethodDesc)Target;
Compiler\DependencyAnalysis\Target_X86\X86ReadyToRunHelperNode.cs (2)
159MethodDesc targetMethod = (MethodDesc)Target;
Compiler\DependencyAnalysis\TentativeInstanceMethodNode.cs (1)
36MethodDesc helper = factory.InstanceMethodRemovedHelper;
Compiler\DependencyAnalysis\TentativeMethodNode.cs (2)
35MethodDesc helper = factory.TypeSystemContext.GetOptionalHelperEntryPoint("ThrowHelpers"u8, "ThrowBodyRemoved"u8); 39public MethodDesc Method => _methodNode.Method;
Compiler\DependencyAnalysis\TypeGVMEntriesNode.cs (10)
20public TypeGVMEntryInfo(MethodDesc callingMethod, MethodDesc implementationMethod) 25public MethodDesc CallingMethod { get; } 26public MethodDesc ImplementationMethod { get; } 31public InterfaceGVMEntryInfo(MethodDesc callingMethod, MethodDesc implementationMethod, 81foreach (MethodDesc decl in _associatedType.EnumAllVirtualSlots()) 92MethodDesc impl = _associatedType.FindVirtualFunctionTargetMethodOnObjectType(decl); 103foreach (var method in iface.GetVirtualMethods()) 114MethodDesc slotDecl = method.Signature.IsStatic ?
Compiler\DependencyAnalysis\TypeMetadataNode.cs (1)
80foreach (MethodDesc method in _type.GetMethods())
Compiler\DependencyAnalysis\UnboxingStubNode.cs (3)
16public MethodDesc Method { get; } 31public UnboxingStubNode(MethodDesc target) 49public static Utf8String GetMangledName(NameMangler nameMangler, MethodDesc method)
Compiler\DependencyAnalysis\VariantInterfaceMethodUseNode.cs (3)
24private readonly MethodDesc _decl; 26public VariantInterfaceMethodUseNode(MethodDesc decl) 95public static bool IsVariantMethodCall(NodeFactory factory, MethodDesc calledMethod)
Compiler\DependencyAnalysis\VTableSliceNode.cs (19)
29protected static MethodDesc[] ComputeSlots(TypeDesc type) 31var slots = default(ArrayBuilder<MethodDesc>); 36IEnumerable<MethodDesc> allSlots = defType.EnumAllVirtualSlots(); 38foreach (var method in allSlots) 58public abstract IReadOnlyList<MethodDesc> Slots 63public abstract bool IsSlotUsed(MethodDesc slot); 107private readonly MethodDesc[] _slots; 109public PrecomputedVTableSliceNode(TypeDesc type, MethodDesc[] slots) 115public override IReadOnlyList<MethodDesc> Slots 123public override bool IsSlotUsed(MethodDesc slot) 156private readonly HashSet<MethodDesc> _usedMethods = new HashSet<MethodDesc>(); 157private readonly MethodDesc[] _slots; 162public LazilyBuiltVTableSliceNode(TypeDesc type, MethodDesc[] slots = null) 168public override IReadOnlyList<MethodDesc> Slots 176public override bool IsSlotUsed(MethodDesc slot) 194public void AddEntry(MethodDesc virtualMethod) 226IEnumerable<MethodDesc> allSlots = defType.EnumAllVirtualSlots(); 228foreach (var method in allSlots)
Compiler\DescriptorMarker.cs (5)
120case MethodDesc m: 241protected override void ProcessMethod(TypeDesc type, MethodDesc method, XPathNavigator nav, object? customData) 254private void ProcessMethodIfNotNull(TypeDesc type, MethodDesc method, XPathNavigator nav, object? customData) 262protected override MethodDesc? GetMethod(TypeDesc type, string signature) 264foreach (MethodDesc meth in type.GetAllMethods())
Compiler\DynamicInvokeThunkGenerationPolicy.cs (3)
20public abstract bool HasStaticInvokeThunk(MethodDesc targetMethod); 28public override bool HasStaticInvokeThunk(MethodDesc targetMethod) => false; 36public override bool HasStaticInvokeThunk(MethodDesc targetMethod) => true;
Compiler\EmptyInteropStubManager.cs (2)
22public override void AddDependenciesDueToMethodCodePresence(ref DependencyList dependencies, NodeFactory factory, MethodDesc method) 30public override void AddMarshalAPIsGenericDependencies(ref DependencyList dependencies, NodeFactory factory, MethodDesc method)
Compiler\HardwareIntrinsicHelpers.Aot.cs (2)
17public static bool IsIsSupportedMethod(MethodDesc method) 26public static MethodIL EmitIsSupportedIL(MethodDesc method, FieldDesc isSupportedField, InstructionSet instructionSet)
Compiler\HardwareIntrinsicILProvider.cs (1)
37public override MethodIL GetMethodIL(MethodDesc method)
Compiler\IInliningPolicy.cs (2)
10bool CanInline(MethodDesc caller, MethodDesc callee);
Compiler\ILAssemblyGeneratingMethodDebugInfoProvider.cs (3)
23private readonly Dictionary<MethodDesc, MethodDebugInformation> _generatedInfos = new Dictionary<MethodDesc, MethodDebugInformation>(); 60MethodDesc owningMethod = methodIL.OwningMethod;
Compiler\ILScanner.cs (33)
58var canonicalMethodsToCompile = new HashSet<MethodDesc>(); 72MethodDesc method = methodCodeNodeNeedingCode.Method; 120MethodDesc method = methodCodeNodeNeedingCode.Method; 197MethodDesc methodDesc; 296private readonly Dictionary<TypeDesc, MethodDesc[]> _vtableSlices = new Dictionary<TypeDesc, MethodDesc[]>(); 305ArrayBuilder<MethodDesc> usedSlots = default; 309MethodDesc slot = vtableSliceNode.Slots[i]; 321if (!_vtableSlices.TryGetValue(type, out MethodDesc[] slots)) 391MethodDesc targetMethod = methodDictLookup.Method.GetCanonMethodTarget(CanonicalFormKind.Specific); 446Debug.Assert(methodOrType is MethodDesc); 447MethodDesc method = (MethodDesc)methodOrType; 464private HashSet<MethodDesc> _overriddenMethods = new(); 465private HashSet<MethodDesc> _generatedVirtualMethods = new(); 480var vtables = new Dictionary<TypeDesc, List<MethodDesc>>(); 601static List<MethodDesc> BuildVTable(NodeFactory factory, TypeDesc currentType, TypeDesc implType, List<MethodDesc> vtable) 608IReadOnlyList<MethodDesc> slice = factory.VTable(currentType).Slots; 609foreach (MethodDesc decl in slice) 621if (!vtables.TryGetValue(baseType, out List<MethodDesc> baseVtable)) 622vtables.Add(baseType, baseVtable = BuildVTable(factory, baseType, baseType, new List<MethodDesc>())); 624if (!vtables.TryGetValue(type, out List<MethodDesc> vtable)) 625vtables.Add(type, vtable = BuildVTable(factory, type, type, new List<MethodDesc>())); 714public override bool IsEffectivelySealed(MethodDesc method) 729MethodDesc canonMethod = method.GetCanonMethodTarget(CanonicalFormKind.Specific); 737protected override MethodDesc ResolveVirtualMethod(MethodDesc declMethod, DefType implType, out CORINFO_DEVIRTUALIZATION_DETAIL devirtualizationDetail) 836public bool CanInline(MethodDesc caller, MethodDesc callee) 857private readonly Dictionary<MethodDesc, TypeSystemException> _importationErrors = new Dictionary<MethodDesc, TypeSystemException>(); 871public override TypeSystemException GetCompilationError(MethodDesc method)
Compiler\InteropStubManager.cs (2)
17public abstract void AddDependenciesDueToMethodCodePresence(ref DependencyList dependencies, NodeFactory factory, MethodDesc method); 27public abstract void AddMarshalAPIsGenericDependencies(ref DependencyList dependencies, NodeFactory factory, MethodDesc method);
Compiler\IRootingServiceProvider.cs (3)
14void AddCompilationRoot(MethodDesc method, string reason) => AddCompilationRoot(method, reason, default); 15void AddCompilationRoot(MethodDesc method, string reason, Utf8String exportName, bool exportHidden = false); 18void AddReflectionRoot(MethodDesc method, string reason);
Compiler\JitHelper.cs (1)
18public static void GetEntryPoint(TypeSystemContext context, ReadyToRunHelper id, out string mangledName, out MethodDesc methodDesc)
Compiler\LazyGenericsPolicy.cs (3)
10public abstract bool UsesLazyGenerics(MethodDesc method); 17public sealed override bool UsesLazyGenerics(MethodDesc method) 44public sealed override bool UsesLazyGenerics(MethodDesc method) => false;
Compiler\LibraryInitializers.cs (4)
22private List<MethodDesc> _libraryInitializerMethods; 33public IReadOnlyCollection<MethodDesc> LibraryInitializerMethods 48_libraryInitializerMethods = new List<MethodDesc>(); 56MethodDesc initializerMethod = containingType.GetMethod(LibraryInitializerMethodName, null);
Compiler\LibraryRootProvider.cs (2)
52foreach (MethodDesc method in type.GetAllMethodsAndAsyncVariants()) 84public static void CheckCanGenerateMethod(MethodDesc method)
Compiler\Logger.cs (2)
254if (originMember is MethodDesc method && 267MethodDesc owningMethod;
Compiler\Logging\DocumentationSignatureParser.cs (4)
357typeParameterContext is MethodDesc || 367if (typeParameterContext is MethodDesc methodContext) 381var typeContext = typeParameterContext is MethodDesc methodContext 585foreach (var method in type.GetMethods())
Compiler\Logging\MessageContainer.cs (3)
133if (origin.MemberDefinition is MethodDesc originMethod && originMethod.GetTypicalMethodDefinition() is not EcmaMethod) 155if (origin.MemberDefinition is MethodDesc originMethod && originMethod.GetTypicalMethodDefinition() is not EcmaMethod) 175MethodDesc method => method.OwningType,
Compiler\Logging\UnconditionalSuppressMessageAttributeState.cs (3)
81while (_compilerGeneratedState.TryGetOwningMethodForCompilerGeneratedMember(provider, out MethodDesc? owningMethod)) 123if (warningOriginMember is MethodDesc method) 310case MethodDesc method:
Compiler\MainMethodRootProvider.cs (3)
26private readonly IReadOnlyCollection<MethodDesc> _libraryInitializers; 29public MainMethodRootProvider(EcmaModule module, IReadOnlyCollection<MethodDesc> libraryInitializers, bool generateLibraryAndModuleInitializers, string entryPointName = null) 39MethodDesc mainMethod = _module.EntryPoint;
Compiler\MetadataBlockingPolicy.cs (2)
24public abstract bool IsBlocked(MethodDesc method); 40public override bool IsBlocked(MethodDesc method)
Compiler\MetadataManager.cs (68)
53private List<MetadataMapping<MethodDesc>> _methodMappings; 54private Dictionary<MethodDesc, int> _methodHandleMap; 72private readonly SortedSet<MethodDesc> _methodsGenerated = new SortedSet<MethodDesc>(TypeSystemComparer.Instance); 73private readonly SortedSet<MethodDesc> _reflectableMethods = new SortedSet<MethodDesc>(TypeSystemComparer.Instance); 84private readonly SortedSet<MethodDesc> _genericMethodHashtableEntries = new SortedSet<MethodDesc>(TypeSystemComparer.Instance); 85private readonly SortedSet<MethodDesc> _exactMethodHashtableEntries = new SortedSet<MethodDesc>(TypeSystemComparer.Instance); 396public virtual bool IsReflectionInvokable(MethodDesc method) 401public static bool IsMethodSupportedInReflectionInvoke(MethodDesc method) 446public bool HasReflectionInvokeStub(MethodDesc method) 457public bool ShouldMethodBeInInvokeMap(MethodDesc method) 470public void GetDependenciesDueToGenericDictionary(ref DependencyList dependencies, NodeFactory factory, MethodDesc method) 479public IEnumerable<CombinedDependencyListEntry> GetConditionalDependenciesDueToGenericDictionary(NodeFactory factory, MethodDesc method) 492public void GetDependenciesDueToReflectability(ref DependencyList dependencies, NodeFactory factory, MethodDesc method) 545public virtual void GetDependenciesDueToVirtualMethodReflectability(ref DependencyList dependencies, NodeFactory factory, MethodDesc method) 549protected virtual void GetMetadataDependenciesDueToReflectability(ref DependencyList dependencies, NodeFactory factory, MethodDesc method) 556public virtual void GetNativeLayoutMetadataDependencies(ref DependencyList dependencies, NodeFactory factory, MethodDesc method) 607public virtual void GetDependenciesDueToLdToken(ref DependencyList dependencies, NodeFactory factory, MethodDesc method) 622public void GetDependenciesDueToDelegateCreation(ref DependencyList dependencies, NodeFactory factory, TypeDesc delegateType, MethodDesc target) 634public virtual void GetDependenciesDueToDelegateCreation(ref CombinedDependencyList dependencies, NodeFactory factory, TypeDesc delegateType, MethodDesc target) 643public virtual void GetDependenciesForOverridingMethod(ref CombinedDependencyList dependencies, NodeFactory factory, MethodDesc decl, MethodDesc impl) 656public void GetDependenciesDueToMethodCodePresence(ref DependencyList dependencies, NodeFactory factory, MethodDesc method, MethodIL methodIL) 663public virtual void GetConditionalDependenciesDueToMethodCodePresence(ref CombinedDependencyList dependencies, NodeFactory factory, MethodDesc method) 669protected virtual void GetDependenciesDueToMethodCodePresenceInternal(ref DependencyList dependencies, NodeFactory factory, MethodDesc method, MethodIL methodIL) 678public bool HasReflectionInvokeStubForInvokableMethod(MethodDesc method) 688public bool WillUseMetadataTokenToReferenceMethod(MethodDesc method) 705public MethodDesc GetReflectionInvokeStub(MethodDesc method) 728out List<MetadataMapping<MethodDesc>> methodMappings, 729out Dictionary<MethodDesc, int> methodMetadataMappings, 740out List<MetadataMapping<MethodDesc>> methodMappings, 741out Dictionary<MethodDesc, int> methodMetadataMappings, 754var methodsWithMappings = new HashSet<MethodDesc>(); 755foreach (var method in GetReflectableMethods()) 765var methodBodies = new HashSet<MethodDesc>(); 768MethodDesc method = methodBody.Method; 828methodMappings = new List<MetadataMapping<MethodDesc>>(); 829methodMetadataMappings = new Dictionary<MethodDesc, int>(); 855foreach (var method in GetReflectableMethods()) 857MethodDesc typicalMethod = method.GetTypicalMethodDefinition(); 888methodMappings.Add(new MetadataMapping<MethodDesc>(method, writer.GetRecordHandle(record))); 938protected StackTraceRecordData CreateStackTraceRecord(Metadata.MetadataTransform transform, MethodDesc method, StackTraceRecordFlags flags) 941MethodDesc methodToGenerateMetadataFor = method.GetTypicalMethodDefinition(); 1007public IEnumerable<MetadataMapping<MethodDesc>> GetMethodMapping(NodeFactory factory) 1013public int GetMetadataHandleForMethod(NodeFactory factory, MethodDesc method) 1103public IEnumerable<MethodDesc> GetCompiledMethods() 1108public IEnumerable<MethodDesc> GetReflectableMethods() 1128public IEnumerable<MethodDesc> GetGenericMethodHashtableEntries() 1133public IEnumerable<MethodDesc> GetExactMethodHashtableEntries() 1233public bool IsReflectionBlocked(MethodDesc method) 1235MethodDesc methodDefinition = method.GetMethodDefinition(); 1241MethodDesc typicalMethodDefinition = methodDefinition.GetTypicalMethodDefinition(); 1268public bool CanGenerateMetadata(MethodDesc method) 1287protected abstract MetadataCategory GetMetadataCategory(MethodDesc method); 1303public virtual void GetDependenciesDueToAccess(ref DependencyList dependencies, NodeFactory factory, MethodIL methodIL, MethodDesc calledMethod) 1311public virtual DependencyList GetDependenciesForCustomAttribute(NodeFactory factory, MethodDesc attributeCtor, CustomAttributeValue decodedValue, TypeSystemEntity parent) 1316public virtual void NoteOverridingMethod(MethodDesc baseMethod, MethodDesc overridingMethod, TypeSystemEntity origin = null) 1332public readonly MethodDesc Method; 1339public StackTraceMapping(MethodDesc method, int owningTypeHandle, int methodSignatureHandle, int methodNameHandle, int methodInstantiationArgumentCollectionHandle, StackTraceRecordFlags flags) 1346public readonly MethodDesc Method; 1350public ReflectionStackTraceMapping(MethodDesc method, int owningTypeHandle, int methodHandle) 1364public readonly MethodDesc Method; 1371public StackTraceRecordData(MethodDesc method, MetadataRecord owningType, MetadataRecord methodSignature, MetadataRecord methodName, MetadataRecord methodInstantiationArgumentCollection, StackTraceRecordFlags flags)
Compiler\MethodBodyDeduplicator.cs (1)
24public bool CanFold(MethodDesc method)
Compiler\MethodImportationErrorProvider.cs (1)
17public virtual TypeSystemException GetCompilationError(MethodDesc method) => null;
Compiler\MstatObjectDumper.cs (6)
40private List<(MethodDesc Method, string MangledName, int Size, int GcInfoSize)> _methods = new(); 41private Dictionary<MethodDesc, int> _methodEhInfo = new(); 43private Dictionary<MethodDesc, List<(MethodDesc Method, int MangledName)>> _deduplicatedBodies = new(); 114if (!_deduplicatedBodies.TryGetValue(originalBody.Method, out List<(MethodDesc, int)> targetBodies)) 115_deduplicatedBodies.Add(originalBody.Method, targetBodies = new List<(MethodDesc, int)>());
Compiler\MultiFileCompilationModuleGroup.cs (5)
45public sealed override bool ContainsMethodBody(MethodDesc method, bool unboxingStub) 53public sealed override bool ContainsMethodDictionary(MethodDesc method) 59public sealed override bool ImportsMethod(MethodDesc method, bool unboxingStub) 109public override bool AllowInstanceMethodOptimization(MethodDesc method) 122public override bool AllowVirtualMethodOnAbstractTypeOptimization(MethodDesc method)
Compiler\NativeLibraryInitializerRootProvider.cs (2)
23private IReadOnlyCollection<MethodDesc> _libraryInitializers; 25public NativeLibraryInitializerRootProvider(ModuleDesc module, IReadOnlyCollection<MethodDesc> libraryInitializers)
Compiler\NodeMangler.cs (2)
29public abstract Utf8String MethodGenericDictionary(MethodDesc method); 30public abstract Utf8String ExternMethod(Utf8String unmangledName, MethodDesc method);
Compiler\NoMetadataBlockingPolicy.cs (1)
45public override bool IsBlocked(MethodDesc method)
Compiler\ReachabilityInstrumentationFilter.cs (1)
54public override MethodIL GetMethodIL(MethodDesc method)
Compiler\ReachabilityInstrumentationProvider.cs (5)
39public static MethodDesc CreateInitializerMethod(CompilerTypeSystemContext context) => new InitializeMethod(context); 46public override MethodIL GetMethodIL(MethodDesc method) 84public override MethodDesc OwningMethod => _originalMethodIL.OwningMethod; 256MethodDesc registerMethod = Context.GetHelperEntryPoint("ReachabilityInstrumentationSupport"u8, "Register"u8); 263protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
Compiler\RootingHelpers.cs (5)
54foreach (var method in type.ConvertToCanonForm(CanonicalFormKind.Specific).GetMethods()) 77public static bool TryRootMethod(IRootingServiceProvider rootProvider, MethodDesc method, string reason) 90public static void RootMethod(IRootingServiceProvider rootProvider, MethodDesc method, string reason) 130public static bool TryGetDependenciesForReflectedMethod(ref DependencyList dependencies, NodeFactory factory, MethodDesc method, string reason) 132MethodDesc typicalMethod = method.GetTypicalMethodDefinition();
Compiler\RootingServiceProvider.cs (3)
27public void AddCompilationRoot(MethodDesc method, string reason, Utf8String exportName, bool exportHidden = false) 29MethodDesc canonMethod = method.GetCanonMethodTarget(CanonicalFormKind.Specific); 61public void AddReflectionRoot(MethodDesc method, string reason)
Compiler\SingleFileCompilationModuleGroup.cs (5)
22public override bool ContainsMethodBody(MethodDesc method, bool unboxingStub) 27public override bool ContainsMethodDictionary(MethodDesc method) 33public override bool ImportsMethod(MethodDesc method, bool unboxingStub) 66public override bool AllowInstanceMethodOptimization(MethodDesc method) 71public override bool AllowVirtualMethodOnAbstractTypeOptimization(MethodDesc method)
Compiler\SingleMethodCompilationModuleGroup.cs (7)
16private MethodDesc _method; 18public SingleMethodCompilationModuleGroup(MethodDesc method) 31public override bool ContainsMethodBody(MethodDesc method, bool unboxingStub) 36public sealed override bool ContainsMethodDictionary(MethodDesc method) 52public override bool ImportsMethod(MethodDesc method, bool unboxingStub) 77public override bool AllowInstanceMethodOptimization(MethodDesc method) 82public override bool AllowVirtualMethodOnAbstractTypeOptimization(MethodDesc method)
Compiler\StackTraceEmissionPolicy.cs (3)
14public abstract MethodStackTraceVisibilityFlags GetMethodVisibility(MethodDesc method); 19public override MethodStackTraceVisibilityFlags GetMethodVisibility(MethodDesc method) 38public override MethodStackTraceVisibilityFlags GetMethodVisibility(MethodDesc method)
Compiler\SubstitutedILProvider.cs (10)
39public override MethodIL GetMethodIL(MethodDesc method) 677private bool TryGetMethodConstantValue(MethodDesc method, out int constant, int level = 0) 742MethodDesc callee = (MethodDesc)methodIL.GetObject(reader.ReadILToken()); 810MethodDesc method = (MethodDesc)methodIL.GetObject(reader.ReadILToken()); 1134MethodDesc method = (MethodDesc)methodIL.GetObject(reader.ReadILToken()); 1145private bool TryGetCharacteristicValue(MethodDesc maybeCharacteristicMethod, out bool value) 1175public override MethodDesc OwningMethod => _wrappedMethodIL.OwningMethod;
Compiler\SubstitutionProvider.cs (3)
30public BodySubstitution GetSubstitution(MethodDesc method) 123public bool HasSubstitutedBody(MethodDesc method) 178public IReadOnlyDictionary<MethodDesc, BodySubstitution> BodySubstitutions { get; }
Compiler\TypePreinit.cs (33)
116private bool TryGetNestedPreinitResult(MethodDesc callingMethod, MetadataType type, Stack<MethodDesc> recursionProtect, ref int instructionCounter, out NestedPreinitResult result) 121recursionProtect ??= new Stack<MethodDesc>(); 167private Status TryScanMethod(MethodDesc method, Value[] parameters, Stack<MethodDesc> recursionProtect, ref int instructionCounter, out Value returnValue) 179private Status TryScanMethod(MethodIL methodIL, Value[] parameters, Stack<MethodDesc> recursionProtect, ref int instructionCounter, out Value returnValue) 481MethodDesc method = (MethodDesc)methodIL.GetObject(reader.ReadILToken()); 489MethodDesc directMethod = constrainedType.GetClosestDefType().TryResolveConstraintMethodApprox(method.OwningType, method, out bool forceUseRuntimeLookup, ref staticResolution); 535recursionProtect ??= new Stack<MethodDesc>(); 553MethodDesc ctor = (MethodDesc)methodIL.GetObject(reader.ReadILToken()); 626MethodDesc pointedMethod = methodPointer.PointedToMethod; 691recursionProtect ??= new Stack<MethodDesc>(); 1029var method = methodIL.GetObject(reader.ReadILToken()) as MethodDesc; 1891private bool TryHandleIntrinsicCall(MethodDesc method, Value[] parameters, out Value retVal) 1979private static TypeDesc GetArgType(MethodDesc method, int index) 2602private readonly MethodDesc[] _methods; 2606: this(type, new MethodDesc[GetFieldCount(type)], fieldThatOwnsMemory) 2610private VTableLikeStructValue(MetadataType type, MethodDesc[] methods, FieldDesc fieldThatOwnsMemory) 2663foreach (MethodDesc method in _methods) 2680return new VTableLikeStructValue(_type, (MethodDesc[])_methods.Clone(), fieldThatOwnsMemory: null); 2749MethodDesc[] slots = new MethodDesc[GetFieldCount(mdType)]; 2783MethodDesc method = _parent._methods[GetFieldIndex(field)]; 3040public MethodDesc PointedToMethod { get; } 3042public MethodPointerValue(MethodDesc pointedToMethod) 3251private readonly MethodDesc _methodPointed; 3254public DelegateInstance(TypeDesc delegateType, MethodDesc methodPointed, ReferenceTypeValue firstParameter, AllocationSite allocationSite) 3277MethodDesc targetMethod = creationInfo.PossiblyUnresolvedTargetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 3725public static Status Fail(MethodDesc method, ILOpcode opcode, string detail = null) 3730public static Status Fail(MethodDesc method, string detail)
Compiler\UnixNodeMangler.cs (2)
58public sealed override Utf8String MethodGenericDictionary(MethodDesc method) 63public sealed override Utf8String ExternMethod(Utf8String unmangledName, MethodDesc method)
Compiler\UsageBasedInteropStubManager.cs (2)
29public override void AddDependenciesDueToMethodCodePresence(ref DependencyList dependencies, NodeFactory factory, MethodDesc method) 55public override void AddMarshalAPIsGenericDependencies(ref DependencyList dependencies, NodeFactory factory, MethodDesc method)
Compiler\UsageBasedMetadataManager.cs (34)
55private readonly List<MethodDesc> _methodsWithMetadata = new List<MethodDesc>(); 193protected override MetadataCategory GetMetadataCategory(MethodDesc method) 230out List<MetadataMapping<MethodDesc>> methodMappings, 231out Dictionary<MethodDesc, int> methodMetadataMappings, 241protected override void GetMetadataDependenciesDueToReflectability(ref DependencyList dependencies, NodeFactory factory, MethodDesc method) 247public override void GetNativeLayoutMetadataDependencies(ref DependencyList dependencies, NodeFactory factory, MethodDesc method) 271if (module.GetGlobalModuleType().GetStaticConstructor() is MethodDesc moduleCctor) 307MethodDesc invokeMethod = type.GetMethod("Invoke"u8, null); 322MethodDesc defaultConstructor = elementType.GetDefaultConstructor(); 509foreach (MethodDesc method in type.GetMethods()) 519MethodDesc reflectedMethod; 551public override void GetDependenciesDueToLdToken(ref DependencyList dependencies, NodeFactory factory, MethodDesc method) 557MethodDesc canonicalMethod = method.GetCanonMethodTarget(CanonicalFormKind.Specific); 570public override void GetDependenciesDueToDelegateCreation(ref CombinedDependencyList dependencies, NodeFactory factory, TypeDesc delegateType, MethodDesc target) 622public override void GetDependenciesForOverridingMethod(ref CombinedDependencyList dependencies, NodeFactory factory, MethodDesc decl, MethodDesc impl) 641protected override void GetDependenciesDueToMethodCodePresenceInternal(ref DependencyList dependencies, NodeFactory factory, MethodDesc method, MethodIL methodIL) 692public override void GetConditionalDependenciesDueToMethodCodePresence(ref CombinedDependencyList dependencies, NodeFactory factory, MethodDesc method) 694MethodDesc typicalMethod = method.GetTypicalMethodDefinition(); 706public override void GetDependenciesDueToVirtualMethodReflectability(ref DependencyList dependencies, NodeFactory factory, MethodDesc method) 776public override void GetDependenciesDueToAccess(ref DependencyList dependencies, NodeFactory factory, MethodIL methodIL, MethodDesc calledMethod) 785public override DependencyList GetDependenciesForCustomAttribute(NodeFactory factory, MethodDesc attributeCtor, CustomAttributeValue decodedValue, TypeSystemEntity parent) 808public override void NoteOverridingMethod(MethodDesc baseMethod, MethodDesc overridingMethod, TypeSystemEntity origin) 841public static bool HasMismatchingAttributes(MethodDesc baseMethod, MethodDesc overridingMethod, string requiresAttributeName) 876var reflectableMethods = ReflectableEntityBuilder<MethodDesc>.Create(); 877foreach (var methodWithMetadata in _methodsWithMetadata) 882foreach (var method in GetReflectableMethods()) 893MethodDesc typicalMethod = method.GetTypicalMethodDefinition(); 934if (FlowAnnotations.CompilerGeneratedState.TryGetUserMethodForCompilerGeneratedMember(methodILDefinition.OwningMethod, out var userMethod)) 1023public bool GeneratesMetadata(MethodDesc methodDef) 1067public bool IsBlocked(MethodDesc methodDef)
Compiler\UserDefinedTypeDescriptor.cs (6)
183public uint GetMethodTypeIndex(MethodDesc method) 224public uint GetMethodFunctionIdTypeIndex(MethodDesc method) 872private Dictionary<MethodDesc, uint> _methodIndices = new Dictionary<MethodDesc, uint>(); 873private Dictionary<MethodDesc, uint> _methodIdIndices = new Dictionary<MethodDesc, uint>();
Compiler\VirtualMethodCallHelper.cs (6)
13public static int GetDefaultInterfaceMethodSlot(NodeFactory factory, MethodDesc method, TypeDesc implType, DefType interfaceOnDefinition, bool countDictionarySlots = true) 35public static int GetVirtualMethodSlot(NodeFactory factory, MethodDesc method, TypeDesc implType, bool countDictionarySlots = true) 70IReadOnlyList<MethodDesc> virtualSlots = factory.VTable(owningType).Slots; 110IReadOnlyList<MethodDesc> virtualSlots = factory.VTable(implType).Slots; 162IReadOnlyList<MethodDesc> baseVirtualSlots = factory.VTable(baseType).Slots; 163foreach (var vtableMethod in baseVirtualSlots)
Compiler\WindowsNodeMangler.cs (2)
81public sealed override Utf8String MethodGenericDictionary(MethodDesc method) 86public sealed override Utf8String ExternMethod(Utf8String unmangledName, MethodDesc method)
IL\ILImporter.Scanner.cs (53)
34private readonly MethodDesc _canonMethod; 84public ILImporter(ILScanner compilation, MethodDesc method, MethodIL methodIL = null) 113MethodDesc sharedMethod = method.GetSharedRuntimeFormMethodTarget(); 146MethodDesc method = _methodIL.OwningMethod; 168MethodDesc method = _methodIL.OwningMethod; 220private ISymbolNode GetGenericLookupHelper(ReadyToRunHelperId helperId, MethodDesc method) 332private IMethodNode GetMethodEntrypoint(MethodDesc method) 391|| !IsTaskConfigureAwait((MethodDesc)_methodIL.GetObject(reader.ReadILToken())) 403&& IsAsyncHelpersAwait((MethodDesc)_methodIL.GetObject(reader.ReadILToken())); 491if (!IsValueTaskAsTask((MethodDesc)_methodIL.GetObject(callToken))) 511MethodDesc ctorMethod = (MethodDesc)_methodIL.GetObject(ctorToken); 545var runtimeDeterminedMethod = (MethodDesc)_methodIL.GetObject(token); 546var method = (MethodDesc)_canonMethodIL.GetObject(token); 577MethodDesc asyncVariantMethod = _factory.TypeSystemContext.GetAsyncVariantMethod(method); 578MethodDesc asyncVariantRuntimeDeterminedMethod = _factory.TypeSystemContext.GetAsyncVariantMethod(runtimeDeterminedMethod); 586private void ImportCall(ILOpcode opcode, MethodDesc method, MethodDesc runtimeDeterminedMethod) 668MethodDesc ctor = Compilation.GetConstructorForCreateInstanceIntrinsic(type); 730MethodDesc methodAfterConstraintResolution = method; 755MethodDesc directMethod = constrained.GetClosestDefType().TryResolveConstraintMethodApprox(method.OwningType, method, out forceUseRuntimeLookup, ref staticResolution); 785MethodDesc targetMethod = methodAfterConstraintResolution; 833MethodDesc targetForDelegate = !resolvedConstraint || forceUseRuntimeLookup ? runtimeDeterminedMethod : targetMethod; 855MethodDesc targetOfLookup; 901MethodDesc concreteMethod = targetMethod; 1009MethodDesc methodToLookup = _compilation.GetTargetOfGenericVirtualMethodCall(runtimeDeterminedMethod); 1039MethodDesc slotDefiningMethod = targetMethod.IsNewSlot ? 1052var ctorMethod = (MethodDesc)_methodIL.GetObject(ctorToken); 1105private void RegisterDependenciesOnAwaitAwaiterInContinuation(MethodDesc runtimeDeterminedMethod, bool isUnsafe, string reason) 1130MethodDesc runtimeDeterminedResult = asyncHelpers 1134MethodDesc targetMethod = runtimeDeterminedResult.GetCanonMethodTarget(CanonicalFormKind.Specific); 1175MethodDesc stub = _compilation.PInvokeILProvider.GetCalliStub( 1226&& _methodIL.GetObject(reader.ReadILToken()) is MethodDesc { IsIntrinsic: true } intrinsicMethod 1361else if (obj is MethodDesc method) 1363_factory.MetadataManager.GetDependenciesDueToAccess(ref _dependencies, _factory, _methodIL, (MethodDesc)_canonMethodIL.GetObject(token)); 1840private static bool IsTypeGetTypeFromHandle(MethodDesc method) 1854private static bool IsActivatorDefaultConstructorOf(MethodDesc method) 1868private static bool IsActivatorAllocatorOf(MethodDesc method) 1882private static bool IsEETypePtrOf(MethodDesc method) 1896private static bool IsRuntimeHelpersIsReferenceOrContainsReferences(MethodDesc method) 1910private static bool IsMemoryMarshalGetArrayDataReference(MethodDesc method) 1924private static bool IsAsyncHelpersAwait(MethodDesc method) 1940private static bool IsAsyncHelpersAwaitAwaiter(MethodDesc method, out bool isUnsafe) 1964private static bool IsTaskConfigureAwait(MethodDesc method) 1984private static bool IsValueTaskAsTask(MethodDesc method) 2001private static bool IsValueTaskCtor(MethodDesc method) 2044MethodDesc taskReturningMethod = _canonMethod.GetTargetOfAsyncVariant(); 2051MethodDesc runtimeDeterminedCaller = _canonMethod.GetSharedRuntimeFormMethodTarget(); 2054MethodDesc runtimeDeterminedResult; 2073MethodDesc targetMethod = runtimeDeterminedResult.GetCanonMethodTarget(CanonicalFormKind.Specific);
IL\RvaIntrinsicPatternAnalyzer.cs (9)
161MethodDesc constructor = (MethodDesc)methodIL.GetObject(reader.PeekILToken()); 210if (!TryGetCallTarget(opcode, reader, methodIL, out MethodDesc method) 224if (!TryGetCallTarget(opcode, reader, methodIL, out MethodDesc method) 243private static bool TryGetCallTarget(ILOpcode opcode, in ILReader reader, MethodIL methodIL, out MethodDesc method) 246&& methodIL.GetObject(reader.PeekILToken()) is MethodDesc targetMethod) 322private static bool IsRuntimeHelpersInitializeArray(MethodDesc method) 335private static bool IsRuntimeHelpersCreateSpan(MethodDesc method, out TypeDesc elementType) 354private static bool IsRuntimeHelpersIntrinsic(MethodDesc method)
IL\Stubs\PInvokeILProvider.cs (3)
26public override MethodIL GetMethodIL(MethodDesc method) 35public MethodDesc GetCalliStub(MethodSignature signature, ModuleDesc moduleContext) 40public string GetDirectCallExternName(MethodDesc method)
IL\Stubs\StartupCode\NativeLibraryStartupMethod.cs (4)
20private IReadOnlyCollection<MethodDesc> _libraryInitializers; 22public NativeLibraryStartupMethod(TypeDesc owningType, IReadOnlyCollection<MethodDesc> libraryInitializers) 68foreach (MethodDesc method in _libraryInitializers) 77MethodDesc runModuleInitializers = startup?.GetMethod("RunModuleInitializers"u8, null);
IL\Stubs\StartupCode\NativeLibraryStartupMethod.Sorting.cs (1)
14protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
IL\Stubs\StartupCode\StartupCodeMainMethod.cs (12)
22private IReadOnlyCollection<MethodDesc> _libraryInitializers; 25public StartupCodeMainMethod(TypeDesc owningType, MethodDesc mainMethod, IReadOnlyCollection<MethodDesc> libraryInitializers, bool generateLibraryAndModuleInitializers) 76foreach (MethodDesc method in _libraryInitializers) 88MethodDesc initArgs = startup?.GetMethod(initArgsName, null); 97MethodDesc initEntryAssembly = startup?.GetMethod("InitializeEntryAssembly"u8, null); 106MethodDesc initApartmentState = startup?.GetMethod("InitializeApartmentState"u8, null); 123MethodDesc runModuleInitializers = startup?.GetMethod("RunModuleInitializers"u8, null); 143MethodDesc setLatchedExitCode = startup?.GetMethod("SetLatchedExitCode"u8, null); 144MethodDesc shutdown = startup?.GetMethod("Shutdown"u8, null); 210public MainMethodWrapper(TypeDesc owningType, MethodDesc mainMethod) 216public MethodDesc WrappedMethod
IL\Stubs\StartupCode\StartupCodeMainMethod.Sorting.cs (2)
12protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer) 21protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
IL\TypeEqualityPatternAnalyzer.cs (4)
147=> opcode == ILOpcode.call && methodIL.GetObject(reader.PeekILToken()) is MethodDesc method 152=> opcode == ILOpcode.call && methodIL.GetObject(reader.PeekILToken()) is MethodDesc method 157=> opcode == ILOpcode.call && methodIL.GetObject(reader.PeekILToken()) is MethodDesc method 162=> opcode is ILOpcode.call or ILOpcode.callvirt && methodIL.GetObject(reader.PeekILToken()) is MethodDesc method
parent\parent\Common\Compiler\AsyncMethodVariant.cs (21)
44public override MethodDesc GetCanonMethodTarget(CanonicalFormKind kind) 49public override MethodDesc GetMethodDefinition() 54public override MethodDesc GetTypicalMethodDefinition() 59public override MethodDesc InstantiateSignature(Instantiation typeInstantiation, Instantiation methodInstantiation) 68protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer) 110public override MethodDesc GetCanonMethodTarget(CanonicalFormKind kind) 115public override MethodDesc GetMethodDefinition() 120public override MethodDesc GetTypicalMethodDefinition() 125public override MethodDesc InstantiateSignature(Instantiation typeInstantiation, Instantiation methodInstantiation) 134protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer) 143public static bool IsAsyncVariant(this MethodDesc method) 148public static bool IsReturnDroppingAsyncThunk(this MethodDesc method) 160public static bool IsAsyncThunk(this MethodDesc method) 169public static bool IsCompilerGeneratedILBodyForAsync(this MethodDesc method) 174public static bool RequiresSaveRestoreOfAsyncContexts(this MethodDesc method) 179public static MethodDesc GetAsyncVariant(this MethodDesc method) 185public static MethodDesc GetTargetOfAsyncVariant(this MethodDesc method) 191public static MethodDesc GetTargetOfReturnDroppingAsyncThunk(this MethodDesc method)
parent\parent\Common\Compiler\AsyncMethodVariant.Mangling.cs (2)
13MethodDesc IPrefixMangledMethod.BaseMethod => _wrappedMethod; 20MethodDesc IPrefixMangledMethod.BaseMethod => _asyncVariant.Target;
parent\parent\Common\Compiler\CachingVirtualMethodAlgorithm.cs (19)
15private readonly ConcurrentDictionary<TypeDesc, (MethodDesc Slot, MethodDesc Implementation)[]> _vtableCache 16= new ConcurrentDictionary<TypeDesc, (MethodDesc Slot, MethodDesc Implementation)[]>(); 18private readonly Func<TypeDesc, (MethodDesc Slot, MethodDesc Implementation)[]> _vtableCreator; 23private (MethodDesc Slot, MethodDesc Implementation)[] ComputeVtable(TypeDesc type) 28var result = new ArrayBuilder<(MethodDesc Slot, MethodDesc Implementation)>(3 /* At least Equals/GetHashCode/ToString */); 30foreach (MethodDesc slotDecl in base.ComputeAllVirtualSlots(type)) 38public override IEnumerable<MethodDesc> ComputeAllVirtualSlots(TypeDesc type) 46static IEnumerable<MethodDesc> GetCachedSlots(CachingVirtualMethodAlgorithm thisObj, TypeDesc type) 48foreach ((MethodDesc slot, _) in thisObj._vtableCache.GetOrAdd(type.GetTypeDefinition(), thisObj._vtableCreator)) 55public override MethodDesc FindVirtualFunctionTargetMethodOnObjectType(MethodDesc targetMethod, TypeDesc objectType) 58MethodDesc targetMethodDefinition = targetMethod.GetMethodDefinition(); 60MethodDesc slotDefiningMethod = targetMethodDefinition; 71MethodDesc result = kvp.Implementation;
parent\parent\Common\Compiler\CodeGenerationFailedException.cs (3)
14public MethodDesc Method { get; } 16public CodeGenerationFailedException(MethodDesc method) 21public CodeGenerationFailedException(MethodDesc method, Exception inner)
parent\parent\Common\Compiler\CompilationModuleGroup.cs (3)
17public abstract bool ContainsMethodBody(MethodDesc method, bool unboxingStub); 23public virtual bool CanInline(MethodDesc callerMethod, MethodDesc calleeMethod) => true;
parent\parent\Common\Compiler\CompilerTypeSystemContext.Async.cs (47)
16public static IEnumerable<MethodDesc> GetAllMethodsAndAsyncVariants(this TypeDesc type) 31private MethodDesc DecomposeAsyncVariant(MethodDesc method, out bool isAsyncVariant) 37private MethodDesc WrapAsAsyncVariant(MethodDesc originalMethod, MethodDesc resolvedMethod) 42MethodDesc asyncVariant = _context.GetAsyncVariantMethod(resolvedMethod); 55public override MethodDesc FindVirtualFunctionTargetMethodOnObjectType(MethodDesc targetMethod, TypeDesc objectType) 58MethodDesc result = base.FindVirtualFunctionTargetMethodOnObjectType(targetMethod, objectType); 65public override DefaultInterfaceMethodResolution ResolveInterfaceMethodToDefaultImplementationOnType(MethodDesc interfaceMethod, TypeDesc currentType, out MethodDesc impl) 75public override MethodDesc ResolveInterfaceMethodToStaticVirtualMethodOnType(MethodDesc interfaceMethod, TypeDesc currentType) 78MethodDesc result = base.ResolveInterfaceMethodToStaticVirtualMethodOnType(interfaceMethod, currentType); 84public override MethodDesc ResolveInterfaceMethodToVirtualMethodOnType(MethodDesc interfaceMethod, TypeDesc currentType) 87MethodDesc result = base.ResolveInterfaceMethodToVirtualMethodOnType(interfaceMethod, currentType); 93public override DefaultInterfaceMethodResolution ResolveVariantInterfaceMethodToDefaultImplementationOnType(MethodDesc interfaceMethod, TypeDesc currentType, out MethodDesc impl) 102public override MethodDesc ResolveVariantInterfaceMethodToStaticVirtualMethodOnType(MethodDesc interfaceMethod, TypeDesc currentType) 105MethodDesc result = base.ResolveVariantInterfaceMethodToStaticVirtualMethodOnType(interfaceMethod, currentType); 111public override MethodDesc ResolveVariantInterfaceMethodToVirtualMethodOnType(MethodDesc interfaceMethod, TypeDesc currentType) 114MethodDesc result = base.ResolveVariantInterfaceMethodToVirtualMethodOnType(interfaceMethod, currentType); 121public override IEnumerable<MethodDesc> ComputeAllVirtualSlots(TypeDesc type) 127internal static IEnumerable<MethodDesc> WithAsyncVariants(CompilerTypeSystemContext context, IEnumerable<MethodDesc> methods) 129foreach (MethodDesc method in methods) 172public MethodDesc GetTargetOfAsyncVariantMethod(MethodDesc asyncVariantMethod) 175MethodDesc result = asyncMethodVariantDefinition.Target; 191public MethodDesc GetAsyncVariantMethod(MethodDesc taskReturningMethod) 194MethodDesc taskReturningMethodDefinition = taskReturningMethod.GetTypicalMethodDefinition(); 195MethodDesc result = _asyncVariantHashtable.GetOrCreateValue((EcmaMethod)taskReturningMethodDefinition); 210public MethodDesc GetTargetOfReturnDroppingThunk(MethodDesc returnDroppingThunk) 214MethodDesc result = returnDroppingThunkDefinition.AsyncVariantTarget; 241public MethodDesc GetReturnDroppingAsyncVariantMethod(MethodDesc asyncVariantMethod) 246MethodDesc typicalMethodDefinition = asyncVariantMethod.GetTypicalMethodDefinition(); 247MethodDesc result = _returnDroppingHashtable.GetOrCreateValue((AsyncMethodVariant)typicalMethodDefinition); 273public AsyncResumptionStub GetAsyncResumptionStub(MethodDesc targetMethod, TypeDesc owningType) 280public readonly MethodDesc TargetMethod; 283public AsyncResumptionStubKey(MethodDesc targetMethod, TypeDesc owningType)
parent\parent\Common\Compiler\CompilerTypeSystemContext.BoxedTypes.cs (30)
54public MethodDesc GetSpecialUnboxingThunk(MethodDesc targetMethod, ModuleDesc ownerModuleOfThunk) 71var targetMethodDefinition = targetMethod.GetTypicalMethodDefinition(); 79MethodDesc thunk = GetMethodForInstantiatedType(thunkDefinition, boxedType); 85public MethodDesc GetUnboxingThunk(MethodDesc targetMethod, ModuleDesc ownerModuleOfThunk) 98var targetMethodDefinition = targetMethod.GetTypicalMethodDefinition(); 103MethodDesc thunk; 160public readonly MethodDesc TargetMethod; 163public UnboxingThunkHashtableKey(MethodDesc targetMethod, BoxedValueType owningType) 328public bool IsSpecialUnboxingThunk(MethodDesc method) 333public bool IsUnboxingThunk(MethodDesc method) 341public MethodDesc GetTargetOfSpecialUnboxingThunk(MethodDesc method) 347public MethodDesc GetTargetOfUnboxingThunk(MethodDesc method) 349MethodDesc typicalMethodTarget = method.GetTypicalMethodDefinition() switch 356MethodDesc methodOnInstantiatedType = typicalMethodTarget; 363MethodDesc instantiatedMethod = methodOnInstantiatedType; 377private MethodDesc _targetMethod; 380public GenericUnboxingThunk(BoxedValueType owningType, MethodDesc targetMethod) 395public MethodDesc TargetMethod => _targetMethod; 397MethodDesc IPrefixMangledMethod.BaseMethod => _targetMethod; 479protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer) 490private MethodDesc _targetMethod; 493public UnboxingThunk(BoxedValueType owningType, MethodDesc targetMethod) 508public MethodDesc TargetMethod => _targetMethod; 510MethodDesc IPrefixMangledMethod.BaseMethod => _targetMethod; 571MethodDesc methodToInstantiate = _targetMethod; 603protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
parent\parent\Common\Compiler\CompilerTypeSystemContext.Validation.cs (2)
206public void EnsureLoadableMethod(MethodDesc method) 212MethodDesc methodDef = method.GetMethodDefinition();
parent\parent\Common\Compiler\Dataflow\DynamicallyAccessedMembersBinder.cs (12)
38foreach (var c in typeDefinition.ApplyIncludeInherited(t => t.GetConstructorsOnType(filter: null, bindingFlags: BindingFlags.NonPublic), withInherited)) 45foreach (var c in typeDefinition.ApplyIncludeInherited(t => t.GetConstructorsOnType(filter: null, bindingFlags: BindingFlags.Public), withInherited)) 51foreach (var c in typeDefinition.GetConstructorsOnType(filter: m => m.IsPublic() && !m.HasMetadataParameters())) 58foreach (var m in typeDefinition.ApplyIncludeInherited(t => t.GetMethodsOnTypeHierarchy(filter: null, bindingFlags: BindingFlags.NonPublic | declaredOnlyFlags), withInherited)) 64foreach (var m in typeDefinition.GetMethodsOnTypeHierarchy(filter: null, bindingFlags: BindingFlags.Public | declaredOnlyFlags)) 140public static IEnumerable<MethodDesc> GetConstructorsOnType(this TypeDesc type, Func<MethodDesc, bool> filter, BindingFlags? bindingFlags = null) 148foreach (var method in type.GetMethods()) 172public static IEnumerable<MethodDesc> GetMethodsOnTypeHierarchy(this TypeDesc type, Func<MethodDesc, bool> filter, BindingFlags? bindingFlags = null) 185foreach (var method in type.GetMethods()) 493foreach (var m in type.GetMethods())
parent\parent\Common\Compiler\Dataflow\EcmaExtensions.cs (8)
20public static bool IsPublic(this MethodDesc method) 32public static bool IsPrivate(this MethodDesc method) 71public static ReferenceKind ParameterReferenceKind(this MethodDesc method, int index) 109MethodDesc method => method.OwningType, 119public static ParameterProxyEnumerable GetMetadataParameters(this MethodDesc method) 128public static int GetMetadataParametersCount(this MethodDesc method) => method.Signature.Length; 133public static bool HasMetadataParameters(this MethodDesc method) => method.GetMetadataParametersCount() != 0; 138public static int GetParametersCount(this MethodDesc method)
parent\parent\Common\Compiler\Dataflow\MethodProxy.cs (4)
16public MethodProxy(MethodDesc method) => Method = method; 18public static implicit operator MethodProxy(MethodDesc method) => new(method); 20public readonly MethodDesc Method; 55MethodDesc methodDef = Method.GetMethodDefinition();
parent\parent\Common\Compiler\Dataflow\TypeExtensions.cs (1)
51public static bool IsDeclaredOnType(this MethodDesc method, string fullTypeName)
parent\parent\Common\Compiler\DependencyAnalysis\GVMDependenciesNode.cs (9)
28private readonly MethodDesc _method; 30public GVMDependenciesNode(MethodDesc method) 139MethodDesc interfaceMethod = _method.GetMethodDefinition(); 144MethodDesc slotDecl = interfaceMethod.Signature.IsStatic ? 159MethodDesc implementingMethodInstantiation = slotDecl 163MethodDesc canonImpl = implementingMethodInstantiation.GetCanonMethodTarget(CanonicalFormKind.Specific); 230MethodDesc methodToResolve; 242MethodDesc instantiatedTargetMethod = potentialOverrideType.FindVirtualFunctionTargetMethodOnObjectType(methodToResolve) 275private static DependencyNodeCore<NodeFactory> GetVirtualMethodImplNode(NodeFactory factory, MethodDesc method)
parent\parent\Common\Compiler\DependencyAnalysis\IMethodNode.cs (1)
13MethodDesc Method { get; }
parent\parent\Common\Compiler\DependencyAnalysis\MethodReadOnlyDataNode.cs (2)
13private MethodDesc _owningMethod; 16public MethodReadOnlyDataNode(MethodDesc owningMethod)
parent\parent\Common\Compiler\DependencyAnalysis\MethodReadWriteDataNode.cs (2)
13private MethodDesc _owningMethod; 16public MethodReadWriteDataNode(MethodDesc owningMethod)
parent\parent\Common\Compiler\DependencyAnalysis\ShadowConcreteMethodNode.cs (1)
21public ShadowConcreteMethodNode(MethodDesc method, IMethodNode canonicalMethod)
parent\parent\Common\Compiler\DependencyAnalysis\ShadowMethodNode.cs (2)
32public MethodDesc Method { get; } 45public ShadowMethodNode(MethodDesc method, IMethodNode canonicalMethod)
parent\parent\Common\Compiler\DependencyAnalysis\ShadowNonConcreteMethodNode.cs (1)
21public ShadowNonConcreteMethodNode(MethodDesc method, IMethodNode canonicalMethod)
parent\parent\Common\Compiler\DependencyAnalysis\VirtualMethodUseNode.cs (4)
24private readonly MethodDesc _decl; 26public MethodDesc Method => _decl; 28public VirtualMethodUseNode(MethodDesc decl) 67MethodDesc canonDecl = _decl.GetCanonMethodTarget(CanonicalFormKind.Specific);
parent\parent\Common\Compiler\DevirtualizationManager.cs (11)
42public virtual bool IsEffectivelySealed(MethodDesc method) 56public MethodDesc ResolveVirtualMethod(MethodDesc declMethod, TypeDesc implType, out CORINFO_DEVIRTUALIZATION_DETAIL devirtualizationDetail) 65protected virtual MethodDesc ResolveVirtualMethod(MethodDesc declMethod, DefType implType, out CORINFO_DEVIRTUALIZATION_DETAIL devirtualizationDetail) 69MethodDesc originalDeclMethod = declMethod; 70MethodDesc impl; 127MethodDesc defaultInterfaceDispatchDeclMethod = null; 144MethodDesc dimMethod; 211MethodDesc slotDefiningMethodImpl = MetadataVirtualMethodAlgorithm.FindSlotDefiningMethodForVirtualMethod(impl.GetMethodDefinition()); 212MethodDesc slotDefiningMethodDecl = MetadataVirtualMethodAlgorithm.FindSlotDefiningMethodForVirtualMethod(declMethod);
parent\parent\Common\Compiler\DisplayNameHelpers.cs (4)
18MethodDesc method => method.GetDisplayName(), 29public static string GetDisplayName(this MethodDesc method) 43MethodDesc typicalMethod = method.GetTypicalMethodDefinition(); 51MethodDesc typicalMethod = method.GetTypicalMethodDefinition();
parent\parent\Common\Compiler\HardwareIntrinsicHelpers.cs (1)
17public static bool IsHardwareIntrinsic(MethodDesc method)
parent\parent\Common\Compiler\INativeFormatTypeReferenceProvider.cs (1)
12internal Vertex EncodeReferenceToMethod(NativeWriter writer, MethodDesc method);
parent\parent\Common\Compiler\MethodExtensions.cs (5)
108public static bool CanMethodBeInSealedVTable(this MethodDesc method, NodeFactory factory) 146public static bool NotCallableWithoutOwningEEType(this MethodDesc method) 175public static bool IsCallEffectivelyDirect(this MethodDesc method) 203public static bool IsAsyncCall(this MethodDesc method) => method.IsAsyncVariant() || method.IsReturnDroppingAsyncThunk() || (method.IsAsync && !method.Signature.ReturnsTaskOrValueTask()); 210public static bool SupportsAsyncVersionCodegen(this MethodDesc method) => method.IsAsyncVariant() && method.IsAsyncThunk() && !method.IsReturnDroppingAsyncThunk();
parent\parent\Common\Compiler\NameMangler.cs (1)
32public abstract Utf8String GetMangledMethodName(MethodDesc method);
parent\parent\Common\Compiler\NativeAotNameMangler.cs (10)
467private Dictionary<MethodDesc, Utf8String> _mangledMethodNames = new Dictionary<MethodDesc, Utf8String>(); 468private Dictionary<MethodDesc, Utf8String> _unqualifiedMangledMethodNames = new Dictionary<MethodDesc, Utf8String>(); 470public override Utf8String GetMangledMethodName(MethodDesc method) 493private Utf8String GetUnqualifiedMangledMethodName(MethodDesc method) 546private Utf8String ComputeUnqualifiedMangledMethodName(MethodDesc method) 558foreach (var m in method.OwningType.GetMethods()) 574var methodDefinition = method.GetMethodDefinition(); 598var typicalMethodDefinition = method.GetTypicalMethodDefinition();
parent\parent\Common\Compiler\ObjectWriter\OutputInfoBuilder.cs (1)
236private static string FormatMethodName(MethodDesc method, TypeNameFormatter typeNameFormatter)
parent\parent\Common\Compiler\ProcessLinkerXmlBase.cs (7)
352MethodDesc? method = GetMethod(type, signature); 368foreach (MethodDesc method in type.GetAllMethods()) 385protected virtual MethodDesc? GetMethod(TypeDesc type, string signature) => null; 387protected virtual void ProcessMethod(TypeDesc type, MethodDesc method, XPathNavigator nav, object? customData) { } 530public static string GetMethodSignature(MethodDesc meth, bool includeGenericParameters) 578private readonly MethodDesc? _method; 580public CecilTypeNameFormatter(MethodDesc? method)
parent\parent\Common\Compiler\PseudoDescExtensions.cs (2)
13public static PropertyPseudoDesc GetPropertyForAccessor(this MethodDesc accessor) 33public static EventPseudoDesc GetEventForAccessor(this MethodDesc accessor)
parent\parent\Common\Compiler\SingleMethodRootProvider.cs (2)
13private MethodDesc _method; 15public SingleMethodRootProvider(MethodDesc method)
parent\parent\Common\Compiler\TypeExtensions.cs (22)
43public static bool RequiresInstArg(this MethodDesc method) 53public static bool RequiresInstMethodDescArg(this MethodDesc method) 62public static bool RequiresInstMethodTableArg(this MethodDesc method) 72public static bool AcquiresInstMethodTableFromThis(this MethodDesc method) 84public static bool IsArrayAddressMethod(this MethodDesc method) 94public static bool IsArrayMethod(this MethodDesc method) 133public static bool IsGenericDepthGreaterThan(this MethodDesc method, int depth) 407public static MethodDesc TryResolveConstraintMethodApprox(this TypeDesc constrainedType, TypeDesc interfaceType, MethodDesc interfaceMethod, out bool forceRuntimeLookup) 419public static MethodDesc TryResolveConstraintMethodApprox(this TypeDesc constrainedType, TypeDesc interfaceType, MethodDesc interfaceMethod, out bool forceRuntimeLookup, ref DefaultInterfaceMethodResolution staticResolution) 469MethodDesc staticMethodDef = interfaceMethod.GetMethodDefinition(); 470MethodDesc exactInterfaceMethod = staticMethodDef; 475MethodDesc result = constrainedType.ResolveVariantInterfaceMethodToStaticVirtualMethodOnType(exactInterfaceMethod); 507MethodDesc genInterfaceMethod = interfaceMethod.GetMethodDefinition(); 508MethodDesc method = null; 528MethodDesc potentialInterfaceMethod = genInterfaceMethod; 569MethodDesc exactInterfaceMethod = context.GetMethodForInstantiatedType( 592MethodDesc exactInterfaceMethod = genInterfaceMethod; 603MethodDesc targetMethod = interfaceType.FindMethodOnTypeWithMatchingTypicalMethod(genInterfaceMethod); 758foreach (MethodDesc method in type.GetVirtualMethods()) 788public static bool IsRawPInvoke(this MethodDesc method)
parent\parent\Common\Compiler\TypeMapMetadata.cs (5)
133MethodDesc ThrowingMethodStub { get; } 139MethodDesc ThrowingMethodStub { get; } 168protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer) 346MethodDesc IExternalTypeMap.ThrowingMethodStub => _externalTypeMapExceptionStub; 350MethodDesc IProxyTypeMap.ThrowingMethodStub => _associatedTypeMapExceptionStub;
parent\parent\Common\JitInterface\WasmLowering.cs (2)
574public static WasmSignature GetSignature(MethodDesc method) 589public static LoweringFlags GetLoweringFlags(MethodDesc method)
parent\parent\Common\TypeSystem\IL\DelegateInfo.cs (12)
23private MethodDesc _invokeMethod; 25private MethodDesc _getThunkMethod; 31public IEnumerable<MethodDesc> Methods 45MethodDesc thunk = thunks[kind]; 78public MethodDesc InvokeMethod 123private MethodDesc _openStaticThunk; 124private MethodDesc _multicastThunk; 125private MethodDesc _closedStaticThunk; 126private MethodDesc _closedInstanceOverGeneric; 127private MethodDesc _invokeObjectArrayThunk; 128private MethodDesc _openInstanceThunk; 210public MethodDesc this[DelegateThunkKind kind]
parent\parent\Common\TypeSystem\IL\HelperExtensions.cs (8)
30public static MethodDesc GetHelperEntryPoint(this TypeSystemContext context, ReadOnlySpan<byte> typeName, ReadOnlySpan<byte> methodName) 33MethodDesc helperMethod = helperType.GetKnownMethod(methodName, null); 37public static MethodDesc GetCoreLibEntryPoint(this TypeSystemContext context, ReadOnlySpan<byte> namespaceName, ReadOnlySpan<byte> typeName, ReadOnlySpan<byte> methodName, MethodSignature signature) 43public static MethodDesc GetOptionalHelperEntryPoint(this TypeSystemContext context, ReadOnlySpan<byte> typeName, ReadOnlySpan<byte> methodName) 46MethodDesc helperMethod = helperType?.GetMethod(methodName, null); 55public static void EmitCallThrowHelper(this ILCodeStream codeStream, ILEmitter emitter, MethodDesc method) 74public static MethodDesc GetKnownMethod(this TypeDesc type, ReadOnlySpan<byte> name, MethodSignature signature) 76MethodDesc method = type.GetMethod(name, signature);
parent\parent\Common\TypeSystem\IL\ILProvider.cs (1)
14public abstract MethodIL GetMethodIL(MethodDesc method);
parent\parent\Common\TypeSystem\IL\NativeAotILProvider.cs (9)
19private static MethodIL TryGetRuntimeImplementedMethodIL(MethodDesc method) 46private static MethodIL TryGetIntrinsicMethodIL(MethodDesc method) 92private static MethodIL TryGetPerInstantiationIntrinsicMethodIL(MethodDesc method) 156MethodDesc underlyingCompareToMethod = underlyingType.GetKnownMethod("CompareTo"u8, 237MethodDesc methodToCall = GetMethodToCall(elementType); 250static MethodDesc GetMethodToCall(TypeDesc elementType) 281public override MethodIL GetMethodIL(MethodDesc method) 334MethodDesc typicalMethod = method.GetTypicalMethodDefinition(); 390public override MethodDesc OwningMethod => _variant;
parent\parent\Common\TypeSystem\IL\Stubs\ArrayMethodILEmitter.cs (2)
96MethodDesc checkArrayStore = 241MethodDesc throwHelper = context.GetHelperEntryPoint("ThrowHelpers"u8, "ThrowIndexOutOfRangeException"u8);
parent\parent\Common\TypeSystem\IL\Stubs\AssemblyGetExecutingAssemblyMethodThunk.cs (2)
73MethodDesc classlibHelper = Context.GetHelperEntryPoint("ReflectionHelpers"u8, "GetExecutingAssembly"u8); 98public MethodDesc GetHelper(IAssemblyDesc executingAssembly)
parent\parent\Common\TypeSystem\IL\Stubs\AssemblyGetExecutingAssemblyMethodThunk.Sorting.cs (1)
14protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
parent\parent\Common\TypeSystem\IL\Stubs\AsyncResumptionStub.cs (4)
18private readonly MethodDesc _targetMethod; 22public AsyncResumptionStub(MethodDesc targetMethod, TypeDesc owningType) 38public MethodDesc TargetMethod => _targetMethod; 108MethodDesc asyncCallContinuation = Context.SystemModule.GetKnownType("System.Runtime.CompilerServices"u8, "AsyncHelpers"u8)
parent\parent\Common\TypeSystem\IL\Stubs\AsyncResumptionStub.Mangling.cs (1)
12MethodDesc IPrefixMangledMethod.BaseMethod => _targetMethod;
parent\parent\Common\TypeSystem\IL\Stubs\AsyncResumptionStub.Sorting.cs (1)
13protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
parent\parent\Common\TypeSystem\IL\Stubs\AsyncThunks.cs (9)
17public static MethodIL EmitTaskReturningThunk(MethodDesc taskReturningMethod, MethodDesc asyncMethod) 100MethodDesc asyncCallContinuationMd = asyncHelpersType.GetKnownMethod("AsyncCallContinuation"u8, null); 112MethodDesc fromResultMethod; 132MethodDesc getCompletedTaskMethod; 159MethodDesc fromExceptionMd; 194MethodDesc createRuntimeAsyncTaskMd; 248public static MethodIL EmitReturnDroppingThunk(MethodDesc returnDroppingMethod, MethodDesc asyncVariantTarget)
parent\parent\Common\TypeSystem\IL\Stubs\CalliMarshallingMethodThunk.Sorting.cs (1)
13protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
parent\parent\Common\TypeSystem\IL\Stubs\ComparerIntrinsics.cs (5)
22public static MethodIL EmitComparerCreate(MethodDesc target) 30public static MethodIL EmitEqualityComparerCreate(MethodDesc target) 51private static MethodIL EmitComparerAndEqualityComparerCreateCommon(MethodDesc methodBeingGenerated, ReadOnlySpan<byte> flavor, ReadOnlySpan<byte> interfaceName) 244public static bool CanCompareValueTypeBits(MetadataType type, MethodDesc objectEqualsMethod) 250public static bool CanCompareValueTypeBitsUntilOffset(MetadataType type, MethodDesc objectEqualsMethod, out int lastFieldEndOffset)
parent\parent\Common\TypeSystem\IL\Stubs\DelegateMarshallingMethodThunk.cs (2)
30private readonly MethodDesc _invokeMethod; 33public MethodDesc InvokeMethod
parent\parent\Common\TypeSystem\IL\Stubs\DelegateMarshallingMethodThunk.Sorting.cs (1)
13protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
parent\parent\Common\TypeSystem\IL\Stubs\DelegateMethodILEmitter.cs (3)
14public static MethodIL EmitIL(MethodDesc method) 25MethodDesc notSupportedExceptionHelper = method.Context.GetHelperEntryPoint("ThrowHelpers"u8, "ThrowPlatformNotSupportedException"u8); 40MethodDesc notSupportedExceptionHelper = method.Context.GetHelperEntryPoint("ThrowHelpers"u8, "ThrowPlatformNotSupportedException"u8);
parent\parent\Common\TypeSystem\IL\Stubs\DelegateThunks.cs (8)
25public override MethodIL EmitIL(MethodDesc specializedMethod) 156public override MethodIL EmitIL(MethodDesc specializedMethod) 491public override MethodIL EmitIL(MethodDesc specializedMethod) 568MethodDesc emptyObjectArrayMethod = Context.GetHelperEntryPoint("DelegateHelpers"u8, "GetEmptyObjectArray"u8); 591MethodDesc invokeMethod = instantiatedFunc.GetKnownMethod("Invoke"u8, null); 714MethodDesc thunk = _delegateInfo.Thunks[i]; 728MethodDesc thunk = _delegateInfo.Thunks[i]; 732MethodDesc targetMethod = thunk.InstantiateAsOpen();
parent\parent\Common\TypeSystem\IL\Stubs\DelegateThunks.Sorting.cs (2)
11protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer) 52protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
parent\parent\Common\TypeSystem\IL\Stubs\DynamicInvokeMethodThunk.Sorting.cs (1)
13protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
parent\parent\Common\TypeSystem\IL\Stubs\ForwardDelegateCreationThunk.Sorting.cs (1)
13protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
parent\parent\Common\TypeSystem\IL\Stubs\GetCanonTypeIntrinsic.cs (1)
16public static MethodIL EmitIL(MethodDesc target)
parent\parent\Common\TypeSystem\IL\Stubs\GetFieldHelperMethodOverride.cs (7)
69public override MethodIL EmitIL(MethodDesc specializedMethod) 75private MethodIL EmitILCommon(MethodDesc contextMethod) 84MethodDesc thrower = Context.GetHelperEntryPoint("ThrowHelpers"u8, "ThrowNotSupportedInlineArrayEqualsGetHashCode"u8); 98MethodDesc methodTableOfMethod = methodTableType.GetKnownMethod("Of"u8, null); 142MethodDesc mtOfFieldMethod = methodTableOfMethod.MakeInstantiatedMethod(boxableFieldType); 168&& MetadataVirtualMethodAlgorithm.FindSlotDefiningMethodForVirtualMethod(this) is MethodDesc slotMethod 169&& owningType.BaseType.FindVirtualFunctionTargetMethodOnObjectType(slotMethod) is MethodDesc baseMethod
parent\parent\Common\TypeSystem\IL\Stubs\GetFieldHelperMethodOverride.Sorting.cs (1)
12protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
parent\parent\Common\TypeSystem\IL\Stubs\InterlockedIntrinsics.cs (2)
21MethodDesc method) 59MethodDesc compareExchangeNonGeneric = method.OwningType.GetKnownMethod("CompareExchange"u8,
parent\parent\Common\TypeSystem\IL\Stubs\MethodBaseGetCurrentMethodThunk.cs (9)
20public MethodBaseGetCurrentMethodThunk(MethodDesc method) 37public MethodDesc Method 87MethodDesc classlibHelper = Context.GetHelperEntryPoint("ReflectionHelpers"u8, helperName); 105public MethodDesc GetHelper(MethodDesc currentMethod) 110private sealed class Unifier : LockFreeReaderHashtable<MethodDesc, MethodBaseGetCurrentMethodThunk> 112protected override int GetKeyHashCode(MethodDesc key) 120protected override bool CompareKeyToValue(MethodDesc key, MethodBaseGetCurrentMethodThunk value) 128protected override MethodBaseGetCurrentMethodThunk CreateValueFromKey(MethodDesc key)
parent\parent\Common\TypeSystem\IL\Stubs\MethodBaseGetCurrentMethodThunk.Mangling.cs (1)
11MethodDesc IPrefixMangledMethod.BaseMethod
parent\parent\Common\TypeSystem\IL\Stubs\MethodBaseGetCurrentMethodThunk.Sorting.cs (1)
13protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
parent\parent\Common\TypeSystem\IL\Stubs\PInvokeILEmitter.cs (7)
18private readonly MethodDesc _targetMethod; 25private PInvokeILEmitter(MethodDesc targetMethod, PInvokeILEmitterConfiguration pinvokeILEmitterConfiguration, InteropStateManager interopStateManager) 49private static Marshaller[] InitializeMarshallers(MethodDesc targetMethod, InteropStateManager interopStateManager, PInvokeFlags flags) 193MethodDesc instantiatedHelper = delegateMethod.Context.GetInstantiatedMethod( 203MethodDesc invokeMethod = delegateMethod.DelegateType.GetKnownMethod("Invoke"u8, null); 327MethodDesc nativeMethod = 436public static MethodIL EmitIL(MethodDesc method,
parent\parent\Common\TypeSystem\IL\Stubs\PInvokeLazyFixupField.cs (3)
21private readonly MethodDesc _targetMethod; 24public PInvokeLazyFixupField(MetadataType owningType, MethodDesc targetMethod, MethodSignature nativeSignature) 32public MethodDesc TargetMethod
parent\parent\Common\TypeSystem\IL\Stubs\RuntimeHelpersIntrinsics.cs (2)
18public static MethodIL EmitIL(MethodDesc method) 71MethodDesc objectEquals = mdType.Context.GetWellKnownType(WellKnownType.Object).GetMethod("Equals"u8, null);
parent\parent\Common\TypeSystem\IL\Stubs\StreamIntrinsics.cs (3)
17public static MethodIL EmitIL(MethodDesc method) 26MethodDesc beginMethod = streamClass.GetMethod(isRead ? "BeginRead"u8 : "BeginWrite"u8, null); 27MethodDesc endMethod = streamClass.GetMethod(isRead ? "EndRead"u8 : "EndWrite"u8, null);
parent\parent\Common\TypeSystem\IL\Stubs\StructMarshallingThunk.Sorting.cs (1)
13protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
parent\parent\Common\TypeSystem\IL\Stubs\TypeGetTypeMethodThunk.cs (7)
20private readonly MethodDesc _helperMethod; 22public TypeGetTypeMethodThunk(TypeDesc owningType, MethodSignature signature, MethodDesc helperMethod, string defaultAssemblyName) 121public MethodDesc GetHelper(MethodDesc getTypeOverload, string defaultAssemblyName) 129public readonly MethodDesc GetTypeOverload; 131public Key(string defaultAssemblyName, MethodDesc getTypeOverload) 182MethodDesc helper = context.GetHelperEntryPoint("ReflectionHelpers"u8, helperName);
parent\parent\Common\TypeSystem\IL\Stubs\TypeGetTypeMethodThunk.Sorting.cs (1)
15protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
parent\parent\Common\TypeSystem\IL\Stubs\TypeSystemThrowingILEmitter.cs (2)
19public static MethodIL EmitIL(MethodDesc methodThatShouldThrow, TypeSystemException exception) 23MethodDesc helper;
parent\parent\Common\TypeSystem\IL\Stubs\UnsafeIntrinsics.cs (8)
17public static MethodIL EmitIL(MethodDesc method) 99private static MethodIL EmitAdd(MethodDesc method) 117private static MethodIL EmitSubtract(MethodDesc method) 137private static MethodIL EmitReadWrite(MethodDesc method, bool write, bool unaligned = false) 155private static MethodIL EmitCopy(MethodDesc method) 174private static MethodIL EmitCopyBlock(MethodDesc method, bool unaligned) 192private static MethodIL EmitInitBlock(MethodDesc method, bool unaligned) 210private static MethodIL EmitUnbox(MethodDesc method)
parent\parent\Common\TypeSystem\Interop\IL\InlineArrayType.cs (5)
170private MethodDesc[] _methods; 258MethodDesc[] methods = new MethodDesc[] { 265public override IEnumerable<MethodDesc> GetMethods() 274public MethodDesc GetInlineArrayMethod(InlineArrayMethodKind kind)
parent\parent\Common\TypeSystem\Interop\IL\InlineArrayType.Sorting.cs (1)
25protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
parent\parent\Common\TypeSystem\Interop\IL\MarshalHelpers.Aot.cs (2)
119public static MethodIL EmitExceptionBody(string message, MethodDesc method) 126MethodDesc exceptionCtor = InteropTypes.GetMarshalDirectiveException(context).GetKnownMethod(".ctor"u8, ctorSignature);
parent\parent\Common\TypeSystem\Interop\IL\Marshaller.Aot.cs (38)
111var helper = Context.GetHelperEntryPoint("InteropHelpers"u8, "AllocMemoryForAnsiCharArray"u8); 123var helper = Context.GetHelperEntryPoint("InteropHelpers"u8, "WideCharArrayToAnsiCharArray"u8); 135var helper = Context.GetHelperEntryPoint("InteropHelpers"u8, "AnsiCharArrayToWideCharArray"u8); 148var helper = Context.GetHelperEntryPoint("InteropHelpers"u8, "WideCharToAnsiChar"u8); 160var helper = Context.GetHelperEntryPoint("InteropHelpers"u8, "AnsiCharToWideChar"u8); 209var helper = Context.GetHelperEntryPoint("InteropHelpers"u8, helperMethodName); 221var helper = Context.GetHelperEntryPoint("InteropHelpers"u8, helperMethodName); 236var helper = Context.GetHelperEntryPoint("InteropHelpers"u8, helperMethodName); 560protected abstract MethodDesc GetManagedToNativeHelper(); 562protected abstract MethodDesc GetNativeToManagedHelper(); 619protected override MethodDesc GetManagedToNativeHelper() 624protected override MethodDesc GetNativeToManagedHelper() 640protected override MethodDesc GetManagedToNativeHelper() 645protected override MethodDesc GetNativeToManagedHelper() 879MethodDesc getNativeSizeHelper = Context.GetHelperEntryPoint("InteropHelpers"u8, "AsAnyGetNativeSize"u8); 984MethodDesc guidCtorHandleMethod = 988MethodDesc helper = Context.GetHelperEntryPoint("InteropHelpers"u8, "ConvertManagedComInterfaceToNative"u8); 998MethodDesc helper = Context.GetHelperEntryPoint("InteropHelpers"u8, "ConvertManagedComInterfaceToIUnknown"u8); 1010MethodDesc helper = Context.GetHelperEntryPoint("InteropHelpers"u8, "ConvertNativeComInterfaceToManaged"u8); 1029var helper = InteropTypes.GetMarshal(Context).GetKnownMethod("FreeBSTR"u8, null); 1037var helper = Context.GetHelperEntryPoint("InteropHelpers"u8, "StringToAnsiBstrBuffer"u8); 1048var helper = Context.GetHelperEntryPoint("InteropHelpers"u8, "AnsiBstrBufferToString"u8); 1062var helper = InteropTypes.GetMarshal(Context).GetKnownMethod("FreeBSTR"u8, null); 1070var helper = InteropTypes.GetMarshal(Context).GetKnownMethod("StringToBSTR"u8, null); 1081var helper = Context.GetHelperEntryPoint("InteropHelpers"u8, "BstrBufferToString"u8); 1095var helper = Context.GetHelperEntryPoint("InteropHelpers"u8, "DateTimeToOleDateTime"u8); 1106var helper = Context.GetHelperEntryPoint("InteropHelpers"u8, "OleDateTimeToDateTime"u8); 1120var helper = Context.GetHelperEntryPoint("InteropHelpers"u8, "DecimalToOleCurrency"u8); 1131var helper = Context.GetHelperEntryPoint("InteropHelpers"u8, "OleCurrencyToDecimal"u8); 1171var helper = Context.GetHelperEntryPoint("InteropHelpers"u8, "ConvertObjectToVariant"u8); 1186var helper = Context.GetHelperEntryPoint("InteropHelpers"u8, "VariantToObject"u8); 1203var helper = Context.GetHelperEntryPoint("InteropHelpers"u8, "CleanupVariant"u8); 1227var getInstanceMethod = marshallerType.GetMethod( 1235var initializeCustomMarshallerMethod = Context.GetHelperEntryPoint("InteropHelpers"u8, "InitializeCustomMarshaller"u8); 1267var manageToNativeMethod = customMarshallerType.GetKnownMethod( 1296var marshalNativeToManagedMethod = customMarshallerType.GetKnownMethod( 1314var cleanupManagedDataMethod = customMarshallerType.GetKnownMethod( 1331var cleanupNativeDataMethod = customMarshallerType.GetKnownMethod(
parent\parent\Common\TypeSystem\Interop\IL\Marshaller.cs (9)
446public static Marshaller[] GetMarshallersForMethod(MethodDesc targetMethod) 465public static bool IsMarshallingRequired(MethodDesc targetMethod) 1507MethodDesc getArrayDataReferenceGenericMethod = InteropTypes.GetMemoryMarshal(Context).GetKnownMethod("GetArrayDataReference"u8, null); 1508MethodDesc getArrayDataReferenceMethod = getArrayDataReferenceGenericMethod.MakeInstantiatedMethod(ManagedElementType); 1689var helper = Context.GetHelperEntryPoint("InteropHelpers"u8, "StringToUnicodeBuffer"u8); 1701var charPtrConstructor = Context.GetWellKnownType(WellKnownType.String).GetMethod(".ctor"u8, 1757var stringToAnsi = Context.GetHelperEntryPoint("InteropHelpers"u8, "StringToAnsiString"u8); 1770var ansiToString = Context.GetHelperEntryPoint("InteropHelpers"u8, "AnsiStringToString"u8); 1892var ctor = ManagedType.GetParameterlessConstructor();
parent\parent\Common\TypeSystem\Interop\IL\PInvokeDelegateWrapper.cs (5)
237private MethodDesc[] _methods; 241MethodDesc[] methods = new MethodDesc[] { 250public override IEnumerable<MethodDesc> GetMethods() 259public MethodDesc GetPInvokeDelegateWrapperMethod(PInvokeDelegateWrapperMethodKind kind)
parent\parent\Common\TypeSystem\Interop\IL\PInvokeDelegateWrapperConstructor.Sorting.cs (1)
11protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
parent\parent\Common\TypeSystem\Interop\IL\PInvokeILEmitterConfiguration.cs (1)
10public abstract bool GenerateDirectCall(MethodDesc method, out string externName);
parent\parent\Common\TypeSystem\Interop\InteropStateManager.cs (7)
133public MethodDesc GetStructMarshallingManagedToNativeThunk(TypeDesc managedType) 149public MethodDesc GetStructMarshallingNativeToManagedThunk(TypeDesc managedType) 165public MethodDesc GetStructMarshallingCleanupThunk(TypeDesc managedType) 183public FieldDesc GetPInvokeLazyFixupField(MethodDesc method, MethodSignature nativeSig) 188public MethodDesc GetPInvokeCalliStub(MethodSignature signature, ModuleDesc moduleContext) 451public readonly MethodDesc Method; 453public PInvokeLazyFixupFieldKey(MethodDesc method, MethodSignature nativeSignature)
parent\parent\Common\TypeSystem\Interop\UnmanagedCallingConventions.cs (2)
95public static UnmanagedCallingConventions GetUnmanagedCallersOnlyMethodCallingConventions(this MethodDesc method) 106public static UnmanagedCallingConventions GetPInvokeMethodCallingConventions(this MethodDesc method)
parent\parent\Common\TypeSystem\MetadataEmitter\TypeSystemMetadataEmitter.cs (4)
26private Dictionary<MethodDesc, EntityHandle> _methodRefs = new Dictionary<MethodDesc, EntityHandle>(); 168case MethodDesc method: return GetMethodRef(method); 295public EntityHandle GetMethodRef(MethodDesc method)
src\runtime\src\coreclr\tools\Common\Compiler\GenericCycleDetection\GraphBuilder.cs (4)
286foreach (MethodDesc interfaceMethod in interfaceType.GetVirtualMethods()) 296MethodDesc impl = interfaceMethod.Signature.IsStatic ? 411var m = methodIL.GetObject(MetadataTokens.GetToken(accessedMethod), NotFoundBehavior.ReturnNull) as MethodDesc;
src\runtime\src\coreclr\tools\Common\Compiler\GenericCycleDetection\GraphBuilder.MethodCall.cs (1)
19private void ProcessMethodCall(MethodDesc target, Instantiation typeContext, Instantiation methodContext)
src\runtime\src\coreclr\tools\Common\Compiler\GenericCycleDetection\ModuleCycleInfo.cs (8)
129return IsDeepPossiblyCyclicInstantiation((MethodDesc)entity); 211public bool IsDeepPossiblyCyclicInstantiation(MethodDesc method) 255var ownerMethod = owner as MethodDesc; 258var referentMethod = referent as MethodDesc; 303: ((MethodDesc)referent).GetTypicalMethodDefinition(); 305: ((MethodDesc)owner).GetTypicalMethodDefinition();
ILCompiler.MetadataTransform (30)
ILCompiler\Metadata\IMetadataPolicy.cs (2)
31bool GeneratesMetadata(Cts.MethodDesc methodDef); 69bool IsBlocked(Cts.MethodDesc methodDef);
ILCompiler\Metadata\MetadataTransform.cs (1)
63public abstract MetadataRecord HandleQualifiedMethod(Cts.MethodDesc method);
ILCompiler\Metadata\MetadataTransformResult.cs (4)
87public Method GetTransformedMethodDefinition(Cts.MethodDesc method) 100public IEnumerable<KeyValuePair<Cts.MethodDesc, Method>> GetTransformedMethodDefinitions() 102foreach (KeyValuePair<Cts.MethodDesc, MetadataRecord> entry in _transform._methods.Entries) 104yield return new KeyValuePair<Cts.MethodDesc, Method>(entry.Key, m);
ILCompiler\Metadata\Transform.CustomAttribute.cs (1)
41Cts.MethodDesc constructor = module.GetMethod(attribute.Constructor);
ILCompiler\Metadata\Transform.Event.cs (3)
22Cts.MethodDesc adderMethod = acc.Adder.IsNil ? null : module.GetMethod(acc.Adder); 23Cts.MethodDesc raiserMethod = acc.Raiser.IsNil ? null : module.GetMethod(acc.Raiser); 24Cts.MethodDesc removerMethod = acc.Remover.IsNil ? null : module.GetMethod(acc.Remover);
ILCompiler\Metadata\Transform.Method.cs (15)
21internal EntityMap<Cts.MethodDesc, MetadataRecord> _methods 22= new EntityMap<Cts.MethodDesc, MetadataRecord>(EqualityComparer<Cts.MethodDesc>.Default); 24private Action<Cts.MethodDesc, Method> _initMethodDef; 25private Action<Cts.MethodDesc, MemberReference> _initMethodRef; 26private Action<Cts.MethodDesc, MethodInstantiation> _initMethodInst; 28public override MetadataRecord HandleQualifiedMethod(Cts.MethodDesc method) 54private Method HandleMethodDefinition(Cts.MethodDesc method) 61private void InitializeMethodDefinition(Cts.MethodDesc entity, Method record) 130private MemberReference HandleMethodReference(Cts.MethodDesc method) 136private void InitializeMethodReference(Cts.MethodDesc entity, MemberReference record) 143private MethodInstantiation HandleMethodInstantiation(Cts.MethodDesc method) 148private void InitializeMethodInstantiation(Cts.MethodDesc entity, MethodInstantiation record) 211private static MethodAttributes GetMethodAttributes(Cts.MethodDesc method) 224private static MethodImplAttributes GetMethodImplAttributes(Cts.MethodDesc method)
ILCompiler\Metadata\Transform.Property.cs (2)
23Cts.MethodDesc getterMethod = acc.Getter.IsNil ? null : module.GetMethod(acc.Getter); 24Cts.MethodDesc setterMethod = acc.Setter.IsNil ? null : module.GetMethod(acc.Setter);
ILCompiler\Metadata\Transform.Scope.cs (1)
63Cts.MethodDesc entryPoint = ecmaAssembly.EntryPoint;
ILCompiler\Metadata\Transform.Type.cs (1)
324foreach (var method in entity.GetMethods())
ILCompiler.ReadyToRun (855)
Compiler\CallChainProfile.cs (21)
43private readonly Dictionary<MethodDesc, Dictionary<MethodDesc, int>> _resolvedProfileData; 64private Dictionary<MethodDesc, Dictionary<MethodDesc, int>> ResolveMethods(Dictionary<string, Dictionary<string, int>> profileData, CompilerTypeSystemContext context) 66var resolvedProfileData = new Dictionary<MethodDesc, Dictionary<MethodDesc, int>>(); 67Dictionary<string, MethodDesc> nameToMethodDescMap = new Dictionary<string, MethodDesc>(); 72var resolvedKeyMethod = CachedResolveMethodName(nameToMethodDescMap, keyAndMethods.Key, context); 80var resolvedCalledMethod = CachedResolveMethodName(nameToMethodDescMap ,methodAndHitCount.Key, context); 86resolvedProfileData.Add(resolvedKeyMethod, new Dictionary<MethodDesc, int>()); 100private MethodDesc CachedResolveMethodName(Dictionary<string, MethodDesc> nameToMethodDescMap, string methodName, CompilerTypeSystemContext context) 102MethodDesc resolvedMethod = null; 126private MethodDesc ResolveMethodName(CompilerTypeSystemContext context, string methodName) 186var resolvedMethod = ResolveMethodName(context, resolvedModule, namespaceAndTypeName, methodNameWithoutType); 207var resolvedMethod = ResolveMethodName(context, module, namespaceAndTypeName, methodNameWithoutType); 228private MethodDesc ResolveMethodName(CompilerTypeSystemContext context, ModuleDesc module, string namespaceAndTypeName, string methodName) 235var resolvedMethod = resolvedType.GetMethod(Encoding.UTF8.GetBytes(methodName), null); 325public IReadOnlyDictionary<MethodDesc, Dictionary<MethodDesc, int>> ResolvedProfileData => _resolvedProfileData;
Compiler\CompilationModuleGroup.ReadyToRun.cs (4)
43public virtual bool VersionsWithMethodBody(MethodDesc methodDesc) => ContainsMethodBody(methodDesc, unboxingStub: false); 51public virtual bool CrossModuleInlineable(MethodDesc methodDesc) => false; 60public virtual bool CrossModuleCompileable(MethodDesc methodDesc) => false; 75public abstract bool GeneratesPInvoke(MethodDesc method);
Compiler\DependencyAnalysis\AllMethodsOnTypeNode.cs (1)
38foreach (MethodDesc method in Type.GetAllMethods())
Compiler\DependencyAnalysis\ArrayInterfaceMethodsNode.cs (4)
59foreach (MethodDesc interfaceMethod in interfaceType.GetVirtualMethods()) 62MethodDesc helperMethodDef = szArrayHelper.GetMethod(interfaceMethod.Name, null); 66MethodDesc helperMethod = factory.TypeSystemContext.GetInstantiatedMethod(helperMethodDef, new Instantiation(elementType)); 67MethodDesc canonHelperMethod = helperMethod.GetCanonMethodTarget(CanonicalFormKind.Specific);
Compiler\DependencyAnalysis\ImportReferenceProvider.cs (1)
56Vertex INativeFormatTypeReferenceProvider.EncodeReferenceToMethod(NativeWriter writer, MethodDesc method) => throw new NotImplementedException();
Compiler\DependencyAnalysis\InheritedVirtualMethodsNode.cs (9)
54foreach (MethodDesc decl in defType.EnumAllVirtualSlots()) 60MethodDesc impl = defType.FindVirtualFunctionTargetMethodOnObjectType(decl); 64MethodDesc canonImpl = impl.GetCanonMethodTarget(CanonicalFormKind.Specific); 96foreach (MethodDesc interfaceMethod in interfaceType.EnumAllVirtualSlots()) 102MethodDesc interfaceMethodDefinition = interfaceMethod; 108MethodDesc implMethod = defTypeDefinition.InstantiateAsOpen().ResolveInterfaceMethodTarget(interfaceMethodDefinition); 161foreach (MethodDesc method in currentType.GetVirtualMethods()) 172foreach (MethodDesc interfaceMethod in interfaceType.GetVirtualMethods()) 193private static DependencyNodeCore<NodeFactory> GetVirtualMethodImplNode(NodeFactory factory, MethodDesc method)
Compiler\DependencyAnalysis\ReadyToRun\CopiedMethodILNode.cs (2)
75private static bool MayNeedILAtRuntime(NodeFactory factory, MethodDesc method) 85MethodDesc asyncVariant = method.GetAsyncVariant().GetTypicalMethodDefinition();
Compiler\DependencyAnalysis\ReadyToRun\DelayLoadHelperImport.cs (1)
36MethodDesc callingMethod = null)
Compiler\DependencyAnalysis\ReadyToRun\DelayLoadHelperMethodImport.cs (3)
32MethodDesc callingMethod = null) 48MethodDesc canonMethod = _method.Method.GetCanonMethodTarget(CanonicalFormKind.Specific); 71public MethodDesc Method => _method.Method;
Compiler\DependencyAnalysis\ReadyToRun\DelayLoadMethodImport.cs (1)
38public MethodDesc Method => MethodWithToken.Method;
Compiler\DependencyAnalysis\ReadyToRun\DevirtualizationManager.cs (4)
23public override bool IsEffectivelySealed(MethodDesc method) 28protected override MethodDesc ResolveVirtualMethod(MethodDesc declMethod, DefType implType, out CORINFO_DEVIRTUALIZATION_DETAIL devirtualizationDetail) 161MethodDesc resolvedVirtualMethod = base.ResolveVirtualMethod(declMethod, implType, out devirtualizationDetail);
Compiler\DependencyAnalysis\ReadyToRun\GCRefMapBuilder.cs (2)
124public void GetCallRefMap(MethodDesc method, bool isUnboxingStub) 172private void FakeGcScanRoots(MethodDesc method, ArgIterator<TypeHandle> argit, CORCOMPILE_GCREFMAP_TOKENS[] frame, bool isUnboxingStub)
Compiler\DependencyAnalysis\ReadyToRun\GenericLookupSignature.cs (4)
239var contextAsMethod = _methodContext.Context as MethodDesc; 240var otherContextAsMethod = otherNode._methodContext.Context as MethodDesc;
Compiler\DependencyAnalysis\ReadyToRun\ILBodyFixupSignature.cs (2)
40private readonly MethodDesc _signatureMethod; 45public ILBodyFixupSignature(ReadyToRunFixupKind fixupKind, MethodDesc signatureMethod)
Compiler\DependencyAnalysis\ReadyToRun\Import.cs (2)
20internal readonly MethodDesc CallingMethod; 24public Import(ImportSectionNode tableNode, Signature importSignature, MethodDesc callingMethod = null)
Compiler\DependencyAnalysis\ReadyToRun\InliningInfoNode.cs (12)
63Dictionary<MethodDesc, HashSet<MethodDesc>> inlineeToInliners = new Dictionary<MethodDesc, HashSet<MethodDesc>>(); 69MethodDesc[] inlinees = methodNode.InlinedMethods; 74MethodDesc inliner = methodNode.Method; 88foreach (MethodDesc inlinee in inlinees) 90MethodDesc inlineeDefinition = inlinee.GetTypicalMethodDefinition(); 126if (!inlineeToInliners.TryGetValue(inlineeDefinition, out HashSet<MethodDesc> inliners)) 128inliners = new HashSet<MethodDesc>(); 144MethodDesc inlinee = inlineeWithInliners.Key; 181foreach (var inliner in inlineeWithInliners.Value)
Compiler\DependencyAnalysis\ReadyToRun\InstanceEntryPointTableNode.cs (3)
57public static byte[] BuildSignatureForMethodDefinedInModule(MethodDesc method, NodeFactory factory) 76MethodDesc signatureMethod = isUnboxStub ? context.GetTargetOfUnboxingThunk(method) : method; 147MethodDesc hashtableKeyMethod = isUnboxingThunk ? context.GetTargetOfUnboxingThunk(method.Method) : method.Method;
Compiler\DependencyAnalysis\ReadyToRun\InstrumentationDataTableNode.cs (9)
28private readonly HashSet<MethodDesc> _methodsWithSynthesizedPgoData = new HashSet<MethodDesc>(); 189public void EmbedSynthesizedPgoDataForMethods(ref DependencyList dependencies, IEnumerable<MethodDesc> mds) 192foreach (MethodDesc md in mds) 217foreach (MethodDesc method in _profileDataManager.GetInputProfileDataMethodsForModule(inputModule)) 251HashSet<MethodDesc> methodsToInsert = new(); 254foreach (MethodDesc method in _profileDataManager.GetInputProfileDataMethodsForModule(inputModule)) 266MethodDesc[] methods = methodsToInsert.ToArray(); 269foreach (MethodDesc method in methods)
Compiler\DependencyAnalysis\ReadyToRun\MethodColdCodeNode.cs (2)
14private MethodDesc _owningMethod; 16public MethodColdCodeNode(MethodDesc owningMethod)
Compiler\DependencyAnalysis\ReadyToRun\MethodFixupSignature.cs (3)
43public MethodDesc Method => _method.Method; 57MethodDesc canonMethod = Method.GetCanonMethodTarget(CanonicalFormKind.Specific); 111private static bool HasNonCanonicalInstantiationArguments(MethodDesc canonMethod)
Compiler\DependencyAnalysis\ReadyToRun\MethodWithGCInfo.cs (12)
21private readonly MethodDesc _method; 32private MethodDesc[] _inlinedMethods; 36public MethodWithGCInfo(MethodDesc methodDesc) 62foreach (var inlinee in _inlinedMethods) 64MethodDesc inlineeDefinition = inlinee.GetTypicalMethodDefinition(); 94public MethodDesc Method => _method; 321public MethodDesc[] InlinedMethods => _inlinedMethods; 428MethodDesc methodLayoutAnchor = GetMethodLayoutAnchor(_method, out int methodLayoutRank); 429MethodDesc otherLayoutAnchor = GetMethodLayoutAnchor(otherNode._method, out int otherLayoutRank); 445static MethodDesc GetMethodLayoutAnchor(MethodDesc method, out int layoutRank) 459public void InitializeInliningInfo(MethodDesc[] inlinedMethods, NodeFactory factory)
Compiler\DependencyAnalysis\ReadyToRun\ModuleTokenResolver.cs (2)
100public ModuleToken GetModuleTokenForMethod(MethodDesc method, bool allowDynamicallyCreatedReference, bool throwIfNotFound) 164public void AddModuleTokenForMethod(MethodDesc method, ModuleToken token)
Compiler\DependencyAnalysis\ReadyToRun\PrecodeMethodImport.cs (1)
36public MethodDesc Method => _method.Method;
Compiler\DependencyAnalysis\ReadyToRun\SignatureContext.cs (2)
69public IEcmaModule GetTargetModule(MethodDesc method) 79public ModuleToken GetModuleTokenForMethod(MethodDesc method)
Compiler\DependencyAnalysis\ReadyToRun\TypeFixupSignature.cs (1)
237foreach (MethodDesc method in type.ConvertToCanonForm(CanonicalFormKind.Specific).GetAllMethods())
Compiler\DependencyAnalysis\ReadyToRun\TypeValidationChecker.cs (14)
373HashSet<MethodDesc> overriddenDeclMethods = new HashSet<MethodDesc>(); 378var methodBody = type.Module.GetMethod(methodImpl.MethodBody); 379var methodDecl = type.Module.GetMethod(methodImpl.MethodDeclaration); 438foreach (var interfaceMethod in interfaceImplemented.GetVirtualMethods()) 440MethodDesc resolvedMethod; 467if (virtualMethodAlgorithm.ResolveInterfaceMethodToDefaultImplementationOnType(interfaceMethod, type, out var impl) != DefaultInterfaceMethodResolution.DefaultImplementation || impl.IsAbstract) 489foreach (var virtualMethod in type.EnumAllVirtualSlots()) 491var implementationMethod = virtualMethodAlgorithm.FindVirtualFunctionTargetMethodOnObjectType(virtualMethod, type); 506var implementationOnBaseType = baseTypeVirtualMethodAlgorithm.FindVirtualFunctionTargetMethodOnObjectType(virtualMethod, type.BaseType); 545static bool CompareGenericParameterConstraint(MethodDesc declMethod, GenericParameterDesc parameterOfDecl, MethodDesc implMethod, GenericParameterDesc parameterOfImpl) 579static bool CompareMethodConstraints(MethodDesc methodDecl, MethodDesc methodImpl)
Compiler\DependencyAnalysis\ReadyToRun\WasmImportThunkPortableEntrypoint.cs (1)
110MethodDesc method = ((MethodFixupSignature)(_import.Signature)).Method;
Compiler\DependencyAnalysis\ReadyToRun\WasmUnboxingStubNode.cs (2)
229private readonly MethodDesc _targetMethod; 233public WasmUnboxingStubTargetNode(MethodDesc targetMethod, WasmSignature signature, WasmUnboxingStubNode stub)
Compiler\DependencyAnalysis\ReadyToRunCodegenNodeFactory.cs (34)
74public HashSet<MethodDesc> CompiledMethodDefs; 131private NodeCache<MethodDesc, MethodWithGCInfo> _localMethodCache; 133public MethodWithGCInfo CompiledMethodNode(MethodDesc method) 140private bool CanPrecompileUnboxingStub(MethodDesc targetMethod) 162public bool NeedsUnboxingStub(MethodDesc method) 171public DependencyNodeCore<NodeFactory> UnboxingStub(MethodDesc targetMethod) 181MethodDesc thunk = targetMethod.IsSharedByGenericInstantiations && !targetMethod.HasInstantiation 188private WasmUnboxingStubTargetNode CreateWasmUnboxingStubTargetNode(MethodDesc targetMethod) 191MethodDesc thunk = targetMethod.IsSharedByGenericInstantiations && !targetMethod.HasInstantiation 254private NodeCache<MethodDesc, GVMDependenciesNode> _gvmDependenciesNode; 256public GVMDependenciesNode GVMDependencies(MethodDesc method) 259MethodDesc canonMethod = method.GetCanonMethodTarget(CanonicalFormKind.Specific); 260MethodDesc canonSlotMethodDefinition = MetadataVirtualMethodAlgorithm.FindSlotDefiningMethodForVirtualMethod(canonMethod.GetMethodDefinition()); 264private NodeCache<MethodDesc, VirtualMethodUseNode> _virtualMethodUseNodes; 266public VirtualMethodUseNode VirtualMethodUse(MethodDesc method) 270MethodDesc canonMethod = method.GetCanonMethodTarget(CanonicalFormKind.Specific); 402_gvmDependenciesNode = new NodeCache<MethodDesc, GVMDependenciesNode>(method => 412_virtualMethodUseNodes = new NodeCache<MethodDesc, VirtualMethodUseNode>(method => 479_wasmUnboxingStubTargets = new NodeCache<MethodDesc, WasmUnboxingStubTargetNode>(CreateWasmUnboxingStubTargetNode); 483_localMethodCache = new NodeCache<MethodDesc, MethodWithGCInfo>(key => 537_copiedMethodIL = new NodeCache<MethodDesc, CopiedMethodILNode>(method => 665MethodDesc compilableMethod = method.Method.GetCanonMethodTarget(CanonicalFormKind.Specific); 711MethodDesc method = methodNode.Method; 740public HashSet<MethodDesc> BuildCompiledMethodDefsSet() 744var set = new HashSet<MethodDesc>(); 873public readonly MethodDesc Method; 875public ILBodyFixupSignatureFixupKey(ReadyToRunFixupKind fixupKind, MethodDesc method) 890public ILBodyFixupSignature ILBodyFixupSignature(ReadyToRunFixupKind fixupKind, MethodDesc method) 1222foreach (MethodDesc method in ProfileDataManager.GetInputProfileDataMethodsForModule(inputModule)) 1410private NodeCache<MethodDesc, CopiedMethodILNode> _copiedMethodIL; 1452public bool CanBeInGenericCycle(MethodDesc method) 1457MethodDesc methodDefinition = method.GetTypicalMethodDefinition(); 1500private NodeCache<MethodDesc, WasmUnboxingStubTargetNode> _wasmUnboxingStubTargets; 1515public WasmTypeNode WasmTypeNode(MethodDesc method)
Compiler\DependencyAnalysis\ReadyToRunSymbolNodeFactory.cs (4)
488public Import DispatchCell(MethodWithToken method, MethodDesc callingMethod) 525public Import CheckILBodyFixupSignature(MethodDesc method) 542public readonly MethodDesc CallingMethod; 544public MethodAndCallSite(MethodWithToken method, MethodDesc callingMethod)
Compiler\ExternalReferenceTokenManager.cs (3)
83case MethodDesc methodDesc: 99MethodDesc methodDesc => _tokenResolver.GetModuleTokenForMethod(methodDesc, allowDynamicallyCreatedReference: true, throwIfNotFound: false), 113private void EnsureMethodDefTokensAreAvailableInVersionBubble(MethodDesc methodDesc)
Compiler\FileLayoutOptimizer.cs (11)
256public readonly MethodDesc Caller; 257public readonly MethodDesc Callee; 260public CallerCalleeCount(MethodDesc caller, MethodDesc callee, int count) 283Dictionary<MethodDesc, MethodWithGCInfo> methodMap = new Dictionary<MethodDesc, MethodWithGCInfo>(); 290foreach (KeyValuePair<MethodDesc, Dictionary<MethodDesc, int>> methodProfile in _profileData.CallChainProfile.ResolvedProfileData.Where(kvp => methodMap.ContainsKey(kvp.Key))) 292foreach (KeyValuePair<MethodDesc, int> callee in methodProfile.Value.Where(kvp => methodMap.ContainsKey(kvp.Key))) 329var mdToIndex = new Dictionary<MethodDesc, int>(); 345foreach ((MethodDesc other, int count) in data.CallWeights)
Compiler\IRootingServiceProvider.cs (1)
13void AddCompilationRoot(MethodDesc method, bool rootMinimalDependencies, string reason);
Compiler\NoMethodsCompilationModuleGroup.cs (1)
23protected override bool ContainsMethodBodyCore(MethodDesc method, bool unboxingStub)
Compiler\ProfileData.cs (10)
37public MethodProfileData(MethodDesc method, MethodProfilingDataFlags flags, double exclusiveWeight, Dictionary<MethodDesc, int> callWeights, uint scenarioMask, PgoSchemaElem[] schemaData) 49public readonly MethodDesc Method; 53public readonly Dictionary<MethodDesc, int> CallWeights; 61public abstract MethodProfileData GetMethodProfileData(MethodDesc m); 63public abstract byte[] GetMethodBlockCount(MethodDesc m); 65public static void MergeProfileData(Dictionary<MethodDesc, MethodProfileData> mergedProfileData, ProfileData profileData) 81mergedCallWeights = new Dictionary<MethodDesc, int>(data.CallWeights); 135public override MethodProfileData GetMethodProfileData(MethodDesc m) 145public override byte[] GetMethodBlockCount(MethodDesc m)
Compiler\ProfileDataManager.cs (31)
45Func<MethodDesc, bool> canBeIncludedInCurrentCompilation, 102public IEnumerable<MethodDesc> GetInputProfileDataMethodsForModule(ModuleDesc moduleDesc) 107public bool IsMethodInInputProfileData(MethodDesc method) 112public MethodProfileData this[MethodDesc method] 133public MethodProfileData GetAllowSynthesis(Compilation comp, MethodDesc method, out bool isSynthesized) 176private PgoSchemaElem[] SynthesizeSchema(Compilation comp, MethodDesc method) 198MethodDesc targetMeth = obj as MethodDesc; 264IList<MethodDesc> compatible = _gdvEntityFinder.GetCompatibleWithDelegateInvoke(delegateSignature); 284Debug.Assert(value is MethodDesc or TypeDesc); 285if (value is MethodDesc md) 322private readonly Dictionary<MethodDesc, MethodProfileData> _profileData = new(); 323private readonly Dictionary<ModuleDesc, HashSet<MethodDesc>> _placedProfileMethods = new(); 324private readonly HashSet<MethodDesc> _placedProfileMethodsAll = new(); 332public MethodProfileData this[MethodDesc method] 344foreach ((MethodDesc method, MethodProfileData profileData) in _profileData) 350public bool Contains(MethodDesc md) => _profileData.ContainsKey(md); 352private void AssociateMethodProfileDataWithModule(MethodDesc method, MethodProfileData profileData) 383if (!_placedProfileMethods.TryGetValue(home, out HashSet<MethodDesc> set)) 384_placedProfileMethods.Add(home, set = new HashSet<MethodDesc>()); 391public IEnumerable<MethodDesc> GetPlacedMethodsForModuleDesc(ModuleDesc moduleDesc) 396return Array.Empty<MethodDesc>(); 412private readonly Dictionary<MethodSignature, List<MethodDesc>> _delegateTargets; 417Dictionary<MethodSignature, HashSet<MethodDesc>> delegateTargets = new(); 426foreach (MethodDesc method in type.GetMethods()) 434if (!delegateTargets.TryGetValue(method.Signature, out HashSet<MethodDesc> set)) 435delegateTargets.Add(method.Signature, set = new HashSet<MethodDesc>()); 480List<MethodDesc> list = new(kvp.Value); 493public IList<MethodDesc> GetCompatibleWithDelegateInvoke(MethodSignature delegateInvokeSignature) 495return _delegateTargets.TryGetValue(delegateInvokeSignature, out List<MethodDesc> methods) ? methods : Array.Empty<MethodDesc>();
Compiler\R2RTypeExtensions.cs (1)
51public static bool IsNonVersionable(this MethodDesc method)
Compiler\ReadyToRunCodegenCompilation.cs (36)
80public bool CanInline(MethodDesc caller, MethodDesc callee) 106MethodDesc calleeMethodImpl = callee.OwningType.FindVirtualFunctionTargetMethodOnObjectType(callee); 118public virtual MethodIL GetMethodIL(MethodDesc method) 128public bool IsEffectivelySealed(MethodDesc method) 133public MethodDesc ResolveVirtualMethod(MethodDesc declMethod, TypeDesc implType, out CORINFO_DEVIRTUALIZATION_DETAIL devirtualizationDetail) 183public sealed class ILCache : LockFreeReaderHashtable<MethodDesc, ILCache.MethodILData> 196protected override int GetKeyHashCode(MethodDesc key) 204protected override bool CompareKeyToValue(MethodDesc key, MethodILData value) 212protected override MethodILData CreateValueFromKey(MethodDesc key) 227public MethodDesc Method; 259public void AddCompilationRoot(MethodDesc method, bool rootMinimalDependencies, string reason) 261MethodDesc canonMethod = method.GetCanonMethodTarget(CanonicalFormKind.Specific); 308private readonly Func<MethodDesc, string> _printReproInstructions; 312private readonly HashSet<MethodDesc> _methodsWhichNeedMutableILBodies = new HashSet<MethodDesc>(); 347Func<MethodDesc, string> printReproInstructions, 460HashSet<MethodDesc> compiledMethodDefs = null; 487private void RewriteComponentFile(string inputFile, string outputFile, string ownerExecutableName, HashSet<MethodDesc> compiledMethodDefs) 703public void PrepareForCompilationRetry(MethodWithGCInfo methodToBeRecompiled, IEnumerable<MethodDesc> methodsThatNeedILBodies) 710foreach (var method in methodsThatNeedILBodies) 750var method = methodCodeNodeNeedingCode.Method; 751var typicalDef = method.GetTypicalMethodDefinition(); 806void EnsureGeneratedILTokensAreAvailable(MethodDesc method) 847MethodDesc[] mutableMethodBodyNeedList = new MethodDesc[_methodsWhichNeedMutableILBodies.Count]; 851Comparison<MethodDesc> comparison = (MethodDesc a, MethodDesc b) => comparer.Compare(a, b); 855foreach (var method in mutableMethodBodyNeedList) 924MethodDesc method = methodCodeNodeNeedingCode.Method; 976private void EnsureInstantiationReferencesArePresentForExternalMethod(MethodDesc method) 987private void AddNecessaryAsyncReferences(MethodDesc method) 1012MethodDesc[] requiredMethods = 1078public string GetReproInstructions(MethodDesc method)
Compiler\ReadyToRunCodegenCompilationBuilder.cs (2)
35Func<MethodDesc, string> _printReproInstructions; 163public ReadyToRunCodegenCompilationBuilder UsePrintReproInstructions(Func<MethodDesc, string> printReproInstructions)
Compiler\ReadyToRunCompilationModuleGroupBase.cs (24)
54private readonly ConcurrentDictionary<MethodDesc, bool> _versionsWithMethodCache = new ConcurrentDictionary<MethodDesc, bool>(); 55private readonly Func<MethodDesc, bool> _versionsWithMethodUncached; 56private readonly ConcurrentDictionary<MethodDesc, bool> _crossModuleInlineableCache = new ConcurrentDictionary<MethodDesc, bool>(); 57private readonly Func<MethodDesc, bool> _crossModuleInlineableCacheUncached; 60private readonly ConcurrentDictionary<MethodDesc, bool> _crossModuleCompilableCache = new ConcurrentDictionary<MethodDesc, bool>(); 61private readonly Func<MethodDesc, bool> _crossModuleCompilableCacheUncached; 105public sealed override bool ContainsMethodBody(MethodDesc method, bool unboxingStub) 123protected abstract bool ContainsMethodBodyCore(MethodDesc method, bool unboxingStub); 141protected bool CompileVersionBubbleGenericsIntoCurrentModule(MethodDesc method) 406public sealed override bool VersionsWithMethodBody(MethodDesc method) 411private bool VersionsWithMethodUncached(MethodDesc method) 427public sealed override bool CanInline(MethodDesc callerMethod, MethodDesc calleeMethod) 444public bool IsNonVersionableWithILTokensThatDoNotNeedTranslation(MethodDesc method) 452public override bool CrossModuleCompileable(MethodDesc method) 460private bool CrossModuleCompileableUncached(MethodDesc method) 527public override bool CrossModuleInlineable(MethodDesc method) 536private bool CrossModuleInlineableInternal(MethodDesc method) 541private bool CrossModuleInlineableUncached(MethodDesc method) 728public sealed override bool GeneratesPInvoke(MethodDesc method) 912entityDefinitionInstantiation = ((MethodDesc)entityWithInstantiation).GetTypicalMethodDefinition().Instantiation;
Compiler\ReadyToRunCompilerContext.cs (1)
160protected override IEnumerable<MethodDesc> GetAllMethods(TypeDesc type)
Compiler\ReadyToRunHardwareIntrinsicRootProvider.cs (1)
26foreach (MethodDesc method in hardwareIntrinsicType.GetMethods())
Compiler\ReadyToRunLibraryRootProvider.cs (5)
45foreach (MethodDesc method in type.GetAllMethods()) 54MethodDesc methodToRoot = method; 85public static void CheckCanGenerateMethod(MethodDesc method) 157public static MethodDesc InstantiateIfPossible(MethodDesc method)
Compiler\ReadyToRunProfilingRootProvider.cs (2)
21private IEnumerable<MethodDesc> _profileData; 33foreach (var method in _profileData)
Compiler\ReadyToRunSingleAssemblyCompilationModuleGroup.cs (1)
25protected sealed override bool ContainsMethodBodyCore(MethodDesc method, bool unboxingStub)
Compiler\ReadyToRunTableManager.cs (1)
81MethodDesc method = methodNode.Method;
Compiler\ReadyToRunVisibilityRootProvider.cs (2)
51foreach (MethodDesc method in type.GetAllMethods()) 96MethodDesc methodToRoot = method;
Compiler\ReadyToRunXmlRootProvider.cs (4)
121foreach (MethodDesc method in typeWithMethods.GetAllMethods()) 127private void RootMethod(MethodDesc method) 136MethodDesc methodToRoot = method; 192protected override void ProcessMethod(TypeDesc type, MethodDesc method, XPathNavigator nav, object customData)
Compiler\RuntimeDeterminedTypeHelper.cs (3)
94public static bool Equals(MethodDesc method1, MethodDesc method2) 185public static int GetHashCode(MethodDesc method)
Compiler\SingleMethodCompilationModuleGroup.cs (3)
17private MethodDesc _method; 21MethodDesc method) : 27protected override bool ContainsMethodBodyCore(MethodDesc method, bool unboxingStub)
IBC\IBCProfileData.cs (4)
60private readonly Dictionary<MethodDesc, MethodProfileData> _methodData = new Dictionary<MethodDesc, MethodProfileData>(); 68public override MethodProfileData GetMethodProfileData(MethodDesc m) 79public override byte[] GetMethodBlockCount(MethodDesc m)
IBC\IBCProfileParser.cs (10)
70HashSet<MethodDesc> methodsFoundInData = new HashSet<MethodDesc>(); 102MethodDesc associatedMethod = null; 110if (metadataObject is MethodDesc) 112associatedMethod = (MethodDesc)metadataObject; 411foreach (MethodDesc method in ecmaType.GetMethods()) 702private MethodDesc GetSigMethodInstantiationFromIBCMethodSpec(IBCModule ibcModule, BlobReader sig) 741MethodDesc ecmaMethod = ecmaModuleOfMethod.GetMethod(MetadataTokens.EntityHandle((int)methodToken)); 742MethodDesc methodOnType = methodType.FindMethodOnTypeWithMatchingTypicalMethod(ecmaMethod); 744MethodDesc methodFound = methodOnType;
IBC\MIbcProfileParser.cs (7)
62return new TypeSystemEntityOrUnknown((MethodDesc)null); 68MethodDesc foundMethod = _ilBody.GetObject((int)token, NotFoundBehavior.ReturnNull) as MethodDesc; 371Dictionary<MethodDesc, int> weights = null; 558methodProfileData.Add(new MethodProfileData((MethodDesc)methodInProgress, MethodProfilingDataFlags.ReadMethodCode, exclusiveWeight, weights, 0xFFFFFFFF, pgoSchemaData)); 585weights = new Dictionary<MethodDesc, int>(); 595weights.Add((MethodDesc)metadataObject, intValue);
IL\ReadyToRunILProvider.cs (14)
51private MethodIL TryGetIntrinsicMethodILForActivator(MethodDesc method) 61MethodDesc createDefaultInstance = method.OwningType.GetKnownMethod("CreateDefaultInstance"u8, method.GetTypicalMethodDefinition().Signature); 74private MethodIL TryGetIntrinsicMethodIL(MethodDesc method) 103private MethodIL TryGetPerInstantiationIntrinsicMethodIL(MethodDesc method) 141private Dictionary<MethodDesc, MethodIL> _manifestModuleWrappedMethods = new Dictionary<MethodDesc, MethodIL>(); 145public void CreateCrossModuleInlineableTokensForILBody(MethodDesc method) 168public bool NeedsCrossModuleInlineableTokens(MethodDesc method) 180private static bool NeedsTaskReturningThunk(MethodDesc method) 198private MethodIL GetMethodILForAsyncMethod(MethodDesc method) 210public override MethodIL GetMethodIL(MethodDesc method) 286MethodDesc _owningMethod; 367public override MethodDesc OwningMethod => _owningMethod; 393public override MethodDesc OwningMethod => _variant;
IL\Stubs\InstanceCalliHelperIntrinsics.cs (2)
13public static MethodIL EmitIL(MethodDesc method) 44public override MethodDesc OwningMethod => _wrappedMethodIL.OwningMethod;
IL\Stubs\PInvokeILEmitter.cs (5)
24private readonly MethodDesc _targetMethod; 27private static readonly ConditionalWeakTable<TypeSystemContext, ConcurrentDictionary<MethodDesc, PInvokeTargetNativeMethod>> s_contexts = new(); 29private PInvokeILEmitter(MethodDesc targetMethod) 59static PInvokeTargetNativeMethod AllocateTargetNativeMethod(MethodDesc targetMethod, MethodSignature nativeSigArg) 122public static MethodIL EmitIL(MethodDesc method)
JitInterface\CorInfoImpl.ReadyToRun.cs (75)
143public readonly MethodDesc Method; 150public MethodWithToken(MethodDesc method, ModuleToken token, TypeDesc constrainedType, bool unboxing, TypeSystemEntity genericContextObject, TypeDesc devirtualizedMethodOwner = null, bool forceOwningTypeFromMethodDesc = false) 153Debug.Assert(genericContextObject is null or MethodDesc or TypeDesc); 218if (genericContextObject is MethodDesc methodContext) 438public TypeDesc ContextType { get { return (Context is MethodDesc contextAsMethod ? contextAsMethod.OwningType : (TypeDesc)Context); } } 440public MethodDesc ContextMethod { get { return (MethodDesc)Context; } } 455if (Context is MethodDesc contextAsMethod) 483private HashSet<MethodDesc> _inlinedMethods; 486private List<MethodDesc> _ilBodiesNeeded; 488private HashSet<MethodDesc> _synthesizedPgoDependencies; 517MethodDesc asyncResumptionStub = _compilation.TypeSystemContext.GetAsyncResumptionStub(MethodBeingCompiled, MethodBeingCompiled.OwningType); 549public static bool ShouldSkipCompilation(InstructionSetSupport instructionSetSupport, MethodDesc methodNeedingCode, ReadyToRunCodegenCompilation compilation = null) 592public static bool ShouldCodeNotBeCompiledIntoFinalImage(InstructionSetSupport instructionSetSupport, MethodDesc method) 707private static ConditionalWeakTable<MethodDesc, DeterminismData> _determinismTable = new ConditionalWeakTable<MethodDesc, DeterminismData>(); 766public static bool IsMethodCompilable(Compilation compilation, MethodDesc method) 827var typicalDef = MethodBeingCompiled.GetTypicalMethodDefinition(); 858_ilBodiesNeeded = _ilBodiesNeeded ?? new List<MethodDesc>(); 978MethodDesc targetMethodDesc = HandleToObject(pTargetMethod.hMethod); 1347var method = HandleToObject(ftn); 1368private MethodWithToken ComputeMethodWithToken(MethodDesc method, ref CORINFO_RESOLVED_TOKEN pResolvedToken, TypeDesc constrainedType, bool unboxing) 1383ModuleToken _HandleToModuleToken(ref CORINFO_RESOLVED_TOKEN pResolvedToken, MethodDesc methodDesc, out TypeSystemEntity context, ref TypeDesc constrainedType, out bool strippedInstantiation) 1443if (resultDef is MethodDesc resultMethod) 1450var primaryMethod = resultMethod.GetPrimaryMethodDesc(); 1757MethodDesc callerMethod = HandleToObject(callerHandle); 1920out MethodDesc methodToCall, 1921out MethodDesc targetMethod, 1923out MethodDesc originalMethod, 1925out MethodDesc callerMethod, 1953MethodDesc versioningCallerMethod = _compilation.TypeSystemContext.IsUnboxingThunk(callerMethod) 1997MethodDesc methodAfterConstraintResolution = originalMethod; 2012MethodDesc methodOnUnderlyingType = constrainedType.UnderlyingType.FindVirtualFunctionTargetMethodOnObjectType(originalMethod); 2020MethodDesc directMethod = constrainedType.TryResolveConstraintMethodApprox(exactType, originalMethod, out forceUseRuntimeLookup, ref dimResolution); 2112var rawMethod = (MethodDesc)methodIL.GetMethodILScopeDefinition().GetObject((int)pResolvedToken.token); 2204MethodDesc canonMethod = (isArrayConstructor ? null : targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific)); 2403MethodDesc method = HandleToObject(ftn); 2408private void PrepareForUseAsAFunctionPointer(MethodDesc method) 2453private void UpdateConstLookupWithRequiresRuntimeJitSymbolIfNeeded(ref CORINFO_CONST_LOOKUP constLookup, MethodDesc method) 2475MethodDesc methodToCall; 2476MethodDesc targetMethod; 2478MethodDesc originalMethod; 2480MethodDesc callerMethod; 2577MethodDesc nonUnboxingMethod = methodToCall; 2604MethodDesc compilableTarget = nonUnboxingMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 2662MethodDesc canonMethod = targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 2745MethodDesc templateMethod, 2746MethodDesc callerHandle, 2764MethodDesc contextMethod = callerHandle; 2831if (helperArg is MethodDesc methodDesc) 2834MethodDesc sharedMethod = methodIL.OwningMethod.GetSharedRuntimeFormMethodTarget(); 2858HandleToObject(pResolvedToken.hMethod) is MethodDesc declaringMethod && 2895MethodDesc templateMethod = null; 2899MethodDesc md = HandleToObject(pResolvedToken.hMethod); 2931MethodDesc declaringMethod = HandleToObject(pResolvedToken.hMethod); 3050MethodDesc md = HandleToObject(pResolvedToken.hMethod); 3084private MethodDesc getUnboxingThunk(MethodDesc method) 3092MethodDesc methodDesc = HandleToObject(handle); 3111private void PreventRecursiveFieldInlinesOutsideVersionBubble(FieldDesc field, MethodDesc callerMethod) 3121private void EncodeFieldBaseOffset(FieldDesc field, ref CORINFO_RESOLVED_TOKEN pResolvedToken, CORINFO_FIELD_INFO* pResult, MethodDesc callerMethod) 3411MethodDesc methodDesc = HandleToObject(method); 3439var method = HandleToObject(handle); 3568private readonly Stack<HashSet<MethodDesc>> _stashedInlinedMethods = new Stack<HashSet<MethodDesc>>(); 3583MethodDesc inlinee = HandleToObject(inlineeHnd); 3598HashSet<MethodDesc> previouslyStashedInlinees = _stashedInlinedMethods.Pop(); 3601previouslyStashedInlinees = previouslyStashedInlinees ?? new HashSet<MethodDesc>(); 3602foreach (var inlineeInHashSet in _inlinedMethods) 3608_inlinedMethods = _inlinedMethods ?? new HashSet<MethodDesc>(); 3611var typicalMethod = inlinee.GetTypicalMethodDefinition(); 3618_ilBodiesNeeded = _ilBodiesNeeded ?? new List<MethodDesc>(); 3651_ilBodiesNeeded = _ilBodiesNeeded ?? new List<MethodDesc>(); 3772MethodDesc method = HandleToObject(ftn);
ObjectWriter\ProfileFileBuilder.cs (9)
33public readonly MethodDesc Caller; 36public readonly MethodDesc Callee; 42public CallInfo(MethodDesc caller, OutputNode callerNode, int callerRVA, MethodDesc callee, OutputNode calleeNode, int calleeRVA, int callCount, CrossPageCall callType) 60private Dictionary<MethodDesc, ISymbolDefinitionNode> _symbolMethodMap; 135_symbolMethodMap = new Dictionary<MethodDesc, ISymbolDefinitionNode>(); 153foreach (KeyValuePair<MethodDesc, Dictionary<MethodDesc, int>> kvpCallerCalleeCount in _callChainProfile.ResolvedProfileData) 163foreach (KeyValuePair<MethodDesc, int> kvpCalleeCount in kvpCallerCalleeCount.Value)
parent\parent\Common\Compiler\AsyncMethodVariant.cs (21)
44public override MethodDesc GetCanonMethodTarget(CanonicalFormKind kind) 49public override MethodDesc GetMethodDefinition() 54public override MethodDesc GetTypicalMethodDefinition() 59public override MethodDesc InstantiateSignature(Instantiation typeInstantiation, Instantiation methodInstantiation) 68protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer) 110public override MethodDesc GetCanonMethodTarget(CanonicalFormKind kind) 115public override MethodDesc GetMethodDefinition() 120public override MethodDesc GetTypicalMethodDefinition() 125public override MethodDesc InstantiateSignature(Instantiation typeInstantiation, Instantiation methodInstantiation) 134protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer) 143public static bool IsAsyncVariant(this MethodDesc method) 148public static bool IsReturnDroppingAsyncThunk(this MethodDesc method) 160public static bool IsAsyncThunk(this MethodDesc method) 169public static bool IsCompilerGeneratedILBodyForAsync(this MethodDesc method) 174public static bool RequiresSaveRestoreOfAsyncContexts(this MethodDesc method) 179public static MethodDesc GetAsyncVariant(this MethodDesc method) 185public static MethodDesc GetTargetOfAsyncVariant(this MethodDesc method) 191public static MethodDesc GetTargetOfReturnDroppingAsyncThunk(this MethodDesc method)
parent\parent\Common\Compiler\AsyncMethodVariant.Mangling.cs (2)
13MethodDesc IPrefixMangledMethod.BaseMethod => _wrappedMethod; 20MethodDesc IPrefixMangledMethod.BaseMethod => _asyncVariant.Target;
parent\parent\Common\Compiler\CachingVirtualMethodAlgorithm.cs (19)
15private readonly ConcurrentDictionary<TypeDesc, (MethodDesc Slot, MethodDesc Implementation)[]> _vtableCache 16= new ConcurrentDictionary<TypeDesc, (MethodDesc Slot, MethodDesc Implementation)[]>(); 18private readonly Func<TypeDesc, (MethodDesc Slot, MethodDesc Implementation)[]> _vtableCreator; 23private (MethodDesc Slot, MethodDesc Implementation)[] ComputeVtable(TypeDesc type) 28var result = new ArrayBuilder<(MethodDesc Slot, MethodDesc Implementation)>(3 /* At least Equals/GetHashCode/ToString */); 30foreach (MethodDesc slotDecl in base.ComputeAllVirtualSlots(type)) 38public override IEnumerable<MethodDesc> ComputeAllVirtualSlots(TypeDesc type) 46static IEnumerable<MethodDesc> GetCachedSlots(CachingVirtualMethodAlgorithm thisObj, TypeDesc type) 48foreach ((MethodDesc slot, _) in thisObj._vtableCache.GetOrAdd(type.GetTypeDefinition(), thisObj._vtableCreator)) 55public override MethodDesc FindVirtualFunctionTargetMethodOnObjectType(MethodDesc targetMethod, TypeDesc objectType) 58MethodDesc targetMethodDefinition = targetMethod.GetMethodDefinition(); 60MethodDesc slotDefiningMethod = targetMethodDefinition; 71MethodDesc result = kvp.Implementation;
parent\parent\Common\Compiler\CodeGenerationFailedException.cs (3)
14public MethodDesc Method { get; } 16public CodeGenerationFailedException(MethodDesc method) 21public CodeGenerationFailedException(MethodDesc method, Exception inner)
parent\parent\Common\Compiler\CompilationModuleGroup.cs (3)
17public abstract bool ContainsMethodBody(MethodDesc method, bool unboxingStub); 23public virtual bool CanInline(MethodDesc callerMethod, MethodDesc calleeMethod) => true;
parent\parent\Common\Compiler\CompilerTypeSystemContext.Async.cs (47)
16public static IEnumerable<MethodDesc> GetAllMethodsAndAsyncVariants(this TypeDesc type) 31private MethodDesc DecomposeAsyncVariant(MethodDesc method, out bool isAsyncVariant) 37private MethodDesc WrapAsAsyncVariant(MethodDesc originalMethod, MethodDesc resolvedMethod) 42MethodDesc asyncVariant = _context.GetAsyncVariantMethod(resolvedMethod); 55public override MethodDesc FindVirtualFunctionTargetMethodOnObjectType(MethodDesc targetMethod, TypeDesc objectType) 58MethodDesc result = base.FindVirtualFunctionTargetMethodOnObjectType(targetMethod, objectType); 65public override DefaultInterfaceMethodResolution ResolveInterfaceMethodToDefaultImplementationOnType(MethodDesc interfaceMethod, TypeDesc currentType, out MethodDesc impl) 75public override MethodDesc ResolveInterfaceMethodToStaticVirtualMethodOnType(MethodDesc interfaceMethod, TypeDesc currentType) 78MethodDesc result = base.ResolveInterfaceMethodToStaticVirtualMethodOnType(interfaceMethod, currentType); 84public override MethodDesc ResolveInterfaceMethodToVirtualMethodOnType(MethodDesc interfaceMethod, TypeDesc currentType) 87MethodDesc result = base.ResolveInterfaceMethodToVirtualMethodOnType(interfaceMethod, currentType); 93public override DefaultInterfaceMethodResolution ResolveVariantInterfaceMethodToDefaultImplementationOnType(MethodDesc interfaceMethod, TypeDesc currentType, out MethodDesc impl) 102public override MethodDesc ResolveVariantInterfaceMethodToStaticVirtualMethodOnType(MethodDesc interfaceMethod, TypeDesc currentType) 105MethodDesc result = base.ResolveVariantInterfaceMethodToStaticVirtualMethodOnType(interfaceMethod, currentType); 111public override MethodDesc ResolveVariantInterfaceMethodToVirtualMethodOnType(MethodDesc interfaceMethod, TypeDesc currentType) 114MethodDesc result = base.ResolveVariantInterfaceMethodToVirtualMethodOnType(interfaceMethod, currentType); 121public override IEnumerable<MethodDesc> ComputeAllVirtualSlots(TypeDesc type) 127internal static IEnumerable<MethodDesc> WithAsyncVariants(CompilerTypeSystemContext context, IEnumerable<MethodDesc> methods) 129foreach (MethodDesc method in methods) 172public MethodDesc GetTargetOfAsyncVariantMethod(MethodDesc asyncVariantMethod) 175MethodDesc result = asyncMethodVariantDefinition.Target; 191public MethodDesc GetAsyncVariantMethod(MethodDesc taskReturningMethod) 194MethodDesc taskReturningMethodDefinition = taskReturningMethod.GetTypicalMethodDefinition(); 195MethodDesc result = _asyncVariantHashtable.GetOrCreateValue((EcmaMethod)taskReturningMethodDefinition); 210public MethodDesc GetTargetOfReturnDroppingThunk(MethodDesc returnDroppingThunk) 214MethodDesc result = returnDroppingThunkDefinition.AsyncVariantTarget; 241public MethodDesc GetReturnDroppingAsyncVariantMethod(MethodDesc asyncVariantMethod) 246MethodDesc typicalMethodDefinition = asyncVariantMethod.GetTypicalMethodDefinition(); 247MethodDesc result = _returnDroppingHashtable.GetOrCreateValue((AsyncMethodVariant)typicalMethodDefinition); 273public AsyncResumptionStub GetAsyncResumptionStub(MethodDesc targetMethod, TypeDesc owningType) 280public readonly MethodDesc TargetMethod; 283public AsyncResumptionStubKey(MethodDesc targetMethod, TypeDesc owningType)
parent\parent\Common\Compiler\CompilerTypeSystemContext.BoxedTypes.cs (30)
54public MethodDesc GetSpecialUnboxingThunk(MethodDesc targetMethod, ModuleDesc ownerModuleOfThunk) 71var targetMethodDefinition = targetMethod.GetTypicalMethodDefinition(); 79MethodDesc thunk = GetMethodForInstantiatedType(thunkDefinition, boxedType); 85public MethodDesc GetUnboxingThunk(MethodDesc targetMethod, ModuleDesc ownerModuleOfThunk) 98var targetMethodDefinition = targetMethod.GetTypicalMethodDefinition(); 103MethodDesc thunk; 160public readonly MethodDesc TargetMethod; 163public UnboxingThunkHashtableKey(MethodDesc targetMethod, BoxedValueType owningType) 328public bool IsSpecialUnboxingThunk(MethodDesc method) 333public bool IsUnboxingThunk(MethodDesc method) 341public MethodDesc GetTargetOfSpecialUnboxingThunk(MethodDesc method) 347public MethodDesc GetTargetOfUnboxingThunk(MethodDesc method) 349MethodDesc typicalMethodTarget = method.GetTypicalMethodDefinition() switch 356MethodDesc methodOnInstantiatedType = typicalMethodTarget; 363MethodDesc instantiatedMethod = methodOnInstantiatedType; 377private MethodDesc _targetMethod; 380public GenericUnboxingThunk(BoxedValueType owningType, MethodDesc targetMethod) 395public MethodDesc TargetMethod => _targetMethod; 397MethodDesc IPrefixMangledMethod.BaseMethod => _targetMethod; 479protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer) 490private MethodDesc _targetMethod; 493public UnboxingThunk(BoxedValueType owningType, MethodDesc targetMethod) 508public MethodDesc TargetMethod => _targetMethod; 510MethodDesc IPrefixMangledMethod.BaseMethod => _targetMethod; 571MethodDesc methodToInstantiate = _targetMethod; 603protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
parent\parent\Common\Compiler\CompilerTypeSystemContext.Validation.cs (2)
206public void EnsureLoadableMethod(MethodDesc method) 212MethodDesc methodDef = method.GetMethodDefinition();
parent\parent\Common\Compiler\Dataflow\DynamicallyAccessedMembersBinder.cs (12)
38foreach (var c in typeDefinition.ApplyIncludeInherited(t => t.GetConstructorsOnType(filter: null, bindingFlags: BindingFlags.NonPublic), withInherited)) 45foreach (var c in typeDefinition.ApplyIncludeInherited(t => t.GetConstructorsOnType(filter: null, bindingFlags: BindingFlags.Public), withInherited)) 51foreach (var c in typeDefinition.GetConstructorsOnType(filter: m => m.IsPublic() && !m.HasMetadataParameters())) 58foreach (var m in typeDefinition.ApplyIncludeInherited(t => t.GetMethodsOnTypeHierarchy(filter: null, bindingFlags: BindingFlags.NonPublic | declaredOnlyFlags), withInherited)) 64foreach (var m in typeDefinition.GetMethodsOnTypeHierarchy(filter: null, bindingFlags: BindingFlags.Public | declaredOnlyFlags)) 140public static IEnumerable<MethodDesc> GetConstructorsOnType(this TypeDesc type, Func<MethodDesc, bool> filter, BindingFlags? bindingFlags = null) 148foreach (var method in type.GetMethods()) 172public static IEnumerable<MethodDesc> GetMethodsOnTypeHierarchy(this TypeDesc type, Func<MethodDesc, bool> filter, BindingFlags? bindingFlags = null) 185foreach (var method in type.GetMethods()) 493foreach (var m in type.GetMethods())
parent\parent\Common\Compiler\Dataflow\EcmaExtensions.cs (8)
20public static bool IsPublic(this MethodDesc method) 32public static bool IsPrivate(this MethodDesc method) 71public static ReferenceKind ParameterReferenceKind(this MethodDesc method, int index) 109MethodDesc method => method.OwningType, 119public static ParameterProxyEnumerable GetMetadataParameters(this MethodDesc method) 128public static int GetMetadataParametersCount(this MethodDesc method) => method.Signature.Length; 133public static bool HasMetadataParameters(this MethodDesc method) => method.GetMetadataParametersCount() != 0; 138public static int GetParametersCount(this MethodDesc method)
parent\parent\Common\Compiler\Dataflow\MethodProxy.cs (4)
16public MethodProxy(MethodDesc method) => Method = method; 18public static implicit operator MethodProxy(MethodDesc method) => new(method); 20public readonly MethodDesc Method; 55MethodDesc methodDef = Method.GetMethodDefinition();
parent\parent\Common\Compiler\Dataflow\TypeExtensions.cs (1)
51public static bool IsDeclaredOnType(this MethodDesc method, string fullTypeName)
parent\parent\Common\Compiler\DependencyAnalysis\GVMDependenciesNode.cs (9)
28private readonly MethodDesc _method; 30public GVMDependenciesNode(MethodDesc method) 139MethodDesc interfaceMethod = _method.GetMethodDefinition(); 144MethodDesc slotDecl = interfaceMethod.Signature.IsStatic ? 159MethodDesc implementingMethodInstantiation = slotDecl 163MethodDesc canonImpl = implementingMethodInstantiation.GetCanonMethodTarget(CanonicalFormKind.Specific); 230MethodDesc methodToResolve; 242MethodDesc instantiatedTargetMethod = potentialOverrideType.FindVirtualFunctionTargetMethodOnObjectType(methodToResolve) 275private static DependencyNodeCore<NodeFactory> GetVirtualMethodImplNode(NodeFactory factory, MethodDesc method)
parent\parent\Common\Compiler\DependencyAnalysis\IMethodNode.cs (1)
13MethodDesc Method { get; }
parent\parent\Common\Compiler\DependencyAnalysis\MethodReadOnlyDataNode.cs (2)
13private MethodDesc _owningMethod; 16public MethodReadOnlyDataNode(MethodDesc owningMethod)
parent\parent\Common\Compiler\DependencyAnalysis\MethodReadWriteDataNode.cs (2)
13private MethodDesc _owningMethod; 16public MethodReadWriteDataNode(MethodDesc owningMethod)
parent\parent\Common\Compiler\DependencyAnalysis\ShadowConcreteMethodNode.cs (1)
21public ShadowConcreteMethodNode(MethodDesc method, IMethodNode canonicalMethod)
parent\parent\Common\Compiler\DependencyAnalysis\ShadowMethodNode.cs (2)
32public MethodDesc Method { get; } 45public ShadowMethodNode(MethodDesc method, IMethodNode canonicalMethod)
parent\parent\Common\Compiler\DependencyAnalysis\VirtualMethodUseNode.cs (3)
24private readonly MethodDesc _decl; 26public MethodDesc Method => _decl; 28public VirtualMethodUseNode(MethodDesc decl)
parent\parent\Common\Compiler\DevirtualizationManager.cs (11)
42public virtual bool IsEffectivelySealed(MethodDesc method) 56public MethodDesc ResolveVirtualMethod(MethodDesc declMethod, TypeDesc implType, out CORINFO_DEVIRTUALIZATION_DETAIL devirtualizationDetail) 65protected virtual MethodDesc ResolveVirtualMethod(MethodDesc declMethod, DefType implType, out CORINFO_DEVIRTUALIZATION_DETAIL devirtualizationDetail) 69MethodDesc originalDeclMethod = declMethod; 70MethodDesc impl; 127MethodDesc defaultInterfaceDispatchDeclMethod = null; 144MethodDesc dimMethod; 211MethodDesc slotDefiningMethodImpl = MetadataVirtualMethodAlgorithm.FindSlotDefiningMethodForVirtualMethod(impl.GetMethodDefinition()); 212MethodDesc slotDefiningMethodDecl = MetadataVirtualMethodAlgorithm.FindSlotDefiningMethodForVirtualMethod(declMethod);
parent\parent\Common\Compiler\DisplayNameHelpers.cs (2)
18MethodDesc method => method.GetDisplayName(), 29public static string GetDisplayName(this MethodDesc method)
parent\parent\Common\Compiler\HardwareIntrinsicHelpers.cs (1)
17public static bool IsHardwareIntrinsic(MethodDesc method)
parent\parent\Common\Compiler\INativeFormatTypeReferenceProvider.cs (1)
12internal Vertex EncodeReferenceToMethod(NativeWriter writer, MethodDesc method);
parent\parent\Common\Compiler\MethodExtensions.cs (4)
146public static bool NotCallableWithoutOwningEEType(this MethodDesc method) 175public static bool IsCallEffectivelyDirect(this MethodDesc method) 203public static bool IsAsyncCall(this MethodDesc method) => method.IsAsyncVariant() || method.IsReturnDroppingAsyncThunk() || (method.IsAsync && !method.Signature.ReturnsTaskOrValueTask()); 210public static bool SupportsAsyncVersionCodegen(this MethodDesc method) => method.IsAsyncVariant() && method.IsAsyncThunk() && !method.IsReturnDroppingAsyncThunk();
parent\parent\Common\Compiler\NameMangler.cs (1)
32public abstract Utf8String GetMangledMethodName(MethodDesc method);
parent\parent\Common\Compiler\NativeAotNameMangler.cs (10)
467private Dictionary<MethodDesc, Utf8String> _mangledMethodNames = new Dictionary<MethodDesc, Utf8String>(); 468private Dictionary<MethodDesc, Utf8String> _unqualifiedMangledMethodNames = new Dictionary<MethodDesc, Utf8String>(); 470public override Utf8String GetMangledMethodName(MethodDesc method) 493private Utf8String GetUnqualifiedMangledMethodName(MethodDesc method) 546private Utf8String ComputeUnqualifiedMangledMethodName(MethodDesc method) 558foreach (var m in method.OwningType.GetMethods()) 574var methodDefinition = method.GetMethodDefinition(); 598var typicalMethodDefinition = method.GetTypicalMethodDefinition();
parent\parent\Common\Compiler\ObjectWriter\OutputInfoBuilder.cs (1)
236private static string FormatMethodName(MethodDesc method, TypeNameFormatter typeNameFormatter)
parent\parent\Common\Compiler\ProcessLinkerXmlBase.cs (7)
352MethodDesc? method = GetMethod(type, signature); 368foreach (MethodDesc method in type.GetAllMethods()) 385protected virtual MethodDesc? GetMethod(TypeDesc type, string signature) => null; 387protected virtual void ProcessMethod(TypeDesc type, MethodDesc method, XPathNavigator nav, object? customData) { } 530public static string GetMethodSignature(MethodDesc meth, bool includeGenericParameters) 578private readonly MethodDesc? _method; 580public CecilTypeNameFormatter(MethodDesc? method)
parent\parent\Common\Compiler\PseudoDescExtensions.cs (2)
13public static PropertyPseudoDesc GetPropertyForAccessor(this MethodDesc accessor) 33public static EventPseudoDesc GetEventForAccessor(this MethodDesc accessor)
parent\parent\Common\Compiler\SingleMethodRootProvider.cs (2)
13private MethodDesc _method; 15public SingleMethodRootProvider(MethodDesc method)
parent\parent\Common\Compiler\TypeExtensions.cs (22)
43public static bool RequiresInstArg(this MethodDesc method) 53public static bool RequiresInstMethodDescArg(this MethodDesc method) 62public static bool RequiresInstMethodTableArg(this MethodDesc method) 72public static bool AcquiresInstMethodTableFromThis(this MethodDesc method) 84public static bool IsArrayAddressMethod(this MethodDesc method) 94public static bool IsArrayMethod(this MethodDesc method) 133public static bool IsGenericDepthGreaterThan(this MethodDesc method, int depth) 407public static MethodDesc TryResolveConstraintMethodApprox(this TypeDesc constrainedType, TypeDesc interfaceType, MethodDesc interfaceMethod, out bool forceRuntimeLookup) 419public static MethodDesc TryResolveConstraintMethodApprox(this TypeDesc constrainedType, TypeDesc interfaceType, MethodDesc interfaceMethod, out bool forceRuntimeLookup, ref DefaultInterfaceMethodResolution staticResolution) 469MethodDesc staticMethodDef = interfaceMethod.GetMethodDefinition(); 470MethodDesc exactInterfaceMethod = staticMethodDef; 475MethodDesc result = constrainedType.ResolveVariantInterfaceMethodToStaticVirtualMethodOnType(exactInterfaceMethod); 507MethodDesc genInterfaceMethod = interfaceMethod.GetMethodDefinition(); 508MethodDesc method = null; 528MethodDesc potentialInterfaceMethod = genInterfaceMethod; 569MethodDesc exactInterfaceMethod = context.GetMethodForInstantiatedType( 592MethodDesc exactInterfaceMethod = genInterfaceMethod; 603MethodDesc targetMethod = interfaceType.FindMethodOnTypeWithMatchingTypicalMethod(genInterfaceMethod); 758foreach (MethodDesc method in type.GetVirtualMethods()) 788public static bool IsRawPInvoke(this MethodDesc method)
parent\parent\Common\Compiler\TypeMapMetadata.cs (5)
133MethodDesc ThrowingMethodStub { get; } 139MethodDesc ThrowingMethodStub { get; } 168protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer) 346MethodDesc IExternalTypeMap.ThrowingMethodStub => _externalTypeMapExceptionStub; 350MethodDesc IProxyTypeMap.ThrowingMethodStub => _associatedTypeMapExceptionStub;
parent\parent\Common\JitInterface\CorInfoImpl.cs (78)
78private Dictionary<MethodDesc, PgoInstrumentationResults> _pgoResults = new Dictionary<MethodDesc, PgoInstrumentationResults>(); 316MethodDesc method = (MethodDesc)handleToObject[likelyClassMethods->handle]; 528MethodDesc[] inlineeArray; 531inlineeArray = new MethodDesc[_inlinedMethods.Count]; 537inlineeArray = Array.Empty<MethodDesc>(); 650private MethodDesc MethodBeingCompiled 758private Dictionary<MethodDesc, IntPtr> _methodILScopeToHandle = new Dictionary<MethodDesc, IntPtr>(new JitObjectComparer()); 792private MethodDesc HandleToObject(CORINFO_METHOD_STRUCT_* method) => (MethodDesc)HandleToObject((void*)method); 793private CORINFO_METHOD_STRUCT_* ObjectToHandle(MethodDesc method) => (CORINFO_METHOD_STRUCT_*)ObjectToHandle((object)method); 806MethodDesc owningMethod = methodIL.OwningMethod; 812private bool Get_CORINFO_METHOD_INFO(MethodDesc method, MethodIL methodIL, CORINFO_METHOD_INFO* methodInfo) 881private void Get_CORINFO_SIG_INFO(MethodDesc method, CORINFO_SIG_INFO* sig, MethodILScope scope, bool suppressHiddenArgument = false) 1046private CORINFO_CONTEXT_STRUCT* contextFromMethod(MethodDesc method) 1061private MethodDesc methodFromContext(CORINFO_CONTEXT_STRUCT* contextStruct) 1107MethodDesc method = HandleToObject(ftn); 1113MethodDesc method = HandleToObject(ftn); 1141private uint getMethodAttribsInternal(MethodDesc method) 1262MethodDesc caller = HandleToObject(callerHnd); 1284MethodDesc callee = exactCalleeHnd == null ? null : HandleToObject(exactCalleeHnd); 1296MethodDesc method = HandleToObject(ftn); 1329MethodDesc method = HandleToObject(ftn); 1334if (ctx is MethodDesc methodFromCtx && context != contextFromMethodBeingCompiled()) 1341MethodDesc instantiatedMethod = _compilation.TypeSystemContext.GetMethodForInstantiatedType(method.GetTypicalMethodDefinition(), instantiatedCtxType); 1363MethodDesc meth1 = HandleToObject(methHnd1); 1364MethodDesc meth2 = HandleToObject(methHnd2); 1375MethodDesc callerMethod = HandleToObject(callerHnd); 1376MethodDesc calleeMethod = HandleToObject(calleeHnd); 1443var m = HandleToObject(method); 1464MethodDesc decl = HandleToObject(info->virtualMethod); 1479MethodDesc originalImpl = _compilation.ResolveVirtualMethod(decl, objType, out info->detail); 1502MethodDesc impl = originalImpl.GetCanonMethodTarget(CanonicalFormKind.Specific); 1506MethodDesc nonUnboxingImpl = impl; 1590MethodDesc instArgTarget = unboxingStub ? nonUnboxingImpl : impl; 1672static CORINFO_RESOLVED_TOKEN CreateResolvedTokenFromMethod(CorInfoImpl jitInterface, MethodDesc method 1712MethodDesc method = HandleToObject(ftn); 1768MethodDesc methodDesc = HandleToObject(method); 1780private static CorInfoCallConvExtension GetUnmanagedCallConv(MethodDesc methodDesc, out bool suppressGCTransition) 1870if (result is MethodDesc methodResult) 1888MethodDesc owningMethod = methodIL.OwningMethod; 1909var methodContext = (MethodDesc)typeOrMethodContext; 1952result = _compilation.TypeSystemContext.GetAsyncVariantMethod((MethodDesc)result); 1961if (result is MethodDesc method) 1965MethodDesc sharedMethod = methodIL.OwningMethod.GetSharedRuntimeFormMethodTarget(); 1967Debug.Assert(((MethodDesc)result).IsRuntimeDeterminedExactMethod); 1974MethodDesc sharedMethod = methodIL.OwningMethod.GetSharedRuntimeFormMethodTarget(); 1984MethodDesc sharedMethod = methodIL.OwningMethod.GetSharedRuntimeFormMethodTarget(); 2024if (result is MethodDesc method) 2118private static bool HasCallableAsyncVariant(MethodDesc method) 2159Get_CORINFO_SIG_INFO(((MethodDesc)methodIL.GetObject((int)methTOK)), sig: sig, methodIL); 2915MethodDesc md = method == null ? MethodBeingCompiled : HandleToObject(method); 3700MethodDesc caller = HandleToObject(callerHandle); 3703MethodDesc taskReturningMethod = caller.GetTargetOfAsyncVariant(); 3711MethodDesc runtimeDeterminedCaller = caller.GetSharedRuntimeFormMethodTarget(); 3714MethodDesc result; 3715MethodDesc runtimeDeterminedResult; 3736MethodDesc targetMethod = runtimeDeterminedResult.GetCanonMethodTarget(CanonicalFormKind.Specific); 3778MethodDesc caller = HandleToObject(callerHandle); 3779MethodDesc awaitAwaiterMethod = HandleToObject(pResolvedToken.hMethod); 3785var runtimeDeterminedAwaitAwaiterMethod = (MethodDesc)GetRuntimeDeterminedObjectForToken(ref pResolvedToken); 3796MethodDesc typicalMethod = asyncHelpers.GetKnownMethod( 3799MethodDesc result = typicalMethod.MakeInstantiatedMethod(awaiterType); 3800MethodDesc runtimeDeterminedResult = typicalMethod.MakeInstantiatedMethod(runtimeDeterminedAwaiterType); 3802MethodDesc targetMethod = runtimeDeterminedResult.GetCanonMethodTarget(CanonicalFormKind.Specific); 3862MethodDesc method = HandleToObject(hMethod); 3869MethodDesc methodDefinition = method.GetTypicalMethodDefinition(); 3899MethodDesc method = HandleToObject(ftn); 3903private static string getMethodNameFromMetadataImpl(MethodDesc method, out string className, out string namespaceName, string[] enclosingClassName) 3935MethodDesc method = HandleToObject(ftn); 4160private static CORINFO_RUNTIME_LOOKUP_KIND GetGenericRuntimeLookupKind(MethodDesc method) 4175MethodDesc method = HandleToObject(context); 5014MethodDesc methodDesc = HandleToObject(ftnHnd); 5024_synthesizedPgoDependencies = new HashSet<MethodDesc>();
parent\parent\Common\JitInterface\UnboxingMethodDesc.cs (14)
20public MethodDesc Target => _wrappedMethod; 22public UnboxingMethodDesc(MethodDesc wrappedMethod, UnboxingMethodDescFactory factory) 31public override MethodDesc GetCanonMethodTarget(CanonicalFormKind kind) 33MethodDesc realCanonTarget = _wrappedMethod.GetCanonMethodTarget(kind); 40public override MethodDesc GetMethodDefinition() 42MethodDesc realMethodDefinition = _wrappedMethod.GetMethodDefinition(); 49public override MethodDesc GetTypicalMethodDefinition() 51MethodDesc realTypicalMethodDefinition = _wrappedMethod.GetTypicalMethodDefinition(); 58public override MethodDesc InstantiateSignature(Instantiation typeInstantiation, Instantiation methodInstantiation) 60MethodDesc realInstantiateSignature = _wrappedMethod.InstantiateSignature(typeInstantiation, methodInstantiation); 75protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer) 91public static bool IsUnboxingThunk(this MethodDesc method) 96public static MethodDesc GetUnboxedMethod(this MethodDesc method)
parent\parent\Common\JitInterface\UnboxingMethodDescFactory.cs (2)
9internal sealed class UnboxingMethodDescFactory : Dictionary<MethodDesc, UnboxingMethodDesc> 11public UnboxingMethodDesc GetUnboxingMethod(MethodDesc method)
parent\parent\Common\JitInterface\WasmLowering.cs (2)
574public static WasmSignature GetSignature(MethodDesc method) 589public static LoweringFlags GetLoweringFlags(MethodDesc method)
parent\parent\Common\Pgo\TypeSystemEntityOrUnknown.cs (3)
21public TypeSystemEntityOrUnknown(MethodDesc method) 28public MethodDesc AsMethod => _data as MethodDesc;
parent\parent\Common\TypeSystem\IL\HelperExtensions.cs (8)
30public static MethodDesc GetHelperEntryPoint(this TypeSystemContext context, ReadOnlySpan<byte> typeName, ReadOnlySpan<byte> methodName) 33MethodDesc helperMethod = helperType.GetKnownMethod(methodName, null); 37public static MethodDesc GetCoreLibEntryPoint(this TypeSystemContext context, ReadOnlySpan<byte> namespaceName, ReadOnlySpan<byte> typeName, ReadOnlySpan<byte> methodName, MethodSignature signature) 43public static MethodDesc GetOptionalHelperEntryPoint(this TypeSystemContext context, ReadOnlySpan<byte> typeName, ReadOnlySpan<byte> methodName) 46MethodDesc helperMethod = helperType?.GetMethod(methodName, null); 55public static void EmitCallThrowHelper(this ILCodeStream codeStream, ILEmitter emitter, MethodDesc method) 74public static MethodDesc GetKnownMethod(this TypeDesc type, ReadOnlySpan<byte> name, MethodSignature signature) 76MethodDesc method = type.GetMethod(name, signature);
parent\parent\Common\TypeSystem\IL\ILProvider.cs (1)
14public abstract MethodIL GetMethodIL(MethodDesc method);
parent\parent\Common\TypeSystem\IL\Stubs\AsyncResumptionStub.cs (4)
18private readonly MethodDesc _targetMethod; 22public AsyncResumptionStub(MethodDesc targetMethod, TypeDesc owningType) 38public MethodDesc TargetMethod => _targetMethod; 108MethodDesc asyncCallContinuation = Context.SystemModule.GetKnownType("System.Runtime.CompilerServices"u8, "AsyncHelpers"u8)
parent\parent\Common\TypeSystem\IL\Stubs\AsyncResumptionStub.Mangling.cs (1)
12MethodDesc IPrefixMangledMethod.BaseMethod => _targetMethod;
parent\parent\Common\TypeSystem\IL\Stubs\AsyncResumptionStub.Sorting.cs (1)
13protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
parent\parent\Common\TypeSystem\IL\Stubs\AsyncThunks.cs (9)
17public static MethodIL EmitTaskReturningThunk(MethodDesc taskReturningMethod, MethodDesc asyncMethod) 100MethodDesc asyncCallContinuationMd = asyncHelpersType.GetKnownMethod("AsyncCallContinuation"u8, null); 112MethodDesc fromResultMethod; 132MethodDesc getCompletedTaskMethod; 159MethodDesc fromExceptionMd; 194MethodDesc createRuntimeAsyncTaskMd; 248public static MethodIL EmitReturnDroppingThunk(MethodDesc returnDroppingMethod, MethodDesc asyncVariantTarget)
parent\parent\Common\TypeSystem\IL\Stubs\ComparerIntrinsics.cs (5)
22public static MethodIL EmitComparerCreate(MethodDesc target) 30public static MethodIL EmitEqualityComparerCreate(MethodDesc target) 51private static MethodIL EmitComparerAndEqualityComparerCreateCommon(MethodDesc methodBeingGenerated, ReadOnlySpan<byte> flavor, ReadOnlySpan<byte> interfaceName) 244public static bool CanCompareValueTypeBits(MetadataType type, MethodDesc objectEqualsMethod) 250public static bool CanCompareValueTypeBitsUntilOffset(MetadataType type, MethodDesc objectEqualsMethod, out int lastFieldEndOffset)
parent\parent\Common\TypeSystem\IL\Stubs\InterlockedIntrinsics.cs (2)
21MethodDesc method) 59MethodDesc compareExchangeNonGeneric = method.OwningType.GetKnownMethod("CompareExchange"u8,
parent\parent\Common\TypeSystem\IL\Stubs\RuntimeHelpersIntrinsics.cs (2)
18public static MethodIL EmitIL(MethodDesc method) 71MethodDesc objectEquals = mdType.Context.GetWellKnownType(WellKnownType.Object).GetMethod("Equals"u8, null);
parent\parent\Common\TypeSystem\IL\Stubs\UnsafeIntrinsics.cs (8)
17public static MethodIL EmitIL(MethodDesc method) 99private static MethodIL EmitAdd(MethodDesc method) 117private static MethodIL EmitSubtract(MethodDesc method) 137private static MethodIL EmitReadWrite(MethodDesc method, bool write, bool unaligned = false) 155private static MethodIL EmitCopy(MethodDesc method) 174private static MethodIL EmitCopyBlock(MethodDesc method, bool unaligned) 192private static MethodIL EmitInitBlock(MethodDesc method, bool unaligned) 210private static MethodIL EmitUnbox(MethodDesc method)
parent\parent\Common\TypeSystem\Interop\IL\Marshaller.cs (9)
446public static Marshaller[] GetMarshallersForMethod(MethodDesc targetMethod) 465public static bool IsMarshallingRequired(MethodDesc targetMethod) 1507MethodDesc getArrayDataReferenceGenericMethod = InteropTypes.GetMemoryMarshal(Context).GetKnownMethod("GetArrayDataReference"u8, null); 1508MethodDesc getArrayDataReferenceMethod = getArrayDataReferenceGenericMethod.MakeInstantiatedMethod(ManagedElementType); 1689var helper = Context.GetHelperEntryPoint("InteropHelpers"u8, "StringToUnicodeBuffer"u8); 1701var charPtrConstructor = Context.GetWellKnownType(WellKnownType.String).GetMethod(".ctor"u8, 1757var stringToAnsi = Context.GetHelperEntryPoint("InteropHelpers"u8, "StringToAnsiString"u8); 1770var ansiToString = Context.GetHelperEntryPoint("InteropHelpers"u8, "AnsiStringToString"u8); 1892var ctor = ManagedType.GetParameterlessConstructor();
parent\parent\Common\TypeSystem\Interop\UnmanagedCallingConventions.cs (2)
95public static UnmanagedCallingConventions GetUnmanagedCallersOnlyMethodCallingConventions(this MethodDesc method) 106public static UnmanagedCallingConventions GetPInvokeMethodCallingConventions(this MethodDesc method)
parent\parent\Common\TypeSystem\MetadataEmitter\TypeSystemMetadataEmitter.cs (4)
26private Dictionary<MethodDesc, EntityHandle> _methodRefs = new Dictionary<MethodDesc, EntityHandle>(); 168case MethodDesc method: return GetMethodRef(method); 295public EntityHandle GetMethodRef(MethodDesc method)
PortableCallHelpers\InternalCallSignatureCollector.cs (3)
52private readonly Dictionary<string, MethodDesc> _signatures = []; 54public IReadOnlyDictionary<string, MethodDesc> Signatures => _signatures; 58foreach (MethodDesc method in type.GetMethods())
PortableCallHelpers\InteropSignature.cs (1)
45public static string GetMethodSignature(MethodDesc method, WasmLowering.LoweringFlags flags = WasmLowering.LoweringFlags.None)
PortableCallHelpers\InterpToNativeGenerator.cs (1)
24public static void Emit(TextWriter w, IReadOnlyDictionary<string, MethodDesc> cookies)
PortableCallHelpers\PInvokeCollector.cs (5)
131public void CollectPInvokes(List<PInvokeInfo> pinvokes, List<PInvokeCallback> callbacks, Dictionary<string, MethodDesc> signatures, EcmaType type) 133foreach (MethodDesc methodDesc in type.GetMethods()) 159MethodDesc invokeMethod = type.GetMethod("Invoke"u8, null); 181private void AddSignature(Dictionary<string, MethodDesc> signatures, MethodDesc method, WasmLowering.LoweringFlags flags, string kind)
PortableCallHelpers\PInvokeTableGenerator.cs (1)
324foreach (MethodDesc candidate in cb.Method.OwningType.GetMethods())
PortableCallHelpers\PortableCallHelpersGenerator.cs (2)
81Dictionary<string, MethodDesc> signatures = []; 128foreach (KeyValuePair<string, MethodDesc> internalCall in internalCallCollector.Signatures)
src\runtime\src\coreclr\tools\Common\Compiler\GenericCycleDetection\GraphBuilder.cs (4)
286foreach (MethodDesc interfaceMethod in interfaceType.GetVirtualMethods()) 296MethodDesc impl = interfaceMethod.Signature.IsStatic ? 411var m = methodIL.GetObject(MetadataTokens.GetToken(accessedMethod), NotFoundBehavior.ReturnNull) as MethodDesc;
src\runtime\src\coreclr\tools\Common\Compiler\GenericCycleDetection\GraphBuilder.MethodCall.cs (1)
19private void ProcessMethodCall(MethodDesc target, Instantiation typeContext, Instantiation methodContext)
src\runtime\src\coreclr\tools\Common\Compiler\GenericCycleDetection\ModuleCycleInfo.cs (6)
129return IsDeepPossiblyCyclicInstantiation((MethodDesc)entity); 211public bool IsDeepPossiblyCyclicInstantiation(MethodDesc method) 255var ownerMethod = owner as MethodDesc; 258var referentMethod = referent as MethodDesc;
TypeSystem\MethodDescExtensions.cs (3)
14public static MethodDesc GetPrimaryMethodDesc(this MethodDesc method) 41public static bool IsPrimaryMethodDesc(this MethodDesc method)
ILCompiler.RyuJit (192)
Compiler\DependencyAnalysis\MethodCodeNode.cs (5)
20private MethodDesc _method; 32public MethodCodeNode(MethodDesc method) 46public MethodDesc Method => _method; 113MethodDesc nonUnboxingMethod = ((CompilerTypeSystemContext)Method.Context).GetTargetOfSpecialUnboxingThunk(_method); 343public MethodDesc Method => _node.Method;
Compiler\DependencyAnalysis\RyuJitNodeFactory.cs (3)
22protected override bool CanFold(MethodDesc method) 25protected override IMethodNode CreateMethodEntrypointNode(MethodDesc method) 53protected override IMethodNode CreateUnboxingStubNode(MethodDesc method)
Compiler\ProfileDataManager.cs (3)
14private readonly Dictionary<MethodDesc, MethodProfileData> _mergedProfileData = new Dictionary<MethodDesc, MethodProfileData>(); 36public MethodProfileData this[MethodDesc method]
Compiler\RyuJitCompilation.cs (3)
136var canonicalMethodsToCompile = new HashSet<MethodDesc>(); 150MethodDesc method = methodCodeNodeNeedingCode.Method; 224MethodDesc method = methodCodeNodeNeedingCode.Method;
JitInterface\CorInfoImpl.RyuJit.cs (46)
52private UnboxingMethodDesc getUnboxingThunk(MethodDesc method) 59MethodDesc asyncResumptionStub = _compilation.TypeSystemContext.GetAsyncResumptionStub(MethodBeingCompiled, _compilation.TypeSystemContext.GeneratedAssembly.GetGlobalModuleType()); 273private void ComputeLookup(ref CORINFO_RESOLVED_TOKEN pResolvedToken, object entity, ReadyToRunHelperId helperId, MethodDesc callerHandle, ref CORINFO_LOOKUP lookup) 278private void ComputeLookup(bool isInlining, object entity, ReadyToRunHelperId helperId, MethodDesc callerHandle, ref CORINFO_LOOKUP lookup) 393MethodDesc expectedTargetMethod = HandleToObject(pTargetMethod.hMethod); 396MethodDesc targetMethod = (MethodDesc)GetRuntimeDeterminedObjectForToken(ref pTargetMethod); 411var interfaceMethod = (MethodDesc)ResolveTokenInScope(methodIL, typeOrMethodContext, pTargetMethod.token); 415MethodDesc directMethod = canonConstrainedType.GetClosestDefType().TryResolveConstraintMethodApprox(interfaceType, interfaceMethod, out bool forceRuntimeLookup, ref staticResolution); 429MethodDesc targetOfLookup; 469MethodDesc contextMethod = HandleToObject(callerHandle); 823MethodDesc methodDesc; 838MethodDesc method = HandleToObject(ftn); 1061private ISymbolNode GetGenericLookupHelper(CORINFO_RUNTIME_LOOKUP_KIND runtimeLookupKind, ReadyToRunHelperId helperId, MethodDesc callerHandle, object helperArgument) 1173private IMethodNode GetMethodEntrypoint(CORINFO_MODULE_STRUCT_* pScope, MethodDesc method) 1209MethodDesc method = HandleToObject(pResolvedToken.hMethod); 1233MethodDesc methodAfterConstraintResolution = method; 1257MethodDesc directMethod = constrainedType.GetClosestDefType().TryResolveConstraintMethodApprox(exactType, method, out forceUseRuntimeLookup, ref staticResolution); 1291MethodDesc targetMethod = methodAfterConstraintResolution; 1318var rawMethod = (MethodDesc)methodIL.GetMethodILDefinition().GetObject((int)pResolvedToken.token); 1397MethodDesc runtimeDeterminedInterfaceMethod = (MethodDesc)GetRuntimeDeterminedObjectForToken(ref pResolvedToken); 1407MethodDesc lookupMethod; 1416var methodToGetInstantiation = (MethodDesc)GetRuntimeDeterminedObjectForToken(ref pResolvedToken); 1458MethodDesc caller = HandleToObject(callerHandle); 1528MethodDesc concreteMethod = targetMethod; 1570MethodDesc runtimeDeterminedInterfaceMethod = (MethodDesc)GetRuntimeDeterminedObjectForToken(ref pResolvedToken); 1597MethodDesc targetOfLookup = _compilation.GetTargetOfGenericVirtualMethodCall((MethodDesc)GetRuntimeDeterminedObjectForToken(ref pResolvedToken)); 1690MethodDesc slotDefiningMethod = targetMethod.IsNewSlot ? 1753MethodDesc md = HandleToObject(pResolvedToken.hMethod); 1797if (obj is MethodDesc objAsMethod) 1830MethodDesc callerContextMethod = HandleToObject(callerHandle); 1856MethodDesc method = HandleToObject(handle); 1874MethodDesc methodDesc = HandleToObject(method); 1903MethodDesc method = (MethodDesc)GetRuntimeDeterminedObjectForToken(ref pResolvedToken); 1946MethodDesc md = HandleToObject(method); 1984MethodDesc method = HandleToObject(handle); 2011MethodDesc stub = _compilation.PInvokeILProvider.GetCalliStub( 2022private bool IsPInvokeStubRequired(MethodDesc method) 2148MethodDesc contextMethod = HandleToObject(callerHandle);
parent\ILCompiler.Compiler\Compiler\JitHelper.cs (1)
18public static void GetEntryPoint(TypeSystemContext context, ReadyToRunHelper id, out string mangledName, out MethodDesc methodDesc)
parent\ILCompiler.ReadyToRun\Compiler\FileLayoutOptimizer.cs (6)
256public readonly MethodDesc Caller; 257public readonly MethodDesc Callee; 260public CallerCalleeCount(MethodDesc caller, MethodDesc callee, int count) 329var mdToIndex = new Dictionary<MethodDesc, int>(); 345foreach ((MethodDesc other, int count) in data.CallWeights)
parent\ILCompiler.ReadyToRun\Compiler\ProfileData.cs (10)
37public MethodProfileData(MethodDesc method, MethodProfilingDataFlags flags, double exclusiveWeight, Dictionary<MethodDesc, int> callWeights, uint scenarioMask, PgoSchemaElem[] schemaData) 49public readonly MethodDesc Method; 53public readonly Dictionary<MethodDesc, int> CallWeights; 61public abstract MethodProfileData GetMethodProfileData(MethodDesc m); 63public abstract byte[] GetMethodBlockCount(MethodDesc m); 65public static void MergeProfileData(Dictionary<MethodDesc, MethodProfileData> mergedProfileData, ProfileData profileData) 81mergedCallWeights = new Dictionary<MethodDesc, int>(data.CallWeights); 135public override MethodProfileData GetMethodProfileData(MethodDesc m) 145public override byte[] GetMethodBlockCount(MethodDesc m)
parent\ILCompiler.ReadyToRun\IBC\IBCProfileData.cs (4)
60private readonly Dictionary<MethodDesc, MethodProfileData> _methodData = new Dictionary<MethodDesc, MethodProfileData>(); 68public override MethodProfileData GetMethodProfileData(MethodDesc m) 79public override byte[] GetMethodBlockCount(MethodDesc m)
parent\ILCompiler.ReadyToRun\IBC\MIbcProfileParser.cs (7)
62return new TypeSystemEntityOrUnknown((MethodDesc)null); 68MethodDesc foundMethod = _ilBody.GetObject((int)token, NotFoundBehavior.ReturnNull) as MethodDesc; 371Dictionary<MethodDesc, int> weights = null; 558methodProfileData.Add(new MethodProfileData((MethodDesc)methodInProgress, MethodProfilingDataFlags.ReadMethodCode, exclusiveWeight, weights, 0xFFFFFFFF, pgoSchemaData)); 585weights = new Dictionary<MethodDesc, int>(); 595weights.Add((MethodDesc)metadataObject, intValue);
parent\parent\Common\JitInterface\CorInfoImpl.cs (75)
78private Dictionary<MethodDesc, PgoInstrumentationResults> _pgoResults = new Dictionary<MethodDesc, PgoInstrumentationResults>(); 316MethodDesc method = (MethodDesc)handleToObject[likelyClassMethods->handle]; 650private MethodDesc MethodBeingCompiled 758private Dictionary<MethodDesc, IntPtr> _methodILScopeToHandle = new Dictionary<MethodDesc, IntPtr>(new JitObjectComparer()); 792private MethodDesc HandleToObject(CORINFO_METHOD_STRUCT_* method) => (MethodDesc)HandleToObject((void*)method); 793private CORINFO_METHOD_STRUCT_* ObjectToHandle(MethodDesc method) => (CORINFO_METHOD_STRUCT_*)ObjectToHandle((object)method); 806MethodDesc owningMethod = methodIL.OwningMethod; 812private bool Get_CORINFO_METHOD_INFO(MethodDesc method, MethodIL methodIL, CORINFO_METHOD_INFO* methodInfo) 881private void Get_CORINFO_SIG_INFO(MethodDesc method, CORINFO_SIG_INFO* sig, MethodILScope scope, bool suppressHiddenArgument = false) 1046private CORINFO_CONTEXT_STRUCT* contextFromMethod(MethodDesc method) 1061private MethodDesc methodFromContext(CORINFO_CONTEXT_STRUCT* contextStruct) 1107MethodDesc method = HandleToObject(ftn); 1113MethodDesc method = HandleToObject(ftn); 1141private uint getMethodAttribsInternal(MethodDesc method) 1262MethodDesc caller = HandleToObject(callerHnd); 1284MethodDesc callee = exactCalleeHnd == null ? null : HandleToObject(exactCalleeHnd); 1296MethodDesc method = HandleToObject(ftn); 1329MethodDesc method = HandleToObject(ftn); 1334if (ctx is MethodDesc methodFromCtx && context != contextFromMethodBeingCompiled()) 1341MethodDesc instantiatedMethod = _compilation.TypeSystemContext.GetMethodForInstantiatedType(method.GetTypicalMethodDefinition(), instantiatedCtxType); 1363MethodDesc meth1 = HandleToObject(methHnd1); 1364MethodDesc meth2 = HandleToObject(methHnd2); 1375MethodDesc callerMethod = HandleToObject(callerHnd); 1376MethodDesc calleeMethod = HandleToObject(calleeHnd); 1443var m = HandleToObject(method); 1464MethodDesc decl = HandleToObject(info->virtualMethod); 1479MethodDesc originalImpl = _compilation.ResolveVirtualMethod(decl, objType, out info->detail); 1502MethodDesc impl = originalImpl.GetCanonMethodTarget(CanonicalFormKind.Specific); 1506MethodDesc nonUnboxingImpl = impl; 1590MethodDesc instArgTarget = unboxingStub ? nonUnboxingImpl : impl; 1672static CORINFO_RESOLVED_TOKEN CreateResolvedTokenFromMethod(CorInfoImpl jitInterface, MethodDesc method 1679MethodDesc unboxedMethodDesc = method.IsUnboxingThunk() ? method.GetUnboxedMethod() : method; 1712MethodDesc method = HandleToObject(ftn); 1768MethodDesc methodDesc = HandleToObject(method); 1780private static CorInfoCallConvExtension GetUnmanagedCallConv(MethodDesc methodDesc, out bool suppressGCTransition) 1870if (result is MethodDesc methodResult) 1888MethodDesc owningMethod = methodIL.OwningMethod; 1909var methodContext = (MethodDesc)typeOrMethodContext; 1952result = _compilation.TypeSystemContext.GetAsyncVariantMethod((MethodDesc)result); 1961if (result is MethodDesc method) 1965MethodDesc sharedMethod = methodIL.OwningMethod.GetSharedRuntimeFormMethodTarget(); 1967Debug.Assert(((MethodDesc)result).IsRuntimeDeterminedExactMethod); 1974MethodDesc sharedMethod = methodIL.OwningMethod.GetSharedRuntimeFormMethodTarget(); 1984MethodDesc sharedMethod = methodIL.OwningMethod.GetSharedRuntimeFormMethodTarget(); 2024if (result is MethodDesc method) 2118private static bool HasCallableAsyncVariant(MethodDesc method) 2159Get_CORINFO_SIG_INFO(((MethodDesc)methodIL.GetObject((int)methTOK)), sig: sig, methodIL); 2915MethodDesc md = method == null ? MethodBeingCompiled : HandleToObject(method); 3700MethodDesc caller = HandleToObject(callerHandle); 3703MethodDesc taskReturningMethod = caller.GetTargetOfAsyncVariant(); 3711MethodDesc runtimeDeterminedCaller = caller.GetSharedRuntimeFormMethodTarget(); 3714MethodDesc result; 3715MethodDesc runtimeDeterminedResult; 3736MethodDesc targetMethod = runtimeDeterminedResult.GetCanonMethodTarget(CanonicalFormKind.Specific); 3778MethodDesc caller = HandleToObject(callerHandle); 3779MethodDesc awaitAwaiterMethod = HandleToObject(pResolvedToken.hMethod); 3785var runtimeDeterminedAwaitAwaiterMethod = (MethodDesc)GetRuntimeDeterminedObjectForToken(ref pResolvedToken); 3796MethodDesc typicalMethod = asyncHelpers.GetKnownMethod( 3799MethodDesc result = typicalMethod.MakeInstantiatedMethod(awaiterType); 3800MethodDesc runtimeDeterminedResult = typicalMethod.MakeInstantiatedMethod(runtimeDeterminedAwaiterType); 3802MethodDesc targetMethod = runtimeDeterminedResult.GetCanonMethodTarget(CanonicalFormKind.Specific); 3862MethodDesc method = HandleToObject(hMethod); 3869MethodDesc methodDefinition = method.GetTypicalMethodDefinition(); 3899MethodDesc method = HandleToObject(ftn); 3903private static string getMethodNameFromMetadataImpl(MethodDesc method, out string className, out string namespaceName, string[] enclosingClassName) 3935MethodDesc method = HandleToObject(ftn); 4160private static CORINFO_RUNTIME_LOOKUP_KIND GetGenericRuntimeLookupKind(MethodDesc method) 4175MethodDesc method = HandleToObject(context); 5014MethodDesc methodDesc = HandleToObject(ftnHnd);
parent\parent\Common\JitInterface\UnboxingMethodDesc.cs (14)
20public MethodDesc Target => _wrappedMethod; 22public UnboxingMethodDesc(MethodDesc wrappedMethod, UnboxingMethodDescFactory factory) 31public override MethodDesc GetCanonMethodTarget(CanonicalFormKind kind) 33MethodDesc realCanonTarget = _wrappedMethod.GetCanonMethodTarget(kind); 40public override MethodDesc GetMethodDefinition() 42MethodDesc realMethodDefinition = _wrappedMethod.GetMethodDefinition(); 49public override MethodDesc GetTypicalMethodDefinition() 51MethodDesc realTypicalMethodDefinition = _wrappedMethod.GetTypicalMethodDefinition(); 58public override MethodDesc InstantiateSignature(Instantiation typeInstantiation, Instantiation methodInstantiation) 60MethodDesc realInstantiateSignature = _wrappedMethod.InstantiateSignature(typeInstantiation, methodInstantiation); 75protected override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer) 91public static bool IsUnboxingThunk(this MethodDesc method) 96public static MethodDesc GetUnboxedMethod(this MethodDesc method)
parent\parent\Common\JitInterface\UnboxingMethodDescFactory.cs (2)
9internal sealed class UnboxingMethodDescFactory : Dictionary<MethodDesc, UnboxingMethodDesc> 11public UnboxingMethodDesc GetUnboxingMethod(MethodDesc method)
parent\parent\Common\Pgo\TypeSystemEntityOrUnknown.cs (3)
21public TypeSystemEntityOrUnknown(MethodDesc method) 28public MethodDesc AsMethod => _data as MethodDesc;
parent\parent\Common\TypeSystem\IL\HelperExtensions.cs (8)
30public static MethodDesc GetHelperEntryPoint(this TypeSystemContext context, ReadOnlySpan<byte> typeName, ReadOnlySpan<byte> methodName) 33MethodDesc helperMethod = helperType.GetKnownMethod(methodName, null); 37public static MethodDesc GetCoreLibEntryPoint(this TypeSystemContext context, ReadOnlySpan<byte> namespaceName, ReadOnlySpan<byte> typeName, ReadOnlySpan<byte> methodName, MethodSignature signature) 43public static MethodDesc GetOptionalHelperEntryPoint(this TypeSystemContext context, ReadOnlySpan<byte> typeName, ReadOnlySpan<byte> methodName) 46MethodDesc helperMethod = helperType?.GetMethod(methodName, null); 55public static void EmitCallThrowHelper(this ILCodeStream codeStream, ILEmitter emitter, MethodDesc method) 74public static MethodDesc GetKnownMethod(this TypeDesc type, ReadOnlySpan<byte> name, MethodSignature signature) 76MethodDesc method = type.GetMethod(name, signature);
parent\parent\Common\TypeSystem\IL\Stubs\TypeSystemThrowingILEmitter.cs (2)
19public static MethodIL EmitIL(MethodDesc methodThatShouldThrow, TypeSystemException exception) 23MethodDesc helper;
ILCompiler.TypeSystem (378)
parent\parent\Common\TypeSystem\Canon\ArrayType.Canon.cs (1)
31public override MethodDesc GetCanonMethodTarget(CanonicalFormKind kind)
parent\parent\Common\TypeSystem\Canon\InstantiatedMethod.Canon.cs (2)
21public override MethodDesc GetCanonMethodTarget(CanonicalFormKind kind) 28MethodDesc openMethodOnCanonicalizedType = _methodDef.GetCanonMethodTarget(kind);
parent\parent\Common\TypeSystem\Canon\MethodDelegator.Canon.cs (1)
14public abstract override MethodDesc GetCanonMethodTarget(CanonicalFormKind kind);
parent\parent\Common\TypeSystem\Canon\MethodDesc.Canon.cs (1)
17public virtual MethodDesc GetCanonMethodTarget(CanonicalFormKind kind)
parent\parent\Common\TypeSystem\Canon\MethodForInstantiatedType.Canon.cs (1)
14public override MethodDesc GetCanonMethodTarget(CanonicalFormKind kind)
parent\parent\Common\TypeSystem\Common\ArrayType.cs (8)
50internal MethodDesc[] _methods; 108MethodDesc[] methods = new MethodDesc[(int)ArrayMethodKind.Ctor + numCtors]; 116public override IEnumerable<MethodDesc> GetMethods() 123public override IEnumerable<MethodDesc> GetVirtualMethods() 125return MethodDesc.EmptyMethods; 128public MethodDesc GetArrayMethod(ArrayMethodKind kind) 328public override MethodDesc InstantiateSignature(Instantiation typeInstantiation, Instantiation methodInstantiation)
parent\parent\Common\TypeSystem\Common\CastingHelper.cs (1)
273if (thisType.AssociatedTypeOrMethod is MethodDesc method)
parent\parent\Common\TypeSystem\Common\CastingHelper.TypeEquivalence.cs (4)
182var invoke1 = type1.GetMethod("Invoke"u8, null); 183var invoke2 = type2.GetMethod("Invoke"u8, null); 196foreach (var method in type1.GetMethods()) 202foreach (var method in type2.GetMethods())
parent\parent\Common\TypeSystem\Common\ConstructedTypeRewritingHelpers.cs (4)
153public static MethodDesc ReplaceTypesInConstructionOfMethod(this MethodDesc method, TypeDesc[] typesToReplace, TypeDesc[] replacementTypes) 156MethodDesc methodOnOwningType; 168MethodDesc result;
parent\parent\Common\TypeSystem\Common\InstantiatedMethod.cs (5)
14private MethodDesc _methodDef; 19internal InstantiatedMethod(MethodDesc methodDef, Instantiation instantiation) 31internal InstantiatedMethod(MethodDesc methodDef, Instantiation instantiation, int hashcode) 161public override MethodDesc GetMethodDefinition() 166public override MethodDesc GetTypicalMethodDefinition()
parent\parent\Common\TypeSystem\Common\InstantiatedType.cs (14)
147public override IEnumerable<MethodDesc> GetMethods() 149foreach (var typicalMethodDef in _typeDef.GetMethods()) 155public override IEnumerable<MethodDesc> GetVirtualMethods() 157foreach (var typicalMethodDef in _typeDef.GetVirtualMethods()) 164public override MethodDesc GetMethod(Utf8Span name, MethodSignature signature, Instantiation substitution) 166MethodDesc typicalMethodDef = _typeDef.GetMethod(name, signature, substitution); 172public override MethodDesc GetMethodWithEquivalentSignature(Utf8Span name, MethodSignature signature, Instantiation substitution) 174MethodDesc typicalMethodDef = _typeDef.GetMethodWithEquivalentSignature(name, signature, substitution); 180public override MethodDesc GetStaticConstructor() 182MethodDesc typicalCctor = _typeDef.GetStaticConstructor(); 188public override MethodDesc GetDefaultConstructor() 190MethodDesc typicalCtor = _typeDef.GetDefaultConstructor(); 196public override MethodDesc GetFinalizer() 198MethodDesc typicalFinalizer = _typeDef.GetFinalizer();
parent\parent\Common\TypeSystem\Common\InstantiatedType.MethodImpls.cs (2)
27MethodDesc decl; 39MethodDesc body = _typeDef.Context.GetMethodForInstantiatedType(uninstMethodImpls[i].Body, this);
parent\parent\Common\TypeSystem\Common\MetadataType.MethodImpls.cs (4)
12public readonly MethodDesc Decl; 13public readonly MethodDesc Body; 15public MethodImplRecord(MethodDesc decl, MethodDesc body)
parent\parent\Common\TypeSystem\Common\MetadataVirtualMethodAlgorithm.cs (134)
14private sealed class MethodDescHashtable : LockFreeReaderHashtable<MethodDesc, MethodDesc> 16protected override int GetKeyHashCode(MethodDesc key) 21protected override int GetValueHashCode(MethodDesc value) 26protected override bool CompareKeyToValue(MethodDesc key, MethodDesc value) 32protected override bool CompareValueToValue(MethodDesc value1, MethodDesc value2) 38protected override MethodDesc CreateValueFromKey(MethodDesc key) 46private MethodDesc[] _members = MethodDesc.EmptyMethods; 49private MethodDesc[] _methodsRequiringSlotUnification = MethodDesc.EmptyMethods; 57private MethodDesc[] _arrayToEnumerate; 59private MethodDesc _current; 61internal Enumerator(MethodDesc[] arrayToEnumerate) 65_current = default(MethodDesc); 80_current = default(MethodDesc); 84public MethodDesc Current 95private readonly MethodDesc[] _arrayToEnumerate; 97public Enumerable(MethodDesc[] arrayToEnumerate) 108public UnificationGroup(MethodDesc definingMethod) 114public MethodDesc DefiningMethod; 120public void AddMethodRequiringSlotUnification(MethodDesc method) 133public bool RequiresSlotUnification(MethodDesc method) 143public void SetDefiningMethod(MethodDesc newDefiningMethod) 151MethodDesc oldDefiningMethod = DefiningMethod; 159public void AddToGroup(MethodDesc method) 182public void RemoveFromGroup(MethodDesc method) 198public bool IsInGroupOrIsDefiningSlot(MethodDesc method) 206public bool IsInGroup(MethodDesc method) 218public override MethodDesc FindVirtualFunctionTargetMethodOnObjectType(MethodDesc targetMethod, TypeDesc objectType) 229private static MethodDesc FindVirtualFunctionTargetMethodOnObjectType(MethodDesc targetMethod, MetadataType objectType) 233MethodDesc initialTargetMethod = targetMethod; 242MethodDesc initialTargetMethodDefinition = targetMethod; 253MethodDesc resolutionTarget = FindNameSigOverrideForVirtualMethod(group.DefiningMethod, uninstantiatedType); 281private static MethodDesc FindImplFromDeclFromMethodImpls(MetadataType type, MethodDesc decl) 293MethodDesc recordDecl = record.Decl; 309private static MethodDesc FindInterfaceImplFromDeclFromMethodImpls(MetadataType type, MethodDesc decl) 322MethodDesc recordDecl = foundMethodImpls[i].Decl; 381private static MethodDesc FindMatchingVirtualMethodOnTypeByNameAndSig(MethodDesc targetMethod, DefType currentType, bool reverseMethodSearch, Func<MethodDesc, MethodDesc, bool> nameSigMatchMethodIsValidCandidate) 386MethodDesc implMethod = null; 387MethodDesc implMethodEquivalent = null; 388foreach (MethodDesc candidate in currentType.GetAllVirtualMethods()) 420private static MethodDesc FindNameSigOverrideForVirtualMethod(MethodDesc targetMethod, MetadataType currentType) 424MethodDesc nameSigOverride = FindMatchingVirtualMethodOnTypeByNameAndSigWithSlotCheck(targetMethod, currentType, reverseMethodSearch:true); 440public static MethodDesc FindSlotDefiningMethodForVirtualMethod(MethodDesc method) 452MethodDesc foundMethod = FindMatchingVirtualMethodOnTypeByNameAndSig(method, currentType, reverseMethodSearch: true, nameSigMatchMethodIsValidCandidate:null); 476private static MethodDesc FindMatchingVirtualMethodOnTypeByNameAndSigWithSlotCheck(MethodDesc method, DefType currentType, bool reverseMethodSearch) 481private static readonly Func<MethodDesc, MethodDesc, bool> s_VerifyMethodsHaveTheSameVirtualSlot = VerifyMethodsHaveTheSameVirtualSlot; 484private static bool VerifyMethodsHaveTheSameVirtualSlot(MethodDesc slotDefiningMethod, MethodDesc methodToVerify) 486MethodDesc slotDefiningMethodOfMethodToVerify = FindSlotDefiningMethodForVirtualMethod(methodToVerify); 490private static readonly Func<MethodDesc, MethodDesc, bool> s_VerifyMethodIsPublic = VerifyMethodIsPublic; 493private static bool VerifyMethodIsPublic(MethodDesc slotDefiningMethod, MethodDesc methodToVerify) 500MethodDesc originalDefiningMethod = unificationGroup.DefiningMethod; 502MethodDesc methodImpl = FindImplFromDeclFromMethodImpls(currentType, unificationGroup.DefiningMethod); 513MethodDesc nameSigMatchMethod = FindMatchingVirtualMethodOnTypeByNameAndSigWithSlotCheck(unificationGroup.DefiningMethod, currentType, reverseMethodSearch: true); 550foreach (MethodDesc memberMethod in unificationGroup.Members) 557MethodDesc nameSigMatchMemberMethod = FindMatchingVirtualMethodOnTypeByNameAndSigWithSlotCheck(memberMethod, currentType, reverseMethodSearch: true); 567foreach (MethodDesc separatedMethod in MethodDescHashtable.Enumerator.Get(separatedMethods)) 576MethodDesc declSlot = FindSlotDefiningMethodForVirtualMethod(methodImplRecord.Decl); 577MethodDesc implSlot = FindSlotDefiningMethodForVirtualMethod(methodImplRecord.Body); 611foreach (MethodDesc methodImplRequiredToRemainInEffect in addDeclGroup.MethodsRequiringSlotUnification) 623foreach (MethodDesc addDeclGroupMemberMethod in addDeclGroup.Members) 653public override MethodDesc ResolveInterfaceMethodToVirtualMethodOnType(MethodDesc interfaceMethod, TypeDesc currentType) 658public override MethodDesc ResolveVariantInterfaceMethodToVirtualMethodOnType(MethodDesc interfaceMethod, TypeDesc currentType) 663public override MethodDesc ResolveInterfaceMethodToStaticVirtualMethodOnType(MethodDesc interfaceMethod, TypeDesc currentType) 668public override MethodDesc ResolveVariantInterfaceMethodToStaticVirtualMethodOnType(MethodDesc interfaceMethod, TypeDesc currentType) 698private static MethodDesc ResolveInterfaceMethodToVirtualMethodOnType(MethodDesc interfaceMethod, MetadataType currentType, bool returnRecursive = false) 707MethodDesc methodImpl = FindImplFromDeclFromMethodImpls(currentType, interfaceMethod); 719MethodDesc foundOnCurrentType = FindMatchingVirtualMethodOnTypeByNameAndSig(interfaceMethod, currentType, 750MethodDesc baseClassImplementationOfInterfaceMethod = ResolveInterfaceMethodToVirtualMethodOnTypeRecursive(interfaceMethod, baseType); 757MethodDesc foundOnCurrentType = FindMatchingVirtualMethodOnTypeByNameAndSig(interfaceMethod, currentType, 771public static MethodDesc ResolveVariantInterfaceMethodToVirtualMethodOnType(MethodDesc interfaceMethod, MetadataType currentType) 777MethodDesc implMethod; 802private static MethodDesc ResolveInterfaceMethodToVirtualMethodOnTypeRecursive(MethodDesc interfaceMethod, MetadataType currentType) 817MethodDesc currentTypeInterfaceResolution = ResolveInterfaceMethodToVirtualMethodOnType(interfaceMethod, currentType, returnRecursive: true); 826private static MethodDesc FindNameSigOverrideForInterfaceMethodRecursive(MethodDesc interfaceMethod, MetadataType currentType) 833MethodDesc nameSigOverride = FindMatchingVirtualMethodOnTypeByNameAndSig(interfaceMethod, currentType, 846public override DefaultInterfaceMethodResolution ResolveInterfaceMethodToDefaultImplementationOnType(MethodDesc interfaceMethod, TypeDesc currentType, out MethodDesc impl) 851public override DefaultInterfaceMethodResolution ResolveVariantInterfaceMethodToDefaultImplementationOnType(MethodDesc interfaceMethod, TypeDesc currentType, out MethodDesc impl) 856public static DefaultInterfaceMethodResolution ResolveVariantInterfaceMethodToDefaultImplementationOnType(MethodDesc interfaceMethod, MetadataType currentType, out MethodDesc impl) 867MethodDesc interfaceMethod, 870out MethodDesc candidateMD) 873MethodDesc interfaceMethodDefinition = interfaceMethod.GetMethodDefinition(); 929MethodDesc interfaceMethod, 932out MethodDesc impl) 935MethodDesc interfaceMethodDefinition = interfaceMethod.GetMethodDefinition(); 951MethodDesc[] candidateMethods = new MethodDesc[consideredInterfaces.Length]; 971if (!TryGetCandidateImplementation(currentMT, interfaceMethod, interfaceMT, allowVariance, out MethodDesc currentMD)) 1044MethodDesc bestCandidateMD = null; 1083public override IEnumerable<MethodDesc> ComputeAllVirtualSlots(TypeDesc type) 1089public static IEnumerable<MethodDesc> EnumAllVirtualSlots(MetadataType type) 1093private static IEnumerable<MethodDesc> EnumAllVirtualSlotsOnClass(MetadataType type) 1098foreach (MethodDesc m in type.GetAllVirtualMethods()) 1100MethodDesc possibleVirtual = FindSlotDefiningMethodForVirtualMethod(m); 1118public static MethodDesc ResolveInterfaceMethodToStaticVirtualMethodOnType(MethodDesc interfaceMethod, MetadataType currentType) 1128MethodDesc resolvedMethodOnType = TryResolveVirtualStaticMethodOnThisType(typeToCheck, interfaceMethod); 1143public static MethodDesc ResolveVariantInterfaceMethodToStaticVirtualMethodOnType(MethodDesc interfaceMethod, MetadataType currentType) 1150MethodDesc resolvedMethodOnType = TryResolveVirtualStaticMethodOnThisType(typeToCheck, interfaceMethod); 1175MethodDesc runtimeInterfaceMethod = runtimeInterfaceType.FindMethodOnExactTypeWithMatchingTypicalMethod(interfaceMethod); 1193private static MethodDesc TryResolveVirtualStaticMethodOnThisType(MetadataType constrainedType, MethodDesc interfaceMethod) 1201MethodDesc interfaceMethodDefinition = interfaceMethod.GetMethodDefinition(); 1206MethodDesc resolvedMethodImpl = methodImpl.Body;
parent\parent\Common\TypeSystem\Common\MethodDelegator.cs (5)
15protected readonly MethodDesc _wrappedMethod; 17public MethodDelegator(MethodDesc wrappedMethod) 51public abstract override MethodDesc GetMethodDefinition(); 54public abstract override MethodDesc GetTypicalMethodDefinition(); 57public abstract override MethodDesc InstantiateSignature(Instantiation typeInstantiation, Instantiation methodInstantiation);
parent\parent\Common\TypeSystem\Common\MethodDesc.cs (8)
489public static readonly MethodDesc[] EmptyMethods = new MethodDesc[0]; 536Debug.Assert(o is not MethodDesc || ReferenceEquals(((MethodDesc)o).Context, this.Context)); 709public virtual MethodDesc GetMethodDefinition() 730public virtual MethodDesc GetTypicalMethodDefinition() 767public virtual MethodDesc InstantiateSignature(Instantiation typeInstantiation, Instantiation methodInstantiation) 790MethodDesc method = this;
parent\parent\Common\TypeSystem\Common\MethodForInstantiatedType.cs (4)
14private readonly MethodDesc _typicalMethodDef; 19internal MethodForInstantiatedType(MethodDesc typicalMethodDef, InstantiatedType instantiatedType) 29internal MethodForInstantiatedType(MethodDesc typicalMethodDef, InstantiatedType instantiatedType, int hashcode) 137public override MethodDesc GetTypicalMethodDefinition()
parent\parent\Common\TypeSystem\Common\ThrowHelper.Common.cs (3)
36public static void ThrowTypeLoadException(ExceptionStringID id, MethodDesc method) 55public static string OwningModule(MethodDesc method) 92public static string Method(MethodDesc method)
parent\parent\Common\TypeSystem\Common\ThrowHelper.cs (1)
57public static void ThrowInvalidProgramException(ExceptionStringID id, MethodDesc method)
parent\parent\Common\TypeSystem\Common\TypeDesc.cs (12)
504public virtual IEnumerable<MethodDesc> GetMethods() 506return MethodDesc.EmptyMethods; 512public virtual IEnumerable<MethodDesc> GetVirtualMethods() 514foreach (MethodDesc method in GetMethods()) 525public MethodDesc GetMethod(Utf8Span name, MethodSignature signature) 537public virtual MethodDesc GetMethod(Utf8Span name, MethodSignature signature, Instantiation substitution) 539foreach (var method in GetMethods()) 550public virtual MethodDesc GetMethodWithEquivalentSignature(Utf8Span name, MethodSignature signature, Instantiation substitution) 552foreach (var method in GetMethods()) 567public virtual MethodDesc GetStaticConstructor() 576public virtual MethodDesc GetDefaultConstructor() 654public virtual MethodDesc GetFinalizer()
parent\parent\Common\TypeSystem\Common\TypeDesc.TypeEquivalence.cs (1)
131foreach (var method in GetMethods())
parent\parent\Common\TypeSystem\Common\TypeSystemConstraintsHelpers.cs (2)
208public static bool CheckConstraints(this MethodDesc method, InstantiationContext context = null) 218MethodDesc uninstantiatedMethod = method.GetMethodDefinition();
parent\parent\Common\TypeSystem\Common\TypeSystemContext.cs (11)
354private MethodDesc _methodDef; 358public InstantiatedMethodKey(MethodDesc methodDef, Instantiation instantiation) 366public MethodDesc MethodDef 442public InstantiatedMethod GetInstantiatedMethod(MethodDesc methodDef, Instantiation instantiation) 454private MethodDesc _typicalMethodDef; 458public MethodForInstantiatedTypeKey(MethodDesc typicalMethodDef, InstantiatedType instantiatedType) 465public MethodDesc TypicalMethodDef 515public MethodDesc GetMethodForInstantiatedType(MethodDesc typicalMethodDef, InstantiatedType instantiatedType) 651protected internal virtual IEnumerable<MethodDesc> GetAllMethods(TypeDesc type) 656protected internal virtual IEnumerable<MethodDesc> GetAllVirtualMethods(TypeDesc type)
parent\parent\Common\TypeSystem\Common\TypeSystemHelpers.cs (35)
30public static InstantiatedMethod MakeInstantiatedMethod(this MethodDesc methodDef, Instantiation instantiation) 35public static InstantiatedMethod MakeInstantiatedMethod(this MethodDesc methodDef, params TypeDesc[] genericParameters) 86public static MethodDesc GetParameterlessConstructor(this TypeDesc type) 98internal static MethodDesc FindMethodOnExactTypeWithMatchingTypicalMethod(this TypeDesc type, MethodDesc method) 100MethodDesc methodTypicalDefinition = method.GetTypicalMethodDefinition(); 129public static MethodDesc FindMethodOnTypeWithMatchingTypicalMethod(this TypeDesc targetType, MethodDesc method) 152MethodDesc matchingMethod = targetOrBase.FindMethodOnExactTypeWithMatchingTypicalMethod(method); 165public static IEnumerable<MethodDesc> GetAllMethods(this TypeDesc type) 173public static IEnumerable<MethodDesc> GetAllVirtualMethods(this TypeDesc type) 178public static IEnumerable<MethodDesc> EnumAllVirtualSlots(this TypeDesc type) 187public static MethodDesc ResolveInterfaceMethodToVirtualMethodOnType(this TypeDesc type, MethodDesc interfaceMethod) 192public static MethodDesc ResolveVariantInterfaceMethodToVirtualMethodOnType(this TypeDesc type, MethodDesc interfaceMethod) 197public static MethodDesc ResolveInterfaceMethodToStaticVirtualMethodOnType(this TypeDesc type, MethodDesc interfaceMethod) 202public static MethodDesc ResolveVariantInterfaceMethodToStaticVirtualMethodOnType(this TypeDesc type, MethodDesc interfaceMethod) 207public static DefaultInterfaceMethodResolution ResolveInterfaceMethodToDefaultImplementationOnType(this TypeDesc type, MethodDesc interfaceMethod, out MethodDesc implMethod) 212public static DefaultInterfaceMethodResolution ResolveVariantInterfaceMethodToDefaultImplementationOnType(this TypeDesc type, MethodDesc interfaceMethod, out MethodDesc implMethod) 220public static MethodDesc FindVirtualFunctionTargetMethodOnObjectType(this TypeDesc type, MethodDesc targetMethod) 271public static MethodDesc InstantiateAsOpen(this MethodDesc method) 290public static MethodDesc ResolveInterfaceMethodTarget(this TypeDesc thisType, MethodDesc interfaceMethodToResolve) 294MethodDesc result; 310public static MethodDesc ResolveInterfaceMethodTargetWithVariance(this TypeDesc thisType, MethodDesc interfaceMethodToResolve) 314MethodDesc result; 374public static bool RequiresSlotUnification(this MethodDesc method)
parent\parent\Common\TypeSystem\Common\TypeWithRepeatedFields.cs (2)
126public override IEnumerable<MethodDesc> GetMethods() => MethodDesc.EmptyMethods;
parent\parent\Common\TypeSystem\Common\Utilities\CSharpTypeNameFormatter.cs (1)
16public string FormatName(MethodDesc method)
parent\parent\Common\TypeSystem\Common\VirtualMethodAlgorithm.cs (15)
23public abstract MethodDesc ResolveInterfaceMethodToVirtualMethodOnType(MethodDesc interfaceMethod, TypeDesc currentType); 25public abstract MethodDesc ResolveVariantInterfaceMethodToVirtualMethodOnType(MethodDesc interfaceMethod, TypeDesc currentType); 27public abstract MethodDesc ResolveInterfaceMethodToStaticVirtualMethodOnType(MethodDesc interfaceMethod, TypeDesc currentType); 29public abstract MethodDesc ResolveVariantInterfaceMethodToStaticVirtualMethodOnType(MethodDesc interfaceMethod, TypeDesc currentType); 31public abstract DefaultInterfaceMethodResolution ResolveInterfaceMethodToDefaultImplementationOnType(MethodDesc interfaceMethod, TypeDesc currentType, out MethodDesc impl); 33public abstract DefaultInterfaceMethodResolution ResolveVariantInterfaceMethodToDefaultImplementationOnType(MethodDesc interfaceMethod, TypeDesc currentType, out MethodDesc impl); 38public abstract MethodDesc FindVirtualFunctionTargetMethodOnObjectType(MethodDesc targetMethod, TypeDesc objectType); 43public abstract IEnumerable<MethodDesc> ComputeAllVirtualSlots(TypeDesc type);
parent\parent\Common\TypeSystem\Ecma\EcmaMethod.cs (1)
605public override MethodDesc InstantiateSignature(Instantiation typeInstantiation, Instantiation methodInstantiation) => this;
parent\parent\Common\TypeSystem\Ecma\EcmaMethod.Sorting.cs (1)
13protected internal override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
parent\parent\Common\TypeSystem\Ecma\EcmaModule.cs (9)
242public MethodDesc EntryPoint 468public MethodDesc GetMethod(EntityHandle handle) 470MethodDesc method = GetObject(handle, NotFoundBehavior.Throw) as MethodDesc; 543MethodDesc methodDef = resolvedMethod as MethodDesc; 622MethodDesc method = typeDescToInspect.GetMethod(name, sig, substitution); 664else if (parent is MethodDesc) 666ThrowHelper.ThrowInvalidProgramException(ExceptionStringID.InvalidProgramVararg, (MethodDesc)parent);
parent\parent\Common\TypeSystem\Ecma\EcmaType.cs (3)
406public override MethodDesc GetFinalizer() 415MethodDesc decl = objectType.GetMethod("Finalize"u8, null); 419MethodDesc impl = this.FindVirtualFunctionTargetMethodOnObjectType(decl);
parent\parent\Common\TypeSystem\Ecma\EcmaType.MethodImpls.cs (5)
49(MethodDesc)_module.GetObject(methodImpl.MethodDeclaration), 50(MethodDesc)_module.GetObject(methodImpl.MethodBody)); 88owningType = ((MethodDesc)_module.GetObject(methodDeclCheckHandle)).OwningType as MetadataType; 104(MethodDesc)_module.GetObject(methodImpl.MethodDeclaration), 105(MethodDesc)_module.GetObject(methodImpl.MethodBody));
parent\parent\Common\TypeSystem\IL\EcmaMethodIL.cs (4)
148private readonly MethodDesc _method; 150public static EcmaMethodILScope Create(MethodDesc method) 155private EcmaMethodILScope(MethodDesc method) 173public override MethodDesc OwningMethod
parent\parent\Common\TypeSystem\IL\HelperExtensions.cs (8)
30public static MethodDesc GetHelperEntryPoint(this TypeSystemContext context, ReadOnlySpan<byte> typeName, ReadOnlySpan<byte> methodName) 33MethodDesc helperMethod = helperType.GetKnownMethod(methodName, null); 37public static MethodDesc GetCoreLibEntryPoint(this TypeSystemContext context, ReadOnlySpan<byte> namespaceName, ReadOnlySpan<byte> typeName, ReadOnlySpan<byte> methodName, MethodSignature signature) 43public static MethodDesc GetOptionalHelperEntryPoint(this TypeSystemContext context, ReadOnlySpan<byte> typeName, ReadOnlySpan<byte> methodName) 46MethodDesc helperMethod = helperType?.GetMethod(methodName, null); 55public static void EmitCallThrowHelper(this ILCodeStream codeStream, ILEmitter emitter, MethodDesc method) 74public static MethodDesc GetKnownMethod(this TypeDesc type, ReadOnlySpan<byte> name, MethodSignature signature) 76MethodDesc method = type.GetMethod(name, signature);
parent\parent\Common\TypeSystem\IL\ILDisassembler.cs (3)
80private void AppendMethodSignature(StringBuilder sb, MethodDesc method) 171if (obj is MethodDesc) 172AppendMethodSignature(sb, (MethodDesc)obj);
parent\parent\Common\TypeSystem\IL\ILStackHelper.cs (1)
255methodSignature : ((MethodDesc)obj).Signature;
parent\parent\Common\TypeSystem\IL\InstantiatedMethodIL.cs (5)
12private MethodDesc _method; 17public InstantiatedMethodIL(MethodDesc owningMethod, MethodIL methodIL) 29public override MethodDesc OwningMethod 93if (o is MethodDesc) 95o = ((MethodDesc)o).InstantiateSignature(_typeInstantiation, _methodInstantiation);
parent\parent\Common\TypeSystem\IL\MethodIL.cs (1)
59public abstract MethodDesc OwningMethod { get; }
parent\parent\Common\TypeSystem\IL\MethodILDebugView.cs (1)
27MethodDesc owningMethod = _methodIL.OwningMethod;
parent\parent\Common\TypeSystem\IL\Stubs\ILEmitter.cs (6)
557private readonly MethodDesc _method; 565public ILStubMethodIL(MethodDesc owningMethod, byte[] ilBytes, LocalVariableDefinition[] locals, object[] tokens, ILExceptionRegion[] exceptionRegions = null, MethodDebugInformation debugInfo = null, bool stubILHasGeneratedTokens = false) 593public override MethodDesc OwningMethod 715public ILToken NewToken(MethodDesc value) 762public MethodIL Link(MethodDesc owningMethod) 873public abstract MethodIL EmitIL(MethodDesc specializedMethod);
parent\parent\Common\TypeSystem\IL\Stubs\PInvokeTargetNativeMethod.cs (3)
18private readonly MethodDesc _declMethod; 21public MethodDesc Target 29public PInvokeTargetNativeMethod(MethodDesc declMethod, MethodSignature signature)
parent\parent\Common\TypeSystem\IL\Stubs\PInvokeTargetNativeMethod.Mangling.cs (1)
11MethodDesc IPrefixMangledMethod.BaseMethod
parent\parent\Common\TypeSystem\IL\Stubs\PInvokeTargetNativeMethod.Sorting.cs (1)
13protected internal override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
parent\parent\Common\TypeSystem\IL\UnsafeAccessors.cs (10)
169private static bool TryParseUnsafeAccessorAttribute(MethodDesc method, CustomAttributeValue<TypeDesc> decodedValue, out UnsafeAccessorKind kind, out string name) 225public MethodDesc TargetMethod; 253private static bool DoesMethodMatchUnsafeAccessorDeclaration(ref GenerationContext context, MethodDesc method, bool ignoreCustomModifiers) 389private static bool VerifyDeclarationSatisfiesTargetConstraints(MethodDesc declaration, TypeDesc targetType, MethodDesc targetMethod) 433MethodDesc targetMaybe = null; 434foreach (MethodDesc md in targetType.GetMethods()) 816MethodDesc thrower; 861private static MethodIL GenerateAccessorBadImageFailure(MethodDesc method) 869MethodDesc thrower = method.Context.GetHelperEntryPoint("ThrowHelpers"u8, "ThrowBadImageFormatException"u8);
parent\parent\Common\TypeSystem\Mangling\IPrefixMangledMethod.cs (1)
17MethodDesc BaseMethod { get; }
parent\parent\Common\TypeSystem\RuntimeDetermined\ArrayType.RuntimeDetermined.cs (1)
22public override MethodDesc GetNonRuntimeDeterminedMethodFromRuntimeDeterminedMethodViaSubstitution(Instantiation typeInstantiation, Instantiation methodInstantiation)
parent\parent\Common\TypeSystem\RuntimeDetermined\MethodDesc.RuntimeDetermined.cs (5)
12public MethodDesc GetSharedRuntimeFormMethodTarget() 14MethodDesc result = this; 30MethodDesc uninstantiatedMethod = result.GetMethodDefinition(); 101public virtual MethodDesc GetNonRuntimeDeterminedMethodFromRuntimeDeterminedMethodViaSubstitution(Instantiation typeInstantiation, Instantiation methodInstantiation) 124MethodDesc method = this;
parent\parent\Common\TypeSystem\RuntimeDetermined\MethodForRuntimeDeterminedType.cs (5)
13private MethodDesc _typicalMethodDef; 16internal MethodForRuntimeDeterminedType(MethodDesc typicalMethodDef, RuntimeDeterminedType rdType) 27internal MethodForRuntimeDeterminedType(MethodDesc typicalMethodDef, RuntimeDeterminedType rdType, int hashcode) 42public override MethodDesc GetTypicalMethodDefinition() => _typicalMethodDef; 58public override MethodDesc GetCanonMethodTarget(CanonicalFormKind kind)
parent\parent\Common\TypeSystem\RuntimeDetermined\MethodForRuntimeDeterminedType.Sorting.cs (1)
11protected internal override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
parent\parent\Common\TypeSystem\RuntimeDetermined\RuntimeDeterminedType.cs (8)
112public override IEnumerable<MethodDesc> GetMethods() 114foreach (var method in _rawCanonType.GetMethods()) 120public override IEnumerable<MethodDesc> GetVirtualMethods() 122foreach (var method in _rawCanonType.GetVirtualMethods()) 128public override MethodDesc GetMethod(Utf8Span name, MethodSignature signature, Instantiation substitution) 130MethodDesc method = _rawCanonType.GetMethod(name, signature, substitution); 136public override MethodDesc GetMethodWithEquivalentSignature(Utf8Span name, MethodSignature signature, Instantiation substitution) 138MethodDesc method = _rawCanonType.GetMethodWithEquivalentSignature(name, signature, substitution);
parent\parent\Common\TypeSystem\RuntimeDetermined\TypeSystemContext.RuntimeDetermined.cs (5)
72private MethodDesc _typicalMethodDef; 76public MethodForRuntimeDeterminedTypeKey(MethodDesc typicalMethodDef, RuntimeDeterminedType rdType) 83public MethodDesc TypicalMethodDef 133public MethodDesc GetMethodForRuntimeDeterminedType(MethodDesc typicalMethodDef, RuntimeDeterminedType rdType)
parent\parent\Common\TypeSystem\Sorting\ArrayType.Sorting.cs (1)
26protected internal override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
parent\parent\Common\TypeSystem\Sorting\InstantiatedMethod.Sorting.cs (1)
11protected internal override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
parent\parent\Common\TypeSystem\Sorting\MethodDesc.Sorting.cs (1)
20protected internal abstract int CompareToImpl(MethodDesc other, TypeSystemComparer comparer);
parent\parent\Common\TypeSystem\Sorting\MethodForInstantiatedType.Sorting.cs (1)
11protected internal override int CompareToImpl(MethodDesc other, TypeSystemComparer comparer)
parent\parent\Common\TypeSystem\Sorting\TypeSystemComparer.cs (3)
28public class TypeSystemComparer : IComparer<TypeDesc>, IComparer<MethodDesc>, IComparer<FieldDesc>, IComparer<MethodSignature>, IComparer<ModuleDesc> 73public int Compare(MethodDesc x, MethodDesc y)