Почему компилятор Scala дает мне ошибку при передаче закрытого класса Kotlin в конструктор?

У меня запечатанный класс, написанный в Котлине:

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

И еще один класс, который принимает RecordSchema как параметр:

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

В Scala у меня есть класс, который, среди прочего, получает экземпляр RecordSchema а затем создает экземпляр 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 } } 

Компилятор scala завершает печать этого сообщения об ошибке:

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

Если я использую recordSchema с помощью asInstanceOf я получаю другую, не очень полезную ошибку:

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

В целом, я понятия не имею, почему это происходит. Если я сделаю конструктор, возьмем родительский класс как параметр, а не вложенный класс, он просто компилирует (что сейчас является моим обходным решением). Если я делаю то же самое, кроме написания исходного кода в Java, а не в Котлине, эта ошибка не возникает. Я использую Java 1.8, Kotlin 1.0.4, Scala 2.11.8.

ОБНОВИТЬ:

продемонстрировала ошибку здесь: https://github.com/mjburghoffer/scala-kotlin-innerclass-bug/tree/master

Похож, что Котлин генерирует различное количество классов для этого случая. Я скомпилировал источники Java и Kotlin и обнаружил, что Java имеет дополнительный файл ParentSealedJava$1.class . Байткод Parent и Sealed классов в Java и Kotlin довольно одинаковый (я проверяю байт-код с помощью javap -c), поэтому я думаю, что компилятор Scala каким-то образом полагается на этот недостающий файл в Kotlin.