¿Por qué el comstackdor de Scala me da un error al pasar una class sellada de Kotlin a un constructor?

Tengo una class sellada, escrita en Kotlin:

sealed class Schema { class RecordSchema(val fields: List<Field>): Schema() class ArraySchema(val elementSchema: Schema): Schema() ... } 

Y otra class que toma RecordSchema como parámetro:

class Enrichment(config: Config, val schema: RecordSchema) { ... }

En Scala tengo una class que, entre otras cosas, obtiene una instancia de RecordSchema y luego crea una instancia de Enrichment .

 object Job { def main(args: Array[String]): Unit = { /// some initializing of resources... and then... val recordSchema = schemas.getSchema(id) // type is Schema.RecordSchema val enrichment = Enrichment(config, recordSchema) // this is where scalac errors out } } 

El comstackdor scala termina imprimiendo este post de error:

 Error:(52, 62) type mismatch; found : com.companyname.enricher.schemas.com.companyname.enricher.schemas.com.companyname.enricher.schemas. requinetworking: com.companyname.enricher.schemas.(some other)com.companyname.enricher.schemas.com.companyname.enricher.schemas. val enrichment = new Enrichment(config, recordSchema) 

Si recordSchema usando asInstanceOf obtengo otro error no tan útil:

 Error:(52, 62) type mismatch; found : com.companyname.enricher.schemas.Schema.RecordSchema requinetworking: com.companyname.enricher.schemas.com.companyname.enricher.schemas. val enrichment = new Enrichment(config, recordSchema.asInstanceOf[RecordSchema]) 

En general, no tengo idea de por qué está sucediendo esto. Si hago que el constructor tome la class padre como un parámetro en lugar de class anidada, se comstack muy bien (que es mi solución por ahora). Si hago el mismo tipo de cosas, excepto que he escrito el código fuente en Java en lugar de Kotlin, este error no ocurre. Estoy usando Java 1.8, Kotlin 1.0.4, Scala 2.11.8.

ACTUALIZAR:

error demostrado aquí: https://github.com/mjburghoffer/scala-kotlin-innerclass-bug/tree/master

Parece que Kotlin genera diferentes classs de classs para este caso. Recopilé las fonts de Java y Kotlin y descubrí que Java tiene el file adicional ParentSealedJava$1.class . El código de bytes de las classs principal y Sealed en Java y Kotlin es muy similar (inspecciono el código de bytes usando javap -c), así que creo que el comstackdor de Scala depende de algún modo de este file perdido en Kotlin.