diff --git a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/javac/KaptJavaLog.kt b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/javac/KaptJavaLog.kt index 7e6130afcce..778563afcc0 100644 --- a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/javac/KaptJavaLog.kt +++ b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/javac/KaptJavaLog.kt @@ -222,13 +222,15 @@ class KaptJavaLog( private val KOTLIN_LOCATION_PREFIX = "Kotlin location: " private val IGNORED_DIAGNOSTICS = setOf( - "compiler.err.name.clash.same.erasure", - "compiler.err.name.clash.same.erasure.no.override", - "compiler.err.name.clash.same.erasure.no.override.1", - "compiler.err.name.clash.same.erasure.no.hide", - "compiler.err.already.defined", - "compiler.err.annotation.type.not.applicable", - "compiler.err.doesnt.exist") + "compiler.err.name.clash.same.erasure", + "compiler.err.name.clash.same.erasure.no.override", + "compiler.err.name.clash.same.erasure.no.override.1", + "compiler.err.name.clash.same.erasure.no.hide", + "compiler.err.already.defined", + "compiler.err.annotation.type.not.applicable", + "compiler.err.doesnt.exist", + "compiler.err.duplicate.annotation.missing.container" + ) internal fun preRegister(kaptContext: KaptContext<*>, messageCollector: MessageCollector, mapDiagnosticLocations: Boolean) { val interceptorData = DiagnosticInterceptorData() diff --git a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/ClassFileToSourceStubConverterTestGenerated.java b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/ClassFileToSourceStubConverterTestGenerated.java index 1792ed70f80..ebb63e8dfce 100644 --- a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/ClassFileToSourceStubConverterTestGenerated.java +++ b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/ClassFileToSourceStubConverterTestGenerated.java @@ -55,6 +55,12 @@ public class ClassFileToSourceStubConverterTestGenerated extends AbstractClassFi doTest(fileName); } + @TestMetadata("annotations3.kt") + public void testAnnotations3() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("plugins/kapt3/kapt3-compiler/testData/converter/annotations3.kt"); + doTest(fileName); + } + @TestMetadata("comments.kt") public void testComments() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("plugins/kapt3/kapt3-compiler/testData/converter/comments.kt"); diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/annotations3.kt b/plugins/kapt3/kapt3-compiler/testData/converter/annotations3.kt new file mode 100644 index 00000000000..2ed7f301b1e --- /dev/null +++ b/plugins/kapt3/kapt3-compiler/testData/converter/annotations3.kt @@ -0,0 +1,18 @@ +// WITH_RUNTIME + +interface Parceler + +@Retention(AnnotationRetention.SOURCE) +@Repeatable +@Target(AnnotationTarget.CLASS, AnnotationTarget.PROPERTY) +annotation class TypeParceler> + +@TypeParceler +@TypeParceler +class Test + +class B +class C + +object BParceler : Parceler +object CParceler : Parceler \ No newline at end of file diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/annotations3.txt b/plugins/kapt3/kapt3-compiler/testData/converter/annotations3.txt new file mode 100644 index 00000000000..2e41ce6fb4b --- /dev/null +++ b/plugins/kapt3/kapt3-compiler/testData/converter/annotations3.txt @@ -0,0 +1,88 @@ +import java.lang.System; + +@kotlin.Metadata() +public final class B { + + public B() { + super(); + } +} + +//////////////////// + + +import java.lang.System; + +@kotlin.Metadata() +public final class BParceler implements Parceler { + public static final BParceler INSTANCE = null; + + private BParceler() { + super(); + } +} + +//////////////////// + + +import java.lang.System; + +@kotlin.Metadata() +public final class C { + + public C() { + super(); + } +} + +//////////////////// + + +import java.lang.System; + +@kotlin.Metadata() +public final class CParceler implements Parceler { + public static final CParceler INSTANCE = null; + + private CParceler() { + super(); + } +} + +//////////////////// + + +import java.lang.System; + +@kotlin.Metadata() +public abstract interface Parceler { +} + +//////////////////// + + +import java.lang.System; + +@TypeParceler() +@TypeParceler() +@kotlin.Metadata() +public final class Test { + + public Test() { + super(); + } +} + +//////////////////// + + +import java.lang.System; + +@kotlin.Metadata() +@java.lang.annotation.Target(value = {java.lang.annotation.ElementType.TYPE}) +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.SOURCE) +@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.PROPERTY}) +@kotlin.annotation.Repeatable() +@kotlin.annotation.Retention(value = kotlin.annotation.AnnotationRetention.SOURCE) +public abstract @interface TypeParceler> extends java.lang.annotation.Annotation { +}