Embeddinator-4000
Embeddinator-4000 copied to clipboard
Java: IList/IDictionary implementation breaks build
In the earlier versions (at least up to 06bc92) Java code compilation passed, but e4k started to break build for any IList or IDictionary implementation. Here is the build log for System.dll binding:
Compiling binding code...
/home/atsushi/Desktop/TextToSpeechPlugin-master/e4k/android/system/system/componentmodel/PropertyDescriptorCollection.java:14: error: PropertyDescriptorCollection is not abstract and does not override abstract method getCount() in ICollection
public class PropertyDescriptorCollection implements mscorlib.system.collections.ICollection, mscorlib.system.collections.IEnumerable, mscorlib.system.collections.IList, mscorlib.system.collections.IDictionary {
^
/home/atsushi/Desktop/TextToSpeechPlugin-master/e4k/android/system/system/componentmodel/AttributeCollection.java:14: error: AttributeCollection is not abstract and does not override abstract method getCount() in ICollection
public class AttributeCollection implements mscorlib.system.collections.ICollection, mscorlib.system.collections.IEnumerable {
^
/home/atsushi/Desktop/TextToSpeechPlugin-master/e4k/android/system/system/componentmodel/StandardValuesCollection.java:14: error: StandardValuesCollection is not abstract and does not override abstract method getCount() in ICollection
public class StandardValuesCollection implements mscorlib.system.collections.ICollection, mscorlib.system.collections.IEnumerable {
^
/home/atsushi/Desktop/TextToSpeechPlugin-master/e4k/android/mscorlib/system/collections/IListImpl.java:14: error: IListImpl is not abstract and does not override abstract method getIsSynchronized() in ICollection
public final class IListImpl implements mscorlib.system.collections.IList {
^
/home/atsushi/Desktop/TextToSpeechPlugin-master/e4k/android/mscorlib/system/collections/IDictionaryImpl.java:14: error: IDictionaryImpl is not abstract and does not override abstract method getIsSynchronized() in ICollection
public final class IDictionaryImpl implements mscorlib.system.collections.IDictionary {
^
<snip>
26 errors
Those classes have getCount_1(), getCount_2() but not for getCount() which is required by the interfaces.
CheckDeclarations.RenameDuplicates()
likely does the related job.
It was not a regression, in that earlier e4k had never generated any member in IEnumerable.java and derivatives.