JVM IR: remove outdated code in JvmIrCodegenFactory

This commit is contained in:
Alexander Udalov
2020-08-10 20:59:55 +02:00
parent b2d49e9615
commit 624204c7b4
3 changed files with 7 additions and 42 deletions
@@ -254,14 +254,14 @@ public class ClassFileFactory implements OutputFileCollection {
public PackageCodegen forPackage(@NotNull FqName fqName, @NotNull Collection<KtFile> files) {
assert !isDone : "Already done!";
registerSourceFiles(files);
return state.getCodegenFactory().createPackageCodegen(state, files, fqName);
return new PackageCodegenImpl(state, files, fqName);
}
@NotNull
public MultifileClassCodegen forMultifileClass(@NotNull FqName facadeFqName, @NotNull Collection<KtFile> files) {
assert !isDone : "Already done!";
registerSourceFiles(files);
return state.getCodegenFactory().createMultifileClassCodegen(state, files, facadeFqName);
return new MultifileClassCodegenImpl(state, files, facadeFqName);
}
private void registerSourceFiles(Collection<KtFile> files) {
@@ -26,10 +26,6 @@ import org.jetbrains.kotlin.psi.KtFile
interface CodegenFactory {
fun generateModule(state: GenerationState, files: Collection<KtFile>)
fun createPackageCodegen(state: GenerationState, files: Collection<KtFile>, fqName: FqName): PackageCodegen
fun createMultifileClassCodegen(state: GenerationState, files: Collection<KtFile>, fqName: FqName): MultifileClassCodegen
companion object {
fun doCheckCancelled(state: GenerationState) {
if (state.classBuilderMode.generateBodies) {
@@ -49,8 +45,7 @@ object DefaultCodegenFactory : CodegenFactory {
if (fileClassInfo.withJvmMultifileClass) {
filesInMultifileClasses.putValue(fileClassInfo.facadeClassFqName, file)
}
else {
} else {
filesInPackages.putValue(file.packageFqName, file)
}
}
@@ -68,23 +63,17 @@ object DefaultCodegenFactory : CodegenFactory {
}
}
override fun createPackageCodegen(state: GenerationState, files: Collection<KtFile>, fqName: FqName) =
PackageCodegenImpl(state, files, fqName)
override fun createMultifileClassCodegen(state: GenerationState, files: Collection<KtFile>, fqName: FqName) =
MultifileClassCodegenImpl(state, files, fqName)
private fun generateMultifileClass(state: GenerationState, multifileClassFqName: FqName, files: Collection<KtFile>) {
state.factory.forMultifileClass(multifileClassFqName, files).generate()
}
fun generatePackage(
state: GenerationState,
packageFqName: FqName,
jetFiles: Collection<KtFile>
state: GenerationState,
packageFqName: FqName,
ktFiles: Collection<KtFile>
) {
// We do not really generate package class, but use old package fqName to identify package in module-info.
//FqName packageClassFqName = PackageClassUtils.getPackageClassFqName(packageFqName);
state.factory.forPackage(packageFqName, jetFiles).generate()
state.factory.forPackage(packageFqName, ktFiles).generate()
}
}
@@ -18,21 +18,15 @@ package org.jetbrains.kotlin.backend.jvm
import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig
import org.jetbrains.kotlin.codegen.CodegenFactory
import org.jetbrains.kotlin.codegen.MultifileClassCodegen
import org.jetbrains.kotlin.codegen.PackageCodegen
import org.jetbrains.kotlin.codegen.PackageCodegenImpl
import org.jetbrains.kotlin.codegen.state.GenerationState
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
import org.jetbrains.kotlin.ir.descriptors.IrFunctionFactory
import org.jetbrains.kotlin.ir.util.SymbolTable
import org.jetbrains.kotlin.ir.util.generateTypicalIrProviderList
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.psi2ir.PsiSourceManager
class JvmIrCodegenFactory(private val phaseConfig: PhaseConfig) : CodegenFactory {
override fun generateModule(state: GenerationState, files: Collection<KtFile>) {
JvmBackendFacade.doGenerateFiles(files, state, phaseConfig)
}
@@ -54,22 +48,4 @@ class JvmIrCodegenFactory(private val phaseConfig: PhaseConfig) : CodegenFactory
state, irModuleFragment, symbolTable, sourceManager, phaseConfig, irProviders, extensions, serializerFactory
)
}
override fun createPackageCodegen(state: GenerationState, files: Collection<KtFile>, fqName: FqName): PackageCodegen {
val impl = PackageCodegenImpl(state, files, fqName)
return object : PackageCodegen {
override fun generate() {
JvmBackendFacade.doGenerateFiles(files, state, phaseConfig)
}
override fun getPackageFragment(): PackageFragmentDescriptor {
return impl.packageFragment
}
}
}
override fun createMultifileClassCodegen(state: GenerationState, files: Collection<KtFile>, fqName: FqName): MultifileClassCodegen {
TODO()
}
}