From b0e97de8a876a48594b65d979f8dfb5c40f6b717 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Mon, 15 Jan 2018 15:31:17 +0900 Subject: [PATCH] Kapt: Move line metadata to .kaptMetadata external files (KT-22386) Placing location table inside .java file triggers annotation processor to run on each line table modification (even when the stub declarations themselves are the same). So we move it to the separate file. --- .../kotlin/gradle/KaptIncrementalIT.kt | 4 ++ .../jetbrains/kotlin/kapt3/Kapt3Extension.kt | 27 +++++--- .../kotlin/kapt3/javac/KaptJavaFileObject.kt | 4 +- .../stubs/ClassFileToSourceStubConverter.kt | 28 ++++++-- .../kapt3/stubs/KaptLineMappingCollector.kt | 50 +++++++------- .../AbstractKotlinKapt3IntegrationTest.kt | 5 +- .../kapt3/test/AbstractKotlinKapt3Test.kt | 16 +++-- .../testData/converter/abstractEnum.txt | 13 ---- .../testData/converter/abstractMethods.txt | 7 -- .../testData/converter/aliasedImports.txt | 7 -- .../testData/converter/annotations.txt | 22 ------ .../testData/converter/annotations2.txt | 12 ---- .../testData/converter/comments.txt | 19 ------ .../testData/converter/dataClass.txt | 4 -- .../testData/converter/defaultImpls.txt | 10 --- .../testData/converter/enums.txt | 10 --- .../converter/errorLocationMapping.kt | 32 ++++----- .../converter/errorLocationMapping.txt | 19 ------ .../testData/converter/fileFacadeJvmName.txt | 3 - .../testData/converter/functions.txt | 4 -- .../converter/genericRawSignatures.txt | 4 -- .../testData/converter/genericSimple.txt | 19 ------ .../testData/converter/ignoredMembers.txt | 4 -- .../converter/importsForErrorTypes.txt | 4 -- .../testData/converter/importsKt22083.kt | 2 +- .../testData/converter/inheritanceSimple.txt | 13 ---- .../innerClassesWithTypeParameters.txt | 10 --- .../testData/converter/invalidFieldName.kt | 2 +- .../testData/converter/invalidFieldName.txt | 7 -- .../converter/javaKeywordsInPackageNames.txt | 6 -- .../testData/converter/jvmOverloads.txt | 7 -- .../testData/converter/jvmStatic.txt | 4 -- .../converter/jvmStaticFieldInParent.txt | 4 -- .../testData/converter/kt14996.txt | 4 -- .../testData/converter/kt14997.txt | 7 -- .../testData/converter/kt14998.txt | 4 -- .../testData/converter/kt15145.txt | 4 -- .../testData/converter/kt17567.txt | 3 - .../testData/converter/kt18377.txt | 4 -- .../testData/converter/kt18682.txt | 7 -- .../testData/converter/kt18791.txt | 9 --- .../testData/converter/kt19700.txt | 6 -- .../testData/converter/kt19750.txt | 6 -- .../testData/converter/mapEntry.txt | 4 -- .../testData/converter/maxErrorCount.kt | 2 +- .../testData/converter/maxErrorCount.txt | 4 -- .../converter/methodParameterNames.txt | 7 -- .../methodPropertySignatureClash.txt | 4 -- .../testData/converter/modifiers.txt | 30 -------- .../testData/converter/multifileClass.txt | 6 -- .../testData/converter/nestedClasses.txt | 13 ---- .../testData/converter/nestedClasses2.txt | 16 ----- .../converter/nestedClassesNonRootPackage.txt | 15 ---- .../testData/converter/nonExistentClass.txt | 4 -- .../nonExistentClassTypesConversion.txt | 13 ---- .../nonExistentClassWIthoutCorrection.txt | 7 -- .../testData/converter/primitiveTypes.txt | 4 -- .../converter/propertyAnnotations.txt | 10 --- .../converter/severalPackageParts.txt | 6 -- .../testData/converter/strangeIdentifiers.txt | 10 --- .../testData/converter/topLevel.txt | 6 -- .../kotlinRunner/NestedClasses.it.txt | 20 ++---- .../testData/kotlinRunner/Overloads.it.txt | 20 ++---- .../testData/kotlinRunner/Simple.it.txt | 68 ++++++++----------- 64 files changed, 144 insertions(+), 561 deletions(-) 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 { -}