-
Notifications
You must be signed in to change notification settings - Fork 64
Open
Labels
generatorIssues binding a Java library (generator, class-parse, etc.)Issues binding a Java library (generator, class-parse, etc.)
Description
When the <attr/> element is used to update managedType, the new value should be used to determine if the method that the parameter is one is overrides a base class method or is instead a new virtual method.
See: #586 (comment)
That said, the other problem is that we shouldn't need an <attr/> to update managedType in the first place. This itself is a bug, but I'm less certain how to describe it, other than an issue seemingly related to "contravariant method parameters due to the use of Java generics".
-- original report follows --
Problem
Changing type (java) with managed FQCVlassName works:
<attr path="/api/package[@name='androidx.leanback.preference']/class[@name='LeanbackListPreferenceDialogFragment.AdapterMulti']/method[@name='onBindViewHolder']/parameter[1]" name="type">AndroidX.RecyclerView.Widget.RecyclerView.ViewHolder</attr>
<attr path="/api/package[@name='androidx.leanback.preference']/class[@name='LeanbackListPreferenceDialogFragment.AdapterSingle']/method[@name='onBindViewHolder']/parameter[1]" name="type">AndroidX.RecyclerView.Widget.RecyclerView.ViewHolder</attr>
while changing managedType causes build errors (does not change managed type):
<attr
path="/api/package[@name='androidx.leanback.preference']/class[@name='LeanbackListPreferenceDialogFragment.AdapterMulti']/method[@name='onBindViewHolder']/parameter[1]"
name="managedType"
>
AndroidX.RecyclerView.Widget.RecyclerView.ViewHolder</attr>
<attr
path="/api/package[@name='androidx.leanback.preference']/class[@name='LeanbackListPreferenceDialogFragment.AdapterSingle']/method[@name='onBindViewHolder']/parameter[1]"
name="managedType"
>
AndroidX.RecyclerView.Widget.RecyclerView.ViewHolder
</attr>
Errors:
generated/androidx.leanback.leanback-preference/obj/Debug/monoandroid90/generated/src/AndroidX.Leanback.Preference.LeanbackListPreferenceDialogFragment.cs(24,24):
Error CS0534:
'LeanbackListPreferenceDialogFragment.AdapterMulti'
does not implement inherited abstract member
'RecyclerView.Adapter.OnBindViewHolder(RecyclerView.ViewHolder, int)'
generated/androidx.leanback.leanback-preference/obj/Debug/monoandroid90/generated/src/AndroidX.Leanback.Preference.LeanbackListPreferenceDialogFragment.cs(24,24):
Error CS0534:
'LeanbackListPreferenceDialogFragment.AdapterSingle'
does not implement inherited abstract member
'RecyclerView.Adapter.OnBindViewHolder(RecyclerView.ViewHolder, int)'
References Links
Solution (minimal repro) is zipped/archived in:
api.xml
Metadata
Metadata
Assignees
Labels
generatorIssues binding a Java library (generator, class-parse, etc.)Issues binding a Java library (generator, class-parse, etc.)