From 3b0e6f33c6b5f94eb37276d4a28a65c90fa61ca1 Mon Sep 17 00:00:00 2001 From: Daniil Ovchinnikov Date: Mon, 8 Jan 2024 13:06:52 +0100 Subject: [PATCH] #163 file annotations should be copied to `ClassBinarySignature`: add reproducer --- .../kotlin/cases/marker/HiddenByJavaAnnotation.java | 8 ++++++++ src/test/kotlin/cases/marker/javaFileAnnotation.kt | 5 +++++ src/test/kotlin/cases/marker/ktFileAnnotation.kt | 5 +++++ src/test/kotlin/cases/marker/marker.kt | 3 +++ src/test/kotlin/cases/marker/marker.txt | 6 ++++++ src/test/kotlin/tests/CasesPublicAPITest.kt | 13 ++++++++++++- 6 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 src/test/kotlin/cases/marker/HiddenByJavaAnnotation.java create mode 100644 src/test/kotlin/cases/marker/javaFileAnnotation.kt create mode 100644 src/test/kotlin/cases/marker/ktFileAnnotation.kt diff --git a/src/test/kotlin/cases/marker/HiddenByJavaAnnotation.java b/src/test/kotlin/cases/marker/HiddenByJavaAnnotation.java new file mode 100644 index 00000000..9024b98d --- /dev/null +++ b/src/test/kotlin/cases/marker/HiddenByJavaAnnotation.java @@ -0,0 +1,8 @@ +package cases.marker; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; + +@Target(ElementType.TYPE) +public @interface HiddenByJavaAnnotation { +} diff --git a/src/test/kotlin/cases/marker/javaFileAnnotation.kt b/src/test/kotlin/cases/marker/javaFileAnnotation.kt new file mode 100644 index 00000000..5d700301 --- /dev/null +++ b/src/test/kotlin/cases/marker/javaFileAnnotation.kt @@ -0,0 +1,5 @@ +@file:HiddenByJavaAnnotation + +package cases.marker + +class ClassInAFileAnnotatedByHiddenJava diff --git a/src/test/kotlin/cases/marker/ktFileAnnotation.kt b/src/test/kotlin/cases/marker/ktFileAnnotation.kt new file mode 100644 index 00000000..e9008e29 --- /dev/null +++ b/src/test/kotlin/cases/marker/ktFileAnnotation.kt @@ -0,0 +1,5 @@ +@file:HiddenByKtAnnotation + +package cases.marker + +class ClassInAFileAnnotatedByHiddenKt diff --git a/src/test/kotlin/cases/marker/marker.kt b/src/test/kotlin/cases/marker/marker.kt index f7b5989e..f415b3f6 100644 --- a/src/test/kotlin/cases/marker/marker.kt +++ b/src/test/kotlin/cases/marker/marker.kt @@ -8,6 +8,9 @@ annotation class HiddenProperty annotation class HiddenMethod +@Target(AnnotationTarget.FILE) +annotation class HiddenByKtAnnotation + public class Foo { // HiddenField will be on the field @HiddenField diff --git a/src/test/kotlin/cases/marker/marker.txt b/src/test/kotlin/cases/marker/marker.txt index 31054470..30e5ab0f 100644 --- a/src/test/kotlin/cases/marker/marker.txt +++ b/src/test/kotlin/cases/marker/marker.txt @@ -2,6 +2,12 @@ public final class cases/marker/Foo { public fun ()V } +public abstract interface annotation class cases/marker/HiddenByJavaAnnotation : java/lang/annotation/Annotation { +} + +public abstract interface annotation class cases/marker/HiddenByKtAnnotation : java/lang/annotation/Annotation { +} + public abstract interface annotation class cases/marker/HiddenField : java/lang/annotation/Annotation { } diff --git a/src/test/kotlin/tests/CasesPublicAPITest.kt b/src/test/kotlin/tests/CasesPublicAPITest.kt index ae66e059..35995818 100644 --- a/src/test/kotlin/tests/CasesPublicAPITest.kt +++ b/src/test/kotlin/tests/CasesPublicAPITest.kt @@ -41,7 +41,18 @@ class CasesPublicAPITest { @Test fun localClasses() { snapshotAPIAndCompare(testName.methodName) } - @Test fun marker() { snapshotAPIAndCompare(testName.methodName, setOf("cases/marker/HiddenField", "cases/marker/HiddenProperty", "cases/marker/HiddenMethod")) } + @Test + fun marker() { + snapshotAPIAndCompare( + testName.methodName, setOf( + "cases/marker/HiddenField", + "cases/marker/HiddenProperty", + "cases/marker/HiddenMethod", + "cases/marker/HiddenByJavaAnnotation", + "cases/marker/HiddenByKtAnnotation", + ) + ) + } @Test fun nestedClasses() { snapshotAPIAndCompare(testName.methodName) }