diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalIT.kt index d854bd12b29..d1e1bf05f8d 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalIT.kt @@ -160,7 +160,9 @@ abstract class KaptIncrementalBaseIT(val shouldUseStubs: Boolean, val useKapt3: assertFileExists("$kapt3IncDataPath/bar/B.class") assertFileExists("$kapt3IncDataPath/bar/UseBKt.class") assertFileExists("$kapt3StubsPath/bar/B.java") + assertFileExists("$kapt3StubsPath/bar/B.kapt_metadata") assertFileExists("$kapt3StubsPath/bar/UseBKt.java") + assertFileExists("$kapt3StubsPath/bar/UseBKt.kapt_metadata") } } @@ -176,7 +178,9 @@ abstract class KaptIncrementalBaseIT(val shouldUseStubs: Boolean, val useKapt3: assertNoSuchFile("$kapt3IncDataPath/bar/B.class") assertNoSuchFile("$kapt3IncDataPath/bar/UseBKt.class") assertNoSuchFile("$kapt3StubsPath/bar/B.java") + assertNoSuchFile("$kapt3StubsPath/bar/B.kaptMetadata") assertNoSuchFile("$kapt3StubsPath/bar/UseBKt.java") + assertNoSuchFile("$kapt3StubsPath/bar/UseBKt.kaptMetadata") } } diff --git a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/Kapt3Extension.kt b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/Kapt3Extension.kt index f9aa5643197..4a832989c9e 100644 --- a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/Kapt3Extension.kt +++ b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/Kapt3Extension.kt @@ -40,6 +40,8 @@ import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.kapt3.AptMode.* import org.jetbrains.kotlin.kapt3.diagnostic.KaptError import org.jetbrains.kotlin.kapt3.stubs.ClassFileToSourceStubConverter +import org.jetbrains.kotlin.kapt3.stubs.ClassFileToSourceStubConverter.KaptStub +import org.jetbrains.kotlin.kapt3.stubs.KaptLineMappingCollector.Companion.KAPT_METADATA_EXTENSION import org.jetbrains.kotlin.kapt3.util.KaptLogger import org.jetbrains.kotlin.kapt3.util.getPackageNameJava9Aware import org.jetbrains.kotlin.modules.TargetId @@ -263,14 +265,14 @@ abstract class AbstractKapt3Extension( private fun generateKotlinSourceStubs(kaptContext: KaptContext) { val converter = ClassFileToSourceStubConverter(kaptContext, generateNonExistentClass = true, correctErrorTypes = correctErrorTypes) - val (stubGenerationTime, kotlinSourceStubs) = measureTimeMillis { + val (stubGenerationTime, kaptStubs) = measureTimeMillis { converter.convert() } logger.info { "Java stub generation took $stubGenerationTime ms" } - logger.info { "Stubs for Kotlin classes: " + kotlinSourceStubs.joinToString { it.sourcefile.name } } + logger.info { "Stubs for Kotlin classes: " + kaptStubs.joinToString { it.file.sourcefile.name } } - saveStubs(kaptContext, kotlinSourceStubs) + saveStubs(kaptContext, kaptStubs) saveIncrementalData(kaptContext, logger.messageCollector, converter) } @@ -283,14 +285,19 @@ abstract class AbstractKapt3Extension( return javaFilesFromJavaSourceRoots } - protected open fun saveStubs(kaptContext: KaptContext<*>, stubs: JavacList) { - for (stub in stubs) { + protected open fun saveStubs(kaptContext: KaptContext<*>, stubs: List) { + for (kaptStub in stubs) { + val stub = kaptStub.file val className = (stub.defs.first { it is JCTree.JCClassDecl } as JCTree.JCClassDecl).simpleName.toString() val packageName = stub.getPackageNameJava9Aware()?.toString() ?: "" val packageDir = if (packageName.isEmpty()) stubsOutputDir else File(stubsOutputDir, packageName.replace('.', '/')) packageDir.mkdirs() - File(packageDir, className + ".java").writeText(stub.prettyPrint(kaptContext.context)) + + val sourceFile = File(packageDir, className + ".java") + sourceFile.writeText(stub.prettyPrint(kaptContext.context)) + + kaptStub.writeMetadataIfNeeded(forSource = sourceFile) } } @@ -307,8 +314,12 @@ abstract class AbstractKapt3Extension( val stubFileObject = converter.bindings[file.relativePath.substringBeforeLast(".class", missingDelimiterValue = "")] if (stubFileObject != null) { val stubFile = File(stubsOutputDir, stubFileObject.name) - if (stubFile.exists()) { - messageCollector.report(OUTPUT, OutputMessageUtil.formatOutputMessage(sources, stubFile)) + val lineMappingsFile = File(stubFile.parentFile, stubFile.nameWithoutExtension + KAPT_METADATA_EXTENSION) + + for (file in listOf(stubFile, lineMappingsFile)) { + if (file.exists()) { + messageCollector.report(OUTPUT, OutputMessageUtil.formatOutputMessage(sources, file)) + } } } diff --git a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/javac/KaptJavaFileObject.kt b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/javac/KaptJavaFileObject.kt index 846c085661c..16f5c80432c 100644 --- a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/javac/KaptJavaFileObject.kt +++ b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/javac/KaptJavaFileObject.kt @@ -18,6 +18,7 @@ package org.jetbrains.kotlin.kapt3.javac import com.sun.tools.javac.tree.JCTree import org.jetbrains.kotlin.kapt3.util.getPackageNameJava9Aware +import java.io.File import java.net.URI import java.net.URL import javax.lang.model.element.Modifier @@ -27,6 +28,7 @@ import javax.tools.JavaFileObject class KaptJavaFileObject( val compilationUnit: JCTree.JCCompilationUnit, val clazz: JCTree.JCClassDecl, + val file: File? = null, val timestamp: Long = System.currentTimeMillis() ) : JavaFileObject { override fun toString() = "${javaClass.simpleName}[$name]" @@ -60,7 +62,7 @@ class KaptJavaFileObject( override fun getNestingKind() = NestingKind.TOP_LEVEL - override fun toUri(): URI? = URL(name).toURI() + override fun toUri(): URI? = file?.toURI() override fun openReader(ignoreEncodingErrors: Boolean) = getCharContent(ignoreEncodingErrors).reader() diff --git a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/ClassFileToSourceStubConverter.kt b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/ClassFileToSourceStubConverter.kt index 1773dde398e..ac39d5cb2d5 100644 --- a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/ClassFileToSourceStubConverter.kt +++ b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/ClassFileToSourceStubConverter.kt @@ -48,6 +48,7 @@ import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.org.objectweb.asm.Opcodes import org.jetbrains.org.objectweb.asm.Type import org.jetbrains.org.objectweb.asm.tree.* +import java.io.File import javax.lang.model.element.ElementKind import com.sun.tools.javac.util.List as JavacList @@ -102,14 +103,14 @@ class ClassFileToSourceStubConverter( private var done = false - fun convert(): JavacList { + fun convert(): List { if (done) error(ClassFileToSourceStubConverter::class.java.simpleName + " can convert classes only once") done = true - var stubs = mapJList(kaptContext.compiledClasses) { convertTopLevelClass(it) } + val stubs = kaptContext.compiledClasses.mapNotNullTo(mutableListOf()) { convertTopLevelClass(it) } if (generateNonExistentClass) { - stubs = stubs.append(generateNonExistentClass()) + stubs += KaptStub(generateNonExistentClass()) } return stubs @@ -132,7 +133,22 @@ class ClassFileToSourceStubConverter( return topLevel } - private fun convertTopLevelClass(clazz: ClassNode): JCCompilationUnit? { + class KaptStub(val file: JCCompilationUnit, val kaptMetadata: ByteArray? = null) { + fun writeMetadataIfNeeded(forSource: File) { + if (kaptMetadata == null) { + return + } + + val metadataFile = File( + forSource.parentFile, + forSource.nameWithoutExtension + KaptLineMappingCollector.KAPT_METADATA_EXTENSION + ) + + metadataFile.writeBytes(kaptMetadata) + } + } + + private fun convertTopLevelClass(clazz: ClassNode): KaptStub? { val origin = kaptContext.origins[clazz] ?: return null val ktFile = origin.element?.containingFile as? KtFile ?: return null val descriptor = origin.descriptor ?: return null @@ -166,9 +182,7 @@ class ClassFileToSourceStubConverter( _bindings[clazz.name] = this } - kdocCommentKeeper.saveComment(topLevel, lineMappings.getClassMetadataCommentText()) - - return topLevel + return KaptStub(topLevel, lineMappings.serialize()) } private fun convertImports(file: KtFile, classDeclaration: JCClassDecl): JavacList { diff --git a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/KaptLineMappingCollector.kt b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/KaptLineMappingCollector.kt index 5307c778ca1..1650be6a74e 100644 --- a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/KaptLineMappingCollector.kt +++ b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/KaptLineMappingCollector.kt @@ -18,11 +18,9 @@ package org.jetbrains.kotlin.kapt3.stubs import com.intellij.psi.PsiElement import com.intellij.psi.PsiFile -import com.sun.tools.javac.parser.Tokens import com.sun.tools.javac.tree.JCTree import org.jetbrains.kotlin.diagnostics.DiagnosticUtils import org.jetbrains.kotlin.kapt3.KaptContext -import org.jetbrains.kotlin.kapt3.util.isJava9OrLater import org.jetbrains.org.objectweb.asm.tree.ClassNode import org.jetbrains.org.objectweb.asm.tree.FieldNode import org.jetbrains.org.objectweb.asm.tree.MethodNode @@ -35,33 +33,34 @@ private typealias LineInfoMap = MutableMap class KaptLineMappingCollector(private val kaptContext: KaptContext<*>) { companion object { - private val METADATA_COMMENT_PREFIX = "@KaptMetadata " + const val KAPT_METADATA_EXTENSION = ".kapt_metadata" + private const val METADATA_VERSION = 1 fun parseFileInfo(file: JCTree.JCCompilationUnit): FileInfo { - fun getCommentTree(): Tokens.Comment? { - if (isJava9OrLater) { - val packageElement = JCTree.JCCompilationUnit::class.java.getDeclaredMethod("getPackage").invoke(file) as JCTree? - if (packageElement != null) { - file.docComments.getComment(packageElement)?.let { return it } - } - } + val sourceUri = file.sourcefile + ?.toUri() + ?.takeIf { it.isAbsolute && !it.isOpaque && it.path != null && it.scheme?.toLowerCase() == "file" } ?: return FileInfo.EMPTY - return file.docComments.getComment(file) + val sourceFile = File(sourceUri).takeIf { it.exists() } ?: return FileInfo.EMPTY + val kaptMetadataFile = File(sourceFile.parentFile, sourceFile.nameWithoutExtension + KAPT_METADATA_EXTENSION) + + if (!kaptMetadataFile.isFile) { + return FileInfo.EMPTY } - val comment = getCommentTree()?.text?.trim() - ?.takeIf { it.startsWith(METADATA_COMMENT_PREFIX) } - ?.drop(METADATA_COMMENT_PREFIX.length) - ?: return FileInfo.EMPTY - - return FileInfo.parse(comment) + return deserialize(kaptMetadataFile.readBytes()) } - private fun deserializeMetadata(data: String): Pair> { + private fun deserialize(data: ByteArray): FileInfo { val lineInfo: LineInfoMap = mutableMapOf() val signatureInfo = mutableMapOf() - val ois = ObjectInputStream(ByteArrayInputStream(Base64.getDecoder().decode(data))) + val ois = ObjectInputStream(ByteArrayInputStream(data)) + + val version = ois.readInt() + if (version != METADATA_VERSION) { + return FileInfo.EMPTY + } val lineInfoCount = ois.readInt() repeat(lineInfoCount) { @@ -82,7 +81,7 @@ class KaptLineMappingCollector(private val kaptContext: KaptContext<*>) { signatureInfo[javacSignature] = methodDesc } - return Pair(lineInfo, signatureInfo) + return FileInfo(lineInfo, signatureInfo) } private fun getJavacSignature(decl: JCTree.JCMethodDecl): String { @@ -146,10 +145,12 @@ class KaptLineMappingCollector(private val kaptContext: KaptContext<*>) { } } - fun getClassMetadataCommentText(): String { + fun serialize(): ByteArray { val os = ByteArrayOutputStream() val oos = ObjectOutputStream(os) + oos.writeInt(METADATA_VERSION) + oos.writeInt(lineInfo.size) for ((fqName, kotlinPosition) in lineInfo) { oos.writeUTF(fqName) @@ -166,17 +167,12 @@ class KaptLineMappingCollector(private val kaptContext: KaptContext<*>) { } oos.flush() - return METADATA_COMMENT_PREFIX + Base64.getEncoder().encodeToString(os.toByteArray()) + return os.toByteArray() } class FileInfo(private val lineInfo: LineInfoMap, private val signatureInfo: Map) { companion object { val EMPTY = FileInfo(mutableMapOf(), emptyMap()) - - fun parse(comment: String): FileInfo { - val (lineInfo, signatureInfo) = deserializeMetadata(comment) - return FileInfo(lineInfo, signatureInfo) - } } fun getPositionFor(fqName: String) = lineInfo[fqName] diff --git a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/AbstractKotlinKapt3IntegrationTest.kt b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/AbstractKotlinKapt3IntegrationTest.kt index f2d7c8a63b1..0497693a9c9 100644 --- a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/AbstractKotlinKapt3IntegrationTest.kt +++ b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/AbstractKotlinKapt3IntegrationTest.kt @@ -30,6 +30,7 @@ import org.jetbrains.kotlin.kapt3.prettyPrint import org.jetbrains.kotlin.kapt3.KaptContext import org.jetbrains.kotlin.kapt3.javac.KaptJavaFileObject import org.jetbrains.kotlin.kapt3.stubs.ClassFileToSourceStubConverter +import org.jetbrains.kotlin.kapt3.stubs.ClassFileToSourceStubConverter.KaptStub import org.jetbrains.kotlin.kapt3.util.KaptLogger import org.jetbrains.kotlin.resolve.jvm.extensions.AnalysisHandlerExtension import org.jetbrains.kotlin.test.ConfigurationKind @@ -171,13 +172,13 @@ abstract class AbstractKotlinKapt3IntegrationTest : CodegenTestCase() { override fun loadProcessors() = processors - override fun saveStubs(kaptContext: KaptContext<*>, stubs: JavacList) { + override fun saveStubs(kaptContext: KaptContext<*>, stubs: List) { if (this.savedStubs != null) { error("Stubs are already saved") } this.savedStubs = stubs - .map { it.prettyPrint(kaptContext.context) } + .map { it.file.prettyPrint(kaptContext.context) } .sorted() .joinToString(AbstractKotlinKapt3Test.FILE_SEPARATOR) diff --git a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/AbstractKotlinKapt3Test.kt b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/AbstractKotlinKapt3Test.kt index 7c46e45a0f2..94d02a0f10e 100644 --- a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/AbstractKotlinKapt3Test.kt +++ b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/AbstractKotlinKapt3Test.kt @@ -116,8 +116,12 @@ abstract class AbstractKotlinKapt3Test : CodegenTestCase() { ): JavacList { val converter = ClassFileToSourceStubConverter(kaptContext, generateNonExistentClass, correctErrorTypes) - val convertedTrees = converter.convert() - val convertedFiles = convertedTrees.map { tree -> createTempFile("stub", ".java", tree.prettyPrint(kaptContext.context)) } + val kaptStubs = converter.convert() + val convertedFiles = kaptStubs.map { stub -> + val sourceFile = createTempFile("stub", ".java", stub.file.prettyPrint(kaptContext.context)) + stub.writeMetadataIfNeeded(forSource = sourceFile) + sourceFile + } val allJavaFiles = javaFiles + convertedFiles @@ -129,10 +133,12 @@ abstract class AbstractKotlinKapt3Test : CodegenTestCase() { try { val parsedJavaFiles = kaptContext.parseJavaFiles(allJavaFiles) - for (file in parsedJavaFiles) { + for (tree in parsedJavaFiles) { + val actualFile = File(tree.sourceFile.toUri()) + // By default, JavaFileObject.getName() returns the absolute path to the file. // In our test, such a path will be temporary, so the comparision against it will lead to flaky tests. - file.sourcefile = KaptJavaFileObject(file, file.defs.firstIsInstance()) + tree.sourcefile = KaptJavaFileObject(tree, tree.defs.firstIsInstance(), actualFile) } return parsedJavaFiles @@ -160,13 +166,11 @@ open class AbstractClassFileToSourceStubConverterTest : AbstractKotlinKapt3Test( companion object { private val KOTLIN_METADATA_GROUP = "[a-z0-9]+ = (\\{.+?\\}|[0-9]+)" private val KOTLIN_METADATA_REGEX = "@kotlin\\.Metadata\\(($KOTLIN_METADATA_GROUP)(, $KOTLIN_METADATA_GROUP)*\\)".toRegex() - private val KAPT_METADATA_REGEX = "\\* @KaptMetadata .+".toRegex() private val EXPECTED_ERROR = "EXPECTED_ERROR" internal fun removeMetadataAnnotationContents(s: String): String { return s.replace(KOTLIN_METADATA_REGEX, "@kotlin.Metadata()") - .replace(KAPT_METADATA_REGEX, "* @KaptMetadata") } @JvmStatic diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/abstractEnum.txt b/plugins/kapt3/kapt3-compiler/testData/converter/abstractEnum.txt index c1775642888..3424181a8cf 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/abstractEnum.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/abstractEnum.txt @@ -1,7 +1,3 @@ -/** - * @KaptMetadata - */ - import java.lang.System; @kotlin.Metadata() @@ -37,9 +33,6 @@ public enum E { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; @@ -60,9 +53,6 @@ public enum E2 { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; @@ -85,9 +75,6 @@ public enum E3 { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/abstractMethods.txt b/plugins/kapt3/kapt3-compiler/testData/converter/abstractMethods.txt index 2c500c5a48c..d7a55aa13d2 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/abstractMethods.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/abstractMethods.txt @@ -1,7 +1,3 @@ -/** - * @KaptMetadata - */ - import java.lang.System; @kotlin.Metadata() @@ -20,9 +16,6 @@ public abstract class Base { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/aliasedImports.txt b/plugins/kapt3/kapt3-compiler/testData/converter/aliasedImports.txt index 6d06a7bd7d9..e048231e1db 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/aliasedImports.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/aliasedImports.txt @@ -1,7 +1,3 @@ -/** - * @KaptMetadata - */ - import java.util.Date; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit.MICROSECONDS; @@ -91,9 +87,6 @@ public final class Test { //////////////////// -/** - * @KaptMetadata - */ import java.util.Date; import java.util.concurrent.TimeUnit; diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/annotations.txt b/plugins/kapt3/kapt3-compiler/testData/converter/annotations.txt index 4357688f63a..a4998fe463d 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/annotations.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/annotations.txt @@ -1,7 +1,3 @@ -/** - * @KaptMetadata - */ - import java.lang.System; @kotlin.Metadata() @@ -11,9 +7,6 @@ public abstract @interface Anno1 { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; @@ -42,9 +35,6 @@ public abstract @interface Anno2 { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; @@ -57,9 +47,6 @@ public abstract @interface Anno3 { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; @@ -74,9 +61,6 @@ public enum Colors { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; @@ -92,9 +76,6 @@ public enum Enum1 { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; @@ -111,9 +92,6 @@ public final class TestAnno { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/annotations2.txt b/plugins/kapt3/kapt3-compiler/testData/converter/annotations2.txt index d08279fab6b..fbe7ceb4380 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/annotations2.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/annotations2.txt @@ -1,6 +1,3 @@ -/** - * @KaptMetadata - */ package test; import java.lang.System; @@ -15,9 +12,6 @@ public abstract @interface Anno { //////////////////// -/** - * @KaptMetadata - */ package test; import java.lang.System; @@ -48,9 +42,6 @@ public final class AnnotationsTest { //////////////////// -/** - * @KaptMetadata - */ package test; import java.lang.System; @@ -76,9 +67,6 @@ public enum Enum { //////////////////// -/** - * @KaptMetadata - */ package test; import java.lang.System; diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/comments.txt b/plugins/kapt3/kapt3-compiler/testData/converter/comments.txt index c05f09ffbf5..5b4de600fa2 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/comments.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/comments.txt @@ -1,7 +1,3 @@ -/** - * @KaptMetadata - */ - import java.lang.System; @kotlin.Metadata() @@ -13,9 +9,6 @@ public abstract @interface Anno { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; @@ -33,9 +26,6 @@ public final class Obj { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; @@ -112,9 +102,6 @@ public final class Test { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; @@ -141,9 +128,6 @@ public final class Test2 { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; @@ -168,9 +152,6 @@ public final class Test3 { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/dataClass.txt b/plugins/kapt3/kapt3-compiler/testData/converter/dataClass.txt index 11e7cf333c6..ae4fff7c02e 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/dataClass.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/dataClass.txt @@ -1,7 +1,3 @@ -/** - * @KaptMetadata - */ - import java.lang.System; @kotlin.Metadata() diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/defaultImpls.txt b/plugins/kapt3/kapt3-compiler/testData/converter/defaultImpls.txt index e0b12e93829..7d77c0ee665 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/defaultImpls.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/defaultImpls.txt @@ -1,7 +1,3 @@ -/** - * @KaptMetadata - */ - import java.lang.System; @kotlin.Metadata() @@ -40,9 +36,6 @@ public abstract interface Intf { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; @@ -65,9 +58,6 @@ public abstract interface IntfWithDefaultImpls { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/enums.txt b/plugins/kapt3/kapt3-compiler/testData/converter/enums.txt index 4fc5f950dae..c077635ecb6 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/enums.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/enums.txt @@ -1,7 +1,3 @@ -/** - * @KaptMetadata - */ - import java.lang.System; @kotlin.Metadata() @@ -13,9 +9,6 @@ public abstract @interface Anno1 { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; @@ -30,9 +23,6 @@ public enum Enum1 { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/errorLocationMapping.kt b/plugins/kapt3/kapt3-compiler/testData/converter/errorLocationMapping.kt index af0fd138489..00b737ab144 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/errorLocationMapping.kt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/errorLocationMapping.kt @@ -1,21 +1,21 @@ // CORRECT_ERROR_TYPES -// EXPECTED_ERROR(12;12) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (33, 5)) -// EXPECTED_ERROR(12;19) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (26, 50)) -// EXPECTED_ERROR(14;12) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (34, 5)) -// EXPECTED_ERROR(14;34) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (26, 62)) -// EXPECTED_ERROR(22;18) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (26, 50)) -// EXPECTED_ERROR(26;18) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (33, 5)) -// EXPECTED_ERROR(27;33) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (26, 62)) -// EXPECTED_ERROR(31;5) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (33, 5)) -// EXPECTED_ERROR(33;5) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (26, 34)) -// EXPECTED_ERROR(34;30) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (26, 34)) -// EXPECTED_ERROR(35;18) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (34, 5)) -// EXPECTED_ERROR(40;5) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (34, 5)) -// EXPECTED_ERROR(48;5) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (37, 5)) -// EXPECTED_ERROR(53;5) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (39, 5)) -// EXPECTED_ERROR(63;18) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (42, 5)) -// EXPECTED_ERROR(8;11) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (23, 1)) +// EXPECTED_ERROR(11;12) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (34, 5)) +// EXPECTED_ERROR(11;34) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (26, 62)) +// EXPECTED_ERROR(19;18) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (26, 50)) +// EXPECTED_ERROR(23;18) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (33, 5)) +// EXPECTED_ERROR(24;33) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (26, 62)) +// EXPECTED_ERROR(28;5) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (33, 5)) +// EXPECTED_ERROR(30;5) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (26, 34)) +// EXPECTED_ERROR(31;30) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (26, 34)) +// EXPECTED_ERROR(32;18) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (34, 5)) +// EXPECTED_ERROR(37;5) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (34, 5)) +// EXPECTED_ERROR(45;5) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (37, 5)) +// EXPECTED_ERROR(50;5) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (39, 5)) +// EXPECTED_ERROR(5;11) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (23, 1)) +// EXPECTED_ERROR(60;18) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (42, 5)) +// EXPECTED_ERROR(9;12) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (33, 5)) +// EXPECTED_ERROR(9;19) cannot find symbol (Kotlin location: /errorLocationMapping.kt: (26, 50)) @file:Suppress("UNRESOLVED_REFERENCE", "ANNOTATION_PARAMETER_MUST_BE_CONST", "NON_CONST_VAL_USED_IN_CONSTANT_EXPRESSION") import kotlin.reflect.KClass diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/errorLocationMapping.txt b/plugins/kapt3/kapt3-compiler/testData/converter/errorLocationMapping.txt index 691452b1e59..8a43634c117 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/errorLocationMapping.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/errorLocationMapping.txt @@ -1,7 +1,3 @@ -/** - * @KaptMetadata - */ - import kotlin.reflect.KClass; @kotlin.Metadata() @@ -13,9 +9,6 @@ public abstract @interface Anno { //////////////////// -/** - * @KaptMetadata - */ import kotlin.reflect.KClass; @@ -30,9 +23,6 @@ public final class ErrorInAnnotation { //////////////////// -/** - * @KaptMetadata - */ import kotlin.reflect.KClass; @@ -70,9 +60,6 @@ public final class ErrorInConstructorParameter { //////////////////// -/** - * @KaptMetadata - */ import kotlin.reflect.KClass; @@ -143,9 +130,6 @@ public final class ErrorInDeclarations { //////////////////// -/** - * @KaptMetadata - */ import kotlin.reflect.KClass; @@ -159,9 +143,6 @@ public final class ErrorInSupertype { //////////////////// -/** - * @KaptMetadata - */ import kotlin.reflect.KClass; diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/fileFacadeJvmName.txt b/plugins/kapt3/kapt3-compiler/testData/converter/fileFacadeJvmName.txt index 4079149057e..0d794c32fab 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/fileFacadeJvmName.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/fileFacadeJvmName.txt @@ -1,6 +1,3 @@ -/** - * @KaptMetadata - */ package a.b.c; import java.lang.System; diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/functions.txt b/plugins/kapt3/kapt3-compiler/testData/converter/functions.txt index e95f11b0838..c3022a4f96c 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/functions.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/functions.txt @@ -1,7 +1,3 @@ -/** - * @KaptMetadata - */ - import java.lang.System; @kotlin.Metadata() diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/genericRawSignatures.txt b/plugins/kapt3/kapt3-compiler/testData/converter/genericRawSignatures.txt index 7de4a6b2bbf..e8a57c8a56a 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/genericRawSignatures.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/genericRawSignatures.txt @@ -1,7 +1,3 @@ -/** - * @KaptMetadata - */ - import java.lang.System; @kotlin.Metadata() diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/genericSimple.txt b/plugins/kapt3/kapt3-compiler/testData/converter/genericSimple.txt index 2175bd4175f..2cc611e3767 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/genericSimple.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/genericSimple.txt @@ -1,7 +1,3 @@ -/** - * @KaptMetadata - */ - import java.lang.System; @kotlin.Metadata() @@ -19,9 +15,6 @@ public abstract interface ABC { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; @@ -35,9 +28,6 @@ public class BaseClass { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; @@ -47,9 +37,6 @@ public abstract interface Intf { //////////////////// -/** - * @KaptMetadata - */ import java.util.Calendar; import kotlin.reflect.KClass; @@ -51,9 +41,6 @@ public final class NonExistentClassTypesConversionKt { //////////////////// -/** - * @KaptMetadata - */ import java.util.Calendar; import kotlin.reflect.KClass; diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/nonExistentClassWIthoutCorrection.txt b/plugins/kapt3/kapt3-compiler/testData/converter/nonExistentClassWIthoutCorrection.txt index 6a601877825..abb2ac9239e 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/nonExistentClassWIthoutCorrection.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/nonExistentClassWIthoutCorrection.txt @@ -1,7 +1,3 @@ -/** - * @KaptMetadata - */ - import java.lang.System; @kotlin.Suppress(names = {"UNRESOLVED_REFERENCE"}) @@ -11,9 +7,6 @@ public final class NonExistentClassWIthoutCorrectionKt { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/primitiveTypes.txt b/plugins/kapt3/kapt3-compiler/testData/converter/primitiveTypes.txt index fe1b7c4b5a9..79a71ee37b8 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/primitiveTypes.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/primitiveTypes.txt @@ -1,7 +1,3 @@ -/** - * @KaptMetadata - */ - import java.lang.System; @kotlin.Metadata() diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/propertyAnnotations.txt b/plugins/kapt3/kapt3-compiler/testData/converter/propertyAnnotations.txt index 5c76506e0b6..ea84001dfe8 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/propertyAnnotations.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/propertyAnnotations.txt @@ -1,7 +1,3 @@ -/** - * @KaptMetadata - */ - import java.lang.System; @kotlin.Metadata() @@ -11,9 +7,6 @@ public abstract @interface Anno { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; @@ -26,9 +19,6 @@ public abstract @interface Anno2 { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/severalPackageParts.txt b/plugins/kapt3/kapt3-compiler/testData/converter/severalPackageParts.txt index 6374d96800b..34b83b5c60e 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/severalPackageParts.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/severalPackageParts.txt @@ -1,6 +1,3 @@ -/** - * @KaptMetadata - */ package test; import java.lang.System; @@ -18,9 +15,6 @@ public final class AKt { //////////////////// -/** - * @KaptMetadata - */ package test; import java.lang.System; diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/strangeIdentifiers.txt b/plugins/kapt3/kapt3-compiler/testData/converter/strangeIdentifiers.txt index 214a4e737b8..ab926912259 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/strangeIdentifiers.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/strangeIdentifiers.txt @@ -1,7 +1,3 @@ -/** - * @KaptMetadata - */ - import java.lang.System; @kotlin.Metadata() @@ -15,9 +11,6 @@ public abstract @interface Anno { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; @@ -39,9 +32,6 @@ public enum StrangeEnum { //////////////////// -/** - * @KaptMetadata - */ import java.lang.System; diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/topLevel.txt b/plugins/kapt3/kapt3-compiler/testData/converter/topLevel.txt index 30928998c97..80af641c135 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/topLevel.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/topLevel.txt @@ -1,6 +1,3 @@ -/** - * @KaptMetadata - */ package test.another; import java.lang.System; @@ -14,9 +11,6 @@ public abstract @interface Anno { //////////////////// -/** - * @KaptMetadata - */ package test.another; import java.lang.System; diff --git a/plugins/kapt3/kapt3-compiler/testData/kotlinRunner/NestedClasses.it.txt b/plugins/kapt3/kapt3-compiler/testData/kotlinRunner/NestedClasses.it.txt index c9c26984d42..9e0119e0cb3 100644 --- a/plugins/kapt3/kapt3-compiler/testData/kotlinRunner/NestedClasses.it.txt +++ b/plugins/kapt3/kapt3-compiler/testData/kotlinRunner/NestedClasses.it.txt @@ -1,6 +1,10 @@ -/** - * @KaptMetadata - */ +package error; + +public final class NonExistentClass { +} + +//////////////////// + package test; import java.lang.System; @@ -12,9 +16,6 @@ public abstract @interface MyAnnotation { //////////////////// -/** - * @KaptMetadata - */ package test; import java.lang.System; @@ -63,10 +64,3 @@ public final class Simple { } } } - -//////////////////// - -package error; - -public final class NonExistentClass { -} diff --git a/plugins/kapt3/kapt3-compiler/testData/kotlinRunner/Overloads.it.txt b/plugins/kapt3/kapt3-compiler/testData/kotlinRunner/Overloads.it.txt index 8e835c28001..9fb0cd3bbc5 100644 --- a/plugins/kapt3/kapt3-compiler/testData/kotlinRunner/Overloads.it.txt +++ b/plugins/kapt3/kapt3-compiler/testData/kotlinRunner/Overloads.it.txt @@ -1,6 +1,10 @@ -/** - * @KaptMetadata - */ +package error; + +public final class NonExistentClass { +} + +//////////////////// + package test; import java.lang.System; @@ -12,9 +16,6 @@ public abstract @interface MyAnnotation { //////////////////// -/** - * @KaptMetadata - */ package test; import java.lang.System; @@ -49,10 +50,3 @@ public final class State { super(); } } - -//////////////////// - -package error; - -public final class NonExistentClass { -} diff --git a/plugins/kapt3/kapt3-compiler/testData/kotlinRunner/Simple.it.txt b/plugins/kapt3/kapt3-compiler/testData/kotlinRunner/Simple.it.txt index f99ee55f340..fcf0b18661b 100644 --- a/plugins/kapt3/kapt3-compiler/testData/kotlinRunner/Simple.it.txt +++ b/plugins/kapt3/kapt3-compiler/testData/kotlinRunner/Simple.it.txt @@ -1,38 +1,10 @@ -/** - * @KaptMetadata - */ -package test; +package error; -import java.lang.System; - -@kotlin.Metadata() -@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) -public abstract @interface MyAnnotation { +public final class NonExistentClass { } //////////////////// -/** - * @KaptMetadata - */ -package test; - -import java.lang.System; - -@kotlin.Metadata() -public enum EnumClass { - /*public static final*/ BLACK /* = new BLACK() */, - /*public static final*/ WHITE /* = new WHITE() */; - - EnumClass() { - } -} - -//////////////////// - -/** - * @KaptMetadata - */ package test; import java.lang.System; @@ -59,9 +31,32 @@ public final class Simple { //////////////////// -/** - * @KaptMetadata - */ +package test; + +import java.lang.System; + +@kotlin.Metadata() +public enum EnumClass { + /*public static final*/ BLACK /* = new BLACK() */, + /*public static final*/ WHITE /* = new WHITE() */; + + EnumClass() { + } +} + +//////////////////// + +package test; + +import java.lang.System; + +@kotlin.Metadata() +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +public abstract @interface MyAnnotation { +} + +//////////////////// + package test; import java.lang.System; @@ -76,10 +71,3 @@ public enum EnumClass2 { java.lang.String blah) { } } - -//////////////////// - -package error; - -public final class NonExistentClass { -}