w/ silver 2181:
The source:
open class DataOrError: NSObject
{
fileprivate(set) open var error: String?
fileprivate(set) open var data: String?
public init(data: String)
{
self.data = data
}
public init(error: String)
{
self.error = error
}
open class func data(_ data: String) -> DataOrError
{
return DataOrError(data: data)
}
open class func error(_ error: String) -> DataOrError
{
return DataOrError(error: error)
}
}
i.e. w/ the init
method overloaded by parameter name:
Generates JVM code with invalid duplicated constructors:
$ javap portableinterop/DataOrError
Compiled from "<snip>/PortableInterop/ModelExtensions/Forms/DataOrError.swift"
public class portableinterop.DataOrError {
public portableinterop.DataOrError(java.lang.String);
public portableinterop.DataOrError(java.lang.String);
public static portableinterop.DataOrError data(java.lang.String);
public static portableinterop.DataOrError error(java.lang.String);
public java.lang.String geterror();
public void seterror(java.lang.String);
public java.lang.String getdata();
public void setdata(java.lang.String);
This class can’t be loaded by the JVM, and causes a crash in the Android Studio 3.0.1 dexer “D8” (reported and fixed for 3.1)