Allow multiple non-repeatable annotations with different targets

This commit is contained in:
Yan Zhulanow
2015-08-05 22:05:47 +03:00
parent 4ead50352d
commit f86fe6a8d5
5 changed files with 77 additions and 4 deletions
@@ -0,0 +1,18 @@
annotation(repeatable = true) class RepeatableAnn
annotation class Ann
public class A(@param:Ann <!REPEATED_ANNOTATION!>@Ann<!> val x: Int, @param: RepeatableAnn @Ann val y: Int) {
@field:Ann @property:Ann @RepeatableAnn @property:RepeatableAnn
val a: Int = 0
@Ann <!REPEATED_ANNOTATION!>@field:Ann<!> <!REPEATED_ANNOTATION!>@property:Ann<!>
val b: Int = 0
@field:RepeatableAnn @field:RepeatableAnn
val c: Int = 0
@property:RepeatableAnn @RepeatableAnn
val d: Int = 0
}
@@ -0,0 +1,28 @@
package
public final class A {
public constructor A(/*0*/ Ann() Ann() x: kotlin.Int, /*1*/ RepeatableAnn() Ann() y: kotlin.Int)
Ann() RepeatableAnn() Ann() RepeatableAnn() internal final val a: kotlin.Int = 0
Ann() Ann() Ann() internal final val b: kotlin.Int = 0
RepeatableAnn() RepeatableAnn() internal final val c: kotlin.Int = 0
RepeatableAnn() RepeatableAnn() internal final val d: kotlin.Int = 0
internal final val x: kotlin.Int
internal final val y: kotlin.Int
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.annotation() internal final class Ann : kotlin.Annotation {
public constructor Ann()
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.annotation(repeatable = true) internal final class RepeatableAnn : kotlin.Annotation {
public constructor RepeatableAnn()
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
}