Generate classes in MultifileClassCodegen exactly the same as in PackageCodegen

Two known issues with generateNonPartClassDeclarations that was here
before were the fact that we didn't sort sealed classes and its
subclasses which led to NoSuchMethodError (KT-27097), and the fact that
we didn't skip expect classes which led to incorrect duplicate JVM class
name diagnostic (KT-30843)

 #KT-27097 Fixed
 #KT-30843 Fixed
This commit is contained in:
Alexander Udalov
2019-04-05 18:40:28 +02:00
parent c8c630cecb
commit 2f003ef545
11 changed files with 109 additions and 68 deletions
@@ -18,11 +18,9 @@ package org.jetbrains.kotlin.backend.jvm
import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig
import org.jetbrains.kotlin.codegen.*
import org.jetbrains.kotlin.codegen.context.PackageContext
import org.jetbrains.kotlin.codegen.state.GenerationState
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.KtClassOrObject
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.psi2ir.Psi2IrTranslator
@@ -45,10 +43,6 @@ class JvmIrCodegenFactory(private val phaseConfig: PhaseConfig) : CodegenFactory
JvmBackendFacade.doGenerateFiles(files, state, errorHandler, phaseConfig)
}
override fun generateClassOrObject(classOrObject: KtClassOrObject, packagePartContext: PackageContext) {
TODO()
}
override fun getPackageFragment(): PackageFragmentDescriptor {
return impl.packageFragment
}