Skip to content

Commit 0ec431e

Browse files
atsushienojonpryor
authored andcommitted
[api-xml-adjuster] Permit <typeParameters> in <constructor> (#134)
api-O.xml.in will have `<typeParameters/>` in `<constructor/>` It is because some types have `Class<T>` as some arguments to the contructor and to resolve that `T` the API describes it.
1 parent e35b03e commit 0ec431e

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

src/Xamarin.Android.Tools.ApiXmlAdjuster/JavaApi.XmlModel.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ protected JavaMethodBase (JavaType parent)
198198

199199
public IList<JavaParameter> Parameters { get; set; }
200200
public IList<JavaException> Exceptions { get; set; }
201+
public JavaTypeParameters TypeParameters { get; set; }
201202

202203
public bool ExtendedBridge { get; set; }
203204
public string ExtendedJniReturn { get; set; }
@@ -246,8 +247,7 @@ public JavaMethod (JavaType parent)
246247
public bool Native { get; set; }
247248
public string Return { get; set; }
248249
public bool Synchronized { get; set; }
249-
public JavaTypeParameters TypeParameters { get; set; }
250-
250+
251251
// Content of this value is not stable.
252252
public override string ToString ()
253253
{
@@ -287,14 +287,14 @@ public JavaTypeParameters (JavaType parent)
287287
TypeParameters = new List<JavaTypeParameter> ();
288288
}
289289

290-
public JavaTypeParameters (JavaMethod parent)
290+
public JavaTypeParameters (JavaMethodBase parent)
291291
{
292292
ParentMethod = parent;
293293
TypeParameters = new List<JavaTypeParameter> ();
294294
}
295295

296296
public JavaType ParentType { get; set; }
297-
public JavaMethod ParentMethod { get; set; }
297+
public JavaMethodBase ParentMethod { get; set; }
298298

299299
public IList<JavaTypeParameter> TypeParameters { get; set; }
300300
}

src/Xamarin.Android.Tools.ApiXmlAdjuster/JavaApiXmlLoaderExtensions.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -237,10 +237,10 @@ static void LoadMethodBase (this JavaMethodBase methodBase, string elementName,
237237
break;
238238
if (reader.NodeType != XmlNodeType.Element)
239239
throw XmlUtil.UnexpectedElementOrContent (elementName, reader, "parameter");
240-
if (method != null && reader.LocalName == "typeParameters") {
241-
var tp = new JavaTypeParameters (method);
240+
if (reader.LocalName == "typeParameters") {
241+
var tp = new JavaTypeParameters (methodBase);
242242
tp.Load (reader);
243-
method.TypeParameters = tp;
243+
methodBase.TypeParameters = tp;
244244
} else if (reader.LocalName == "parameter") {
245245
var p = new JavaParameter (methodBase);
246246
p.Load (reader);

0 commit comments

Comments
 (0)