From 9ef1b0e527818af9b62833b1ccddc6bd32ca9f7f Mon Sep 17 00:00:00 2001 From: Atsushi Eno Date: Fri, 2 Jun 2017 01:10:55 +0900 Subject: [PATCH 1/2] [api-xml-adjuster] constructors could reference generic type parameters. (#147) Constructors had been considered to NOT reference generic type parameters because Java syntax does not allow them. However, its argument types could be java.lang.Class in class-parse output XML (which I guess is because class-parse tries to be as simple-and-stupid as it can be?) and every difficulty is thrown toward api-xml-adjuster. Hence it is corrected here. Note that it was not the first time that generic constructor arguments have been taken care as a valid input (0ec431e). --- .../JavaApiTypeResolverExtensions.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Xamarin.Android.Tools.ApiXmlAdjuster/JavaApiTypeResolverExtensions.cs b/src/Xamarin.Android.Tools.ApiXmlAdjuster/JavaApiTypeResolverExtensions.cs index 65f1ea7c7..060b2b775 100644 --- a/src/Xamarin.Android.Tools.ApiXmlAdjuster/JavaApiTypeResolverExtensions.cs +++ b/src/Xamarin.Android.Tools.ApiXmlAdjuster/JavaApiTypeResolverExtensions.cs @@ -104,23 +104,23 @@ public static void Resolve (this JavaField f) f.ResolvedType = f.GetApi ().Parse (f.TypeGeneric, f.Parent.TypeParameters); } - static void ResolveMethodBase (this JavaMethodBase m, JavaTypeParameters methodTypeParameters) + static void ResolveMethodBase (this JavaMethodBase m) { + if (m.TypeParameters != null) + m.TypeParameters.Resolve (m.GetApi (), m.TypeParameters); foreach (var p in m.Parameters) - p.ResolvedType = m.GetApi ().Parse (p.Type, m.Parent.TypeParameters, methodTypeParameters); + p.ResolvedType = m.GetApi ().Parse (p.Type, m.Parent.TypeParameters, m.TypeParameters); } public static void Resolve (this JavaMethod m) { - if (m.TypeParameters != null) - m.TypeParameters.Resolve (m.GetApi (), m.TypeParameters); - m.ResolveMethodBase (m.TypeParameters); + m.ResolveMethodBase (); m.ResolvedReturnType = m.GetApi ().Parse (m.Return, m.Parent.TypeParameters, m.TypeParameters); } public static void Resolve (this JavaConstructor c) { - c.ResolveMethodBase (null); + c.ResolveMethodBase (); } static void Resolve (this JavaTypeParameters tp, JavaApi api, params JavaTypeParameters [] additionalTypeParameters) From 66a48d6b65def4fb7ebe20d596803ee01a270d4d Mon Sep 17 00:00:00 2001 From: Jonathan Pryor Date: Thu, 1 Jun 2017 13:30:27 -0400 Subject: [PATCH 2/2] Bump to cecil/master/f64903c0 (#148) Preparation for branching. --- external/cecil | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/cecil b/external/cecil index b77420aee..f64903c0e 160000 --- a/external/cecil +++ b/external/cecil @@ -1 +1 @@ -Subproject commit b77420aee444dab2adfb2f7efa4a9a865a4aa9b4 +Subproject commit f64903c0e069224aaac7de243fa0a3b17684b4dd