Skip to content

Commit 5165fa5

Browse files
atsushienojonpryor
authored andcommitted
[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<T> 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).
1 parent 8e0a766 commit 5165fa5

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,23 +104,23 @@ public static void Resolve (this JavaField f)
104104
f.ResolvedType = f.GetApi ().Parse (f.TypeGeneric, f.Parent.TypeParameters);
105105
}
106106

107-
static void ResolveMethodBase (this JavaMethodBase m, JavaTypeParameters methodTypeParameters)
107+
static void ResolveMethodBase (this JavaMethodBase m)
108108
{
109+
if (m.TypeParameters != null)
110+
m.TypeParameters.Resolve (m.GetApi (), m.TypeParameters);
109111
foreach (var p in m.Parameters)
110-
p.ResolvedType = m.GetApi ().Parse (p.Type, m.Parent.TypeParameters, methodTypeParameters);
112+
p.ResolvedType = m.GetApi ().Parse (p.Type, m.Parent.TypeParameters, m.TypeParameters);
111113
}
112114

113115
public static void Resolve (this JavaMethod m)
114116
{
115-
if (m.TypeParameters != null)
116-
m.TypeParameters.Resolve (m.GetApi (), m.TypeParameters);
117-
m.ResolveMethodBase (m.TypeParameters);
117+
m.ResolveMethodBase ();
118118
m.ResolvedReturnType = m.GetApi ().Parse (m.Return, m.Parent.TypeParameters, m.TypeParameters);
119119
}
120120

121121
public static void Resolve (this JavaConstructor c)
122122
{
123-
c.ResolveMethodBase (null);
123+
c.ResolveMethodBase ();
124124
}
125125

126126
static void Resolve (this JavaTypeParameters tp, JavaApi api, params JavaTypeParameters [] additionalTypeParameters)

0 commit comments

Comments
 (0)