From 77e78e15b98359b21bb73988fc6efbff032adb71 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Fri, 20 Nov 2015 16:20:05 +0300 Subject: [PATCH] Remove kotlin.jvm.internal.KotlinPackage and corresponding code Original commit: 8594cfca469a1b02a23f4fae16e57ed9532414da --- .../kotlin/jps/build/KotlinBuilder.kt | 6 +--- .../jps/incremental/IncrementalCacheImpl.kt | 29 ++++++++----------- .../classFilesComparison.kt | 8 ++--- .../AbstractProtoComparisonTest.kt | 6 ++-- 4 files changed, 19 insertions(+), 30 deletions(-) diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt index 640a60dbb86..c9dd9e3bb63 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt @@ -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 { 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() diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCacheImpl.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCacheImpl.kt index 97cc61c98f9..6d6f37a6445 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCacheImpl.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCacheImpl.kt @@ -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, diff --git a/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/classFilesComparison/classFilesComparison.kt b/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/classFilesComparison/classFilesComparison.kt index d9958f56881..388db7f1c42 100644 --- a/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/classFilesComparison/classFilesComparison.kt +++ b/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/classFilesComparison/classFilesComparison.kt @@ -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())}") diff --git a/jps/jps-plugin/test/org/jetbrains/kotlin/jps/incremental/AbstractProtoComparisonTest.kt b/jps/jps-plugin/test/org/jetbrains/kotlin/jps/incremental/AbstractProtoComparisonTest.kt index 5b95c7899f6..d0dca0e7497 100644 --- a/jps/jps-plugin/test/org/jetbrains/kotlin/jps/incremental/AbstractProtoComparisonTest.kt +++ b/jps/jps-plugin/test/org/jetbrains/kotlin/jps/incremental/AbstractProtoComparisonTest.kt @@ -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() ->