[ULC] support repeatable annotation and container

^KTIJ-19318
This commit is contained in:
Dmitry Gridin
2021-09-07 15:37:29 +07:00
committed by Space
parent a3d60f8ed2
commit 11e71e4e27
18 changed files with 290 additions and 44 deletions
@@ -0,0 +1,6 @@
@java.lang.annotation.Repeatable(value = TwoContainer::class)
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
public abstract @interface Two /* Two*/ {
public abstract java.lang.String name();// name()
}
@@ -0,0 +1,7 @@
// Two
// STDLIB_JDK8
// FULL_JDK
@JvmRepeatable(TwoContainer::class)
annotation class Two(val name: String)
annotation class TwoContainer(val value: Array<Two>)
@@ -0,0 +1,7 @@
@java.lang.annotation.Repeatable(value = TwoContainer::class)
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
@kotlin.annotation.Repeatable()
public abstract @interface Two /* Two*/ {
public abstract java.lang.String name();// name()
}
@@ -0,0 +1,10 @@
// Two
// STDLIB_JDK8
// FULL_JDK
import java.lang.annotation.Repeatable as JvmRepeatable
@Repeatable
@JvmRepeatable(TwoContainer::class)
annotation class Two(val name: String)
annotation class TwoContainer(val value: Array<Two>)
@@ -0,0 +1,7 @@
@java.lang.annotation.Repeatable(value = TwoContainer::class)
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
@kotlin.annotation.Repeatable()
public abstract @interface Two /* Two*/ {
public abstract java.lang.String name();// name()
}
@@ -0,0 +1,8 @@
// Two
// STDLIB_JDK8
// FULL_JDK
@Repeatable
@JvmRepeatable(TwoContainer::class)
annotation class Two(val name: String)
annotation class TwoContainer(val value: Array<Two>)
@@ -0,0 +1,13 @@
@java.lang.annotation.Repeatable(value = simple.One.Container.class)
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
@kotlin.annotation.Repeatable()
public abstract @interface One /* simple.One*/ {
public abstract java.lang.String value();// value()
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
@kotlin.jvm.internal.RepeatableContainer()
public @interface Container /* simple.One.Container*/ {
public abstract simple.One[] value();// value()
}}
@@ -0,0 +1,7 @@
// simple.One
// FULL_JDK
package simple
@Repeatable
annotation class One(val value: String)
@@ -1,4 +1,5 @@
@java.lang.annotation.Documented()
@java.lang.annotation.Repeatable(value = Anno.Container.class)
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.SOURCE)
@java.lang.annotation.Target(value = {java.lang.annotation.ElementType.TYPE_PARAMETER, java.lang.annotation.ElementType.TYPE_USE})
@kotlin.annotation.MustBeDocumented()
@@ -8,4 +9,13 @@
public abstract @interface Anno /* Anno*/ {
public abstract int i();// i()
}
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.SOURCE)
@java.lang.annotation.Target(value = {java.lang.annotation.ElementType.TYPE_PARAMETER, java.lang.annotation.ElementType.TYPE_USE})
@kotlin.annotation.Retention(value = kotlin.annotation.AnnotationRetention.SOURCE)
@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.TYPE_PARAMETER, kotlin.annotation.AnnotationTarget.TYPE})
@kotlin.jvm.internal.RepeatableContainer()
public @interface Container /* Anno.Container*/ {
public abstract Anno[] value();// value()
}}
@@ -1,4 +1,5 @@
// Anno
// FULL_JDK
@Retention(AnnotationRetention.SOURCE)
@Target(AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.TYPE)
@@ -1,4 +1,5 @@
@java.lang.annotation.Documented()
@java.lang.annotation.Repeatable(value = Anno.Container.class)
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.SOURCE)
@java.lang.annotation.Target(value = {})
@kotlin.annotation.MustBeDocumented()
@@ -8,4 +9,13 @@
public abstract @interface Anno /* Anno*/ {
public abstract int i();// i()
}
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.SOURCE)
@java.lang.annotation.Target(value = {})
@kotlin.annotation.Retention(value = kotlin.annotation.AnnotationRetention.SOURCE)
@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.TYPE_PARAMETER, kotlin.annotation.AnnotationTarget.TYPE})
@kotlin.jvm.internal.RepeatableContainer()
public @interface Container /* Anno.Container*/ {
public abstract Anno[] value();// value()
}}
@@ -1,5 +1,6 @@
// Anno
// JVM_TARGET: 1.6
// FULL_JDK
@Retention(AnnotationRetention.SOURCE)
@Target(AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.TYPE)