diff options
Diffstat (limited to 'Xamarin.Forms.Build.Tasks/MethodReferenceExtensions.cs')
-rw-r--r-- | Xamarin.Forms.Build.Tasks/MethodReferenceExtensions.cs | 30 |
1 files changed, 6 insertions, 24 deletions
diff --git a/Xamarin.Forms.Build.Tasks/MethodReferenceExtensions.cs b/Xamarin.Forms.Build.Tasks/MethodReferenceExtensions.cs index e377a0c6..6240a201 100644 --- a/Xamarin.Forms.Build.Tasks/MethodReferenceExtensions.cs +++ b/Xamarin.Forms.Build.Tasks/MethodReferenceExtensions.cs @@ -6,33 +6,13 @@ namespace Xamarin.Forms.Build.Tasks { static class MethodReferenceExtensions { - [Obsolete] - public static MethodReference MakeGeneric(this MethodReference self, params TypeReference[] arguments) - { - var reference = new MethodReference(self.Name, self.ReturnType) - { - DeclaringType = self.DeclaringType.MakeGenericInstanceType(arguments), - HasThis = self.HasThis, - ExplicitThis = self.ExplicitThis, - CallingConvention = self.CallingConvention - }; - - foreach (var parameter in self.Parameters) - reference.Parameters.Add(new ParameterDefinition(parameter.ParameterType)); - - foreach (var generic_parameter in self.GenericParameters) - reference.GenericParameters.Add(new GenericParameter(generic_parameter.Name, reference)); - - return reference; - } - public static MethodReference ResolveGenericParameters(this MethodReference self, TypeReference declaringTypeRef, ModuleDefinition module) { if (self == null) - throw new ArgumentNullException("self"); + throw new ArgumentNullException(nameof(self)); if (declaringTypeRef == null) - throw new ArgumentNullException("declaringTypeRef"); + throw new ArgumentNullException(nameof(declaringTypeRef)); var reference = new MethodReference(self.Name, self.ReturnType) { @@ -42,8 +22,10 @@ namespace Xamarin.Forms.Build.Tasks CallingConvention = self.CallingConvention }; - foreach (var parameter in self.Parameters) - reference.Parameters.Add(new ParameterDefinition(module.Import(parameter.ParameterType))); + foreach (var parameter in self.Parameters) { + var p = parameter.ParameterType.IsGenericParameter ? parameter.ParameterType : module.Import(parameter.ParameterType); + reference.Parameters.Add(new ParameterDefinition(p)); + } foreach (var generic_parameter in self.GenericParameters) reference.GenericParameters.Add(new GenericParameter(generic_parameter.Name, reference)); |