Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/linker.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/linker/Linker.Dataflow/MethodProxy.cs')
-rw-r--r--src/linker/Linker.Dataflow/MethodProxy.cs24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/linker/Linker.Dataflow/MethodProxy.cs b/src/linker/Linker.Dataflow/MethodProxy.cs
index 6821613c4..421db0a80 100644
--- a/src/linker/Linker.Dataflow/MethodProxy.cs
+++ b/src/linker/Linker.Dataflow/MethodProxy.cs
@@ -22,13 +22,25 @@ namespace ILLink.Shared.TypeSystemProxy
internal partial bool IsDeclaredOnType (string fullTypeName) => Method.IsDeclaredOnType (fullTypeName);
- internal partial bool HasParameters () => Method.HasParameters;
+ internal partial bool HasMetadataParameters () => Method.HasMetadataParameters ();
- internal partial int GetParametersCount () => Method.Parameters.Count;
+ /// <summary>
+ /// Gets the number of entries in the 'Parameters' section of a method's metadata (i.e. excludes the implicit 'this' from the count)
+ /// </summary>
+ internal partial int GetMetadataParametersCount () => Method.GetMetadataParametersCount ();
- internal partial bool HasParameterOfType (int parameterIndex, string fullTypeName) => Method.HasParameterOfType (parameterIndex, fullTypeName);
+ /// <summary>
+ /// Returns the number of parameters that are passed to the method in IL (including the implicit 'this' parameter).
+ /// In pseudocode: <code>method.HasImplicitThis() ? 1 + MetadataParametersCount : MetadataParametersCount;</code>
+ /// </summary>
+ internal partial int GetParametersCount () => Method.GetParametersCount ();
- internal partial string GetParameterDisplayName (int parameterIndex) => Method.Parameters[parameterIndex].Name;
+ /// <summary>
+ /// Use only when iterating over all parameters. When wanting to index, use GetParameters(ParameterIndex)
+ /// </summary>
+ internal partial ParameterProxyEnumerable GetParameters () => Method.GetParameters ();
+
+ internal partial ParameterProxy GetParameter (ParameterIndex index) => Method.GetParameter (index);
internal partial bool HasGenericParameters () => Method.HasGenericParameters;
@@ -49,12 +61,12 @@ namespace ILLink.Shared.TypeSystemProxy
internal partial bool IsStatic () => Method.IsStatic;
+ internal partial bool HasImplicitThis () => Method.HasImplicitThis ();
+
internal partial bool ReturnsVoid () => Method.ReturnsVoid ();
public override string ToString () => Method.ToString ();
- public ReferenceKind ParameterReferenceKind (int index) => Method.HasImplicitThis () ? Method.ParameterReferenceKind (index + 1) : Method.ParameterReferenceKind (index);
-
public bool Equals (MethodProxy other) => Method.Equals (other.Method);
public override bool Equals (object? obj) => obj is MethodProxy other && Equals (other);