Remove kotlin.jvm.internal.KotlinPackage and corresponding code

Original commit: 8594cfca46
This commit is contained in:
Alexander Udalov
2015-11-20 16:20:05 +03:00
parent 45d6f2394c
commit 77e78e15b9
4 changed files with 19 additions and 30 deletions
@@ -58,7 +58,6 @@ import org.jetbrains.kotlin.jps.JpsKotlinCompilerSettings
import org.jetbrains.kotlin.jps.incremental.*
import org.jetbrains.kotlin.load.kotlin.ModuleMapping
import org.jetbrains.kotlin.load.kotlin.PackageClassUtils
import org.jetbrains.kotlin.load.kotlin.header.isCompatiblePackageFacadeKind
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents
import org.jetbrains.kotlin.modules.TargetId
@@ -421,10 +420,7 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
fun getOldSourceFiles(generatedClass: GeneratedJvmClass, previousMappings: Mappings): Collection<File> {
if (!generatedClass.outputFile.getName().endsWith(PackageClassUtils.PACKAGE_CLASS_NAME_SUFFIX + ".class")) return emptySet()
val kotlinClass = generatedClass.outputClass
if (!kotlinClass.getClassHeader().isCompatiblePackageFacadeKind()) return emptySet()
val classInternalName = JvmClassName.byClassId(kotlinClass.getClassId()).getInternalName()
val classInternalName = JvmClassName.byClassId(generatedClass.outputClass.getClassId()).getInternalName()
val oldClassSources = previousMappings.getClassSources(previousMappings.getName(classInternalName))
if (oldClassSources == null) return emptySet()
@@ -36,7 +36,10 @@ import org.jetbrains.kotlin.jps.build.GeneratedJvmClass
import org.jetbrains.kotlin.jps.build.KotlinBuilder
import org.jetbrains.kotlin.jps.incremental.storage.*
import org.jetbrains.kotlin.load.kotlin.ModuleMapping
import org.jetbrains.kotlin.load.kotlin.header.*
import org.jetbrains.kotlin.load.kotlin.header.isCompatibleClassKind
import org.jetbrains.kotlin.load.kotlin.header.isCompatibleFileFacadeKind
import org.jetbrains.kotlin.load.kotlin.header.isCompatibleMultifileClassKind
import org.jetbrains.kotlin.load.kotlin.header.isCompatibleMultifileClassPartKind
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache
import org.jetbrains.kotlin.load.kotlin.incremental.components.JvmPackagePartProto
import org.jetbrains.kotlin.name.FqName
@@ -165,24 +168,20 @@ public class IncrementalCacheImpl(
val header = kotlinClass.classHeader
val changesInfo = when {
header.isCompatiblePackageFacadeKind() ->
protoMap.process(kotlinClass, isPackage = true)
header.isCompatibleFileFacadeKind() -> {
assert(sourceFiles.size() == 1) { "Package part from several source files: $sourceFiles" }
packagePartMap.addPackagePart(className)
val isPackage = true
protoMap.process(kotlinClass, isPackage) +
protoMap.process(kotlinClass, isPackage = true) +
constantsMap.process(kotlinClass) +
inlineFunctionsMap.process(kotlinClass, isPackage)
inlineFunctionsMap.process(kotlinClass, isPackage = true)
}
header.isCompatibleMultifileClassKind() -> {
val partNames = kotlinClass.classHeader.filePartClassNames?.toList()
?: throw AssertionError("Multifile class has no parts: ${kotlinClass.className}")
multifileClassFacadeMap.add(className, partNames)
// TODO NO_CHANGES? (delegates only, see package facade)
// TODO NO_CHANGES? (delegates only)
constantsMap.process(kotlinClass) +
inlineFunctionsMap.process(kotlinClass, isPackage = true)
}
@@ -191,18 +190,14 @@ public class IncrementalCacheImpl(
packagePartMap.addPackagePart(className)
multifileClassPartMap.add(className.internalName, header.multifileClassName!!)
val isPackage = true
protoMap.process(kotlinClass, isPackage) +
protoMap.process(kotlinClass, isPackage = true) +
constantsMap.process(kotlinClass) +
inlineFunctionsMap.process(kotlinClass, isPackage)
inlineFunctionsMap.process(kotlinClass, isPackage = true)
}
header.isCompatibleClassKind() && !header.isLocalClass -> {
val isPackage = false
protoMap.process(kotlinClass, isPackage) +
protoMap.process(kotlinClass, isPackage = false) +
constantsMap.process(kotlinClass) +
inlineFunctionsMap.process(kotlinClass, isPackage)
inlineFunctionsMap.process(kotlinClass, isPackage = false)
}
else -> CompilationResult.NO_CHANGES
}
@@ -674,7 +669,7 @@ data class CompilationResult(
public val NO_CHANGES: CompilationResult = CompilationResult()
}
public operator fun plus(other: CompilationResult): CompilationResult =
operator fun plus(other: CompilationResult): CompilationResult =
CompilationResult(protoChanged || other.protoChanged,
constantsChanged || other.constantsChanged,
inlineChanged || other.inlineChanged,
@@ -22,7 +22,9 @@ import com.google.common.io.Files
import com.google.protobuf.ExtensionRegistry
import com.intellij.openapi.util.io.FileUtil
import org.jetbrains.kotlin.jps.incremental.LocalFileKotlinClass
import org.jetbrains.kotlin.load.kotlin.header.*
import org.jetbrains.kotlin.load.kotlin.header.isCompatibleClassKind
import org.jetbrains.kotlin.load.kotlin.header.isCompatibleFileFacadeKind
import org.jetbrains.kotlin.load.kotlin.header.isCompatibleMultifileClassPartKind
import org.jetbrains.kotlin.serialization.DebugProtoBuf
import org.jetbrains.kotlin.serialization.jvm.BitEncoding
import org.jetbrains.kotlin.serialization.jvm.DebugJvmProtoBuf
@@ -140,9 +142,7 @@ fun classFileToString(classFile: File): String {
out.write("\n------ string table types proto -----\n${DebugJvmProtoBuf.StringTableTypes.parseDelimitedFrom(input)}")
when {
classHeader!!.isCompatiblePackageFacadeKind() ->
out.write("\n------ package proto -----\n${DebugProtoBuf.Package.parseFrom(input, getExtensionRegistry())}")
classHeader.isCompatibleFileFacadeKind() ->
classHeader!!.isCompatibleFileFacadeKind() ->
out.write("\n------ file facade proto -----\n${DebugProtoBuf.Package.parseFrom(input, getExtensionRegistry())}")
classHeader.isCompatibleClassKind() ->
out.write("\n------ class proto -----\n${DebugProtoBuf.Class.parseFrom(input, getExtensionRegistry())}")
@@ -22,7 +22,6 @@ import org.jetbrains.kotlin.jps.incremental.storage.ProtoMapValue
import org.jetbrains.kotlin.load.kotlin.header.isCompatibleClassKind
import org.jetbrains.kotlin.load.kotlin.header.isCompatibleFileFacadeKind
import org.jetbrains.kotlin.load.kotlin.header.isCompatibleMultifileClassPartKind
import org.jetbrains.kotlin.load.kotlin.header.isCompatiblePackageFacadeKind
import org.jetbrains.kotlin.serialization.jvm.BitEncoding
import org.jetbrains.kotlin.test.KotlinTestUtils
import org.jetbrains.kotlin.test.MockLibraryUtil
@@ -94,16 +93,15 @@ public abstract class AbstractProtoComparisonTest : UsefulTestCase() {
val newProtoBytes = BitEncoding.decodeBytes(newClassHeader.annotationData!!)
val oldProto = ProtoMapValue(
oldClassHeader.isCompatiblePackageFacadeKind() || oldClassHeader.isCompatibleFileFacadeKind() || oldClassHeader.isCompatibleMultifileClassPartKind(),
oldClassHeader.isCompatibleFileFacadeKind() || oldClassHeader.isCompatibleMultifileClassPartKind(),
oldProtoBytes, oldClassHeader.strings!!
)
val newProto = ProtoMapValue(
newClassHeader.isCompatiblePackageFacadeKind() || newClassHeader.isCompatibleFileFacadeKind() || newClassHeader.isCompatibleMultifileClassPartKind(),
newClassHeader.isCompatibleFileFacadeKind() || newClassHeader.isCompatibleMultifileClassPartKind(),
newProtoBytes, newClassHeader.strings!!
)
val diff = when {
newClassHeader.isCompatiblePackageFacadeKind(),
newClassHeader.isCompatibleClassKind(),
newClassHeader.isCompatibleFileFacadeKind(),
newClassHeader.isCompatibleMultifileClassPartKind() ->