Minor, refactor diagnostic tests on repeatable annotations

This commit is contained in:
Alexander Udalov
2021-07-23 22:59:10 +02:00
parent 56866e6927
commit 5526281c54
22 changed files with 382 additions and 253 deletions
@@ -1,19 +0,0 @@
// FULL_JDK
// FILE: RepeatableAnnotation.java
import java.lang.annotation.Repeatable;
@Repeatable(RepeatableAnnotations.class)
public @interface RepeatableAnnotation {
}
// FILE: RepeatableAnnotations.java
public @interface RepeatableAnnotations {
RepeatableAnnotation[] value();
}
// FILE: RepeatableUse.kt
// Error should be gone when Java 8 Target will be available
@RepeatableAnnotation @RepeatableAnnotation class My
@@ -1,19 +0,0 @@
// FULL_JDK
// FILE: RepeatableAnnotation.java
import java.lang.annotation.Repeatable;
@Repeatable(RepeatableAnnotations.class)
public @interface RepeatableAnnotation {
}
// FILE: RepeatableAnnotations.java
public @interface RepeatableAnnotations {
RepeatableAnnotation[] value();
}
// FILE: RepeatableUse.kt
// Error should be gone when Java 8 Target will be available
@RepeatableAnnotation <!NON_SOURCE_REPEATED_ANNOTATION!>@RepeatableAnnotation<!> class My
@@ -1,23 +0,0 @@
package
@RepeatableAnnotation @RepeatableAnnotation public final class My {
public constructor My()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@kotlin.annotation.Repeatable public final annotation class RepeatableAnnotation : kotlin.Annotation {
public constructor RepeatableAnnotation()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final annotation class RepeatableAnnotations : kotlin.Annotation {
public constructor RepeatableAnnotations(/*0*/ vararg value: RepeatableAnnotation /*kotlin.Array<out RepeatableAnnotation>*/)
public final val value: kotlin.Array<RepeatableAnnotation>
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,20 +0,0 @@
// FULL_JDK
// FILE: RepeatableAnnotation.java
import java.lang.annotation.*;
@Repeatable(RepeatableAnnotations.class)
@Retention(RetentionPolicy.RUNTIME)
public @interface RepeatableAnnotation {
}
// FILE: RepeatableAnnotations.java
public @interface RepeatableAnnotations {
RepeatableAnnotation[] value();
}
// FILE: RepeatableUse.kt
// Error should be gone when Java 8 Target will be available
@RepeatableAnnotation @RepeatableAnnotation class My
@@ -1,20 +0,0 @@
// FULL_JDK
// FILE: RepeatableAnnotation.java
import java.lang.annotation.*;
@Repeatable(RepeatableAnnotations.class)
@Retention(RetentionPolicy.RUNTIME)
public @interface RepeatableAnnotation {
}
// FILE: RepeatableAnnotations.java
public @interface RepeatableAnnotations {
RepeatableAnnotation[] value();
}
// FILE: RepeatableUse.kt
// Error should be gone when Java 8 Target will be available
@RepeatableAnnotation <!NON_SOURCE_REPEATED_ANNOTATION!>@RepeatableAnnotation<!> class My
@@ -1,23 +0,0 @@
package
@RepeatableAnnotation @RepeatableAnnotation public final class My {
public constructor My()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@kotlin.annotation.Repeatable @kotlin.annotation.Retention(value = AnnotationRetention.RUNTIME) public final annotation class RepeatableAnnotation : kotlin.Annotation {
public constructor RepeatableAnnotation()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final annotation class RepeatableAnnotations : kotlin.Annotation {
public constructor RepeatableAnnotations(/*0*/ vararg value: RepeatableAnnotation /*kotlin.Array<out RepeatableAnnotation>*/)
public final val value: kotlin.Array<RepeatableAnnotation>
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,9 +0,0 @@
// FILE: UnrepeatableAnnotation.java
public @interface UnrepeatableAnnotation {
}
// FILE: UnrepeatableUse.kt
@UnrepeatableAnnotation @UnrepeatableAnnotation class My
@@ -1,9 +0,0 @@
// FILE: UnrepeatableAnnotation.java
public @interface UnrepeatableAnnotation {
}
// FILE: UnrepeatableUse.kt
@UnrepeatableAnnotation <!REPEATED_ANNOTATION!>@UnrepeatableAnnotation<!> class My
@@ -1,15 +0,0 @@
package
@UnrepeatableAnnotation @UnrepeatableAnnotation public final class My {
public constructor My()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final annotation class UnrepeatableAnnotation : kotlin.Annotation {
public constructor UnrepeatableAnnotation()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -0,0 +1,47 @@
// FULL_JDK
// FILE: Runtime.java
import java.lang.annotation.*;
@Repeatable(Runtime.Container.class)
@Retention(RetentionPolicy.RUNTIME)
public @interface Runtime {
public @interface Container {
Runtime[] value();
}
}
// FILE: Clazz.java
import java.lang.annotation.*;
@Repeatable(Clazz.Container.class)
@Retention(RetentionPolicy.CLASS)
public @interface Clazz {
public @interface Container {
Clazz[] value();
}
}
// FILE: Source.java
import java.lang.annotation.*;
@Repeatable(Source.Container.class)
@Retention(RetentionPolicy.SOURCE)
public @interface Source {
public @interface Container {
Source[] value();
}
}
// FILE: usage.kt
@Runtime @Runtime
class UseRuntime
@Clazz @Clazz
class UseClazz
@Source @Source
class UseSource
@@ -0,0 +1,47 @@
// FULL_JDK
// FILE: Runtime.java
import java.lang.annotation.*;
@Repeatable(Runtime.Container.class)
@Retention(RetentionPolicy.RUNTIME)
public @interface Runtime {
public @interface Container {
Runtime[] value();
}
}
// FILE: Clazz.java
import java.lang.annotation.*;
@Repeatable(Clazz.Container.class)
@Retention(RetentionPolicy.CLASS)
public @interface Clazz {
public @interface Container {
Clazz[] value();
}
}
// FILE: Source.java
import java.lang.annotation.*;
@Repeatable(Source.Container.class)
@Retention(RetentionPolicy.SOURCE)
public @interface Source {
public @interface Container {
Source[] value();
}
}
// FILE: usage.kt
@Runtime <!NON_SOURCE_REPEATED_ANNOTATION!>@Runtime<!>
class UseRuntime
@Clazz <!NON_SOURCE_REPEATED_ANNOTATION!>@Clazz<!>
class UseClazz
@Source @Source
class UseSource
@@ -0,0 +1,68 @@
package
@kotlin.annotation.Repeatable @kotlin.annotation.Retention(value = AnnotationRetention.BINARY) public final annotation class Clazz : kotlin.Annotation {
public constructor Clazz()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final annotation class Container : kotlin.Annotation {
public constructor Container(/*0*/ vararg value: Clazz /*kotlin.Array<out Clazz>*/)
public final val value: kotlin.Array<Clazz>
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
@kotlin.annotation.Repeatable @kotlin.annotation.Retention(value = AnnotationRetention.RUNTIME) public final annotation class Runtime : kotlin.Annotation {
public constructor Runtime()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final annotation class Container : kotlin.Annotation {
public constructor Container(/*0*/ vararg value: Runtime /*kotlin.Array<out Runtime>*/)
public final val value: kotlin.Array<Runtime>
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
@kotlin.annotation.Repeatable @kotlin.annotation.Retention(value = AnnotationRetention.SOURCE) public final annotation class Source : kotlin.Annotation {
public constructor Source()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final annotation class Container : kotlin.Annotation {
public constructor Container(/*0*/ vararg value: Source /*kotlin.Array<out Source>*/)
public final val value: kotlin.Array<Source>
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
@Clazz @Clazz public final class UseClazz {
public constructor UseClazz()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@Runtime @Runtime public final class UseRuntime {
public constructor UseRuntime()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@Source @Source public final class UseSource {
public constructor UseSource()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -0,0 +1,32 @@
// FULL_JDK
// FILE: Runtime.java
import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
public @interface Runtime {}
// FILE: Clazz.java
import java.lang.annotation.*;
@Retention(RetentionPolicy.CLASS)
public @interface Clazz {}
// FILE: Source.java
import java.lang.annotation.*;
@Retention(RetentionPolicy.SOURCE)
public @interface Source {}
// FILE: usage.kt
@Runtime @Runtime
class UseRuntime
@Clazz @Clazz
class UseClazz
@Source @Source
class UseSource
@@ -0,0 +1,32 @@
// FULL_JDK
// FILE: Runtime.java
import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
public @interface Runtime {}
// FILE: Clazz.java
import java.lang.annotation.*;
@Retention(RetentionPolicy.CLASS)
public @interface Clazz {}
// FILE: Source.java
import java.lang.annotation.*;
@Retention(RetentionPolicy.SOURCE)
public @interface Source {}
// FILE: usage.kt
@Runtime <!REPEATED_ANNOTATION!>@Runtime<!>
class UseRuntime
@Clazz <!REPEATED_ANNOTATION!>@Clazz<!>
class UseClazz
@Source <!REPEATED_ANNOTATION!>@Source<!>
class UseSource
@@ -0,0 +1,44 @@
package
@kotlin.annotation.Retention(value = AnnotationRetention.BINARY) public final annotation class Clazz : kotlin.Annotation {
public constructor Clazz()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@kotlin.annotation.Retention(value = AnnotationRetention.RUNTIME) public final annotation class Runtime : kotlin.Annotation {
public constructor Runtime()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@kotlin.annotation.Retention(value = AnnotationRetention.SOURCE) public final annotation class Source : kotlin.Annotation {
public constructor Source()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@Clazz @Clazz public final class UseClazz {
public constructor UseClazz()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@Runtime @Runtime public final class UseRuntime {
public constructor UseRuntime()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@Source @Source public final class UseSource {
public constructor UseSource()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}