Support enums as annotation arguments in deserialized Kotlin descriptors

This commit is contained in:
Alexander Udalov
2013-08-28 18:15:38 +04:00
parent de062274e9
commit d84ab4423f
11 changed files with 153 additions and 8 deletions
@@ -0,0 +1,11 @@
package test
import java.lang.annotation.ElementType
annotation class Anno(t: ElementType)
class Class {
Anno(ElementType.METHOD) fun foo() {}
Anno(ElementType.FIELD) var bar = 42
}
@@ -0,0 +1,13 @@
package test
internal final annotation class Anno : jet.Annotation {
/*primary*/ public constructor Anno(/*0*/ t: java.lang.annotation.ElementType)
}
internal final class Class {
/*primary*/ public constructor Class()
test.Anno(t = ElementType.FIELD: java.lang.annotation.ElementType) internal final var bar: jet.Int
internal final fun <get-bar>(): jet.Int
internal final fun <set-bar>(/*0*/ <set-?>: jet.Int): jet.Unit
test.Anno(t = ElementType.METHOD: java.lang.annotation.ElementType) internal final fun foo(): jet.Unit
}
@@ -0,0 +1,13 @@
package test
import java.lang.annotation.ElementType
annotation class Anno(t: ElementType)
Anno(ElementType.METHOD) class Class {
Anno(ElementType.PARAMETER) inner class Inner
Anno(ElementType.TYPE) class Nested
Anno(ElementType.ANNOTATION_TYPE) class object
}
@@ -0,0 +1,21 @@
package test
internal final annotation class Anno : jet.Annotation {
/*primary*/ public constructor Anno(/*0*/ t: java.lang.annotation.ElementType)
}
test.Anno(t = ElementType.METHOD: java.lang.annotation.ElementType) internal final class Class {
/*primary*/ public constructor Class()
test.Anno(t = ElementType.ANNOTATION_TYPE: java.lang.annotation.ElementType) internal class object <class-object-for-Class> {
/*primary*/ private constructor <class-object-for-Class>()
}
test.Anno(t = ElementType.PARAMETER: java.lang.annotation.ElementType) internal final inner class Inner {
/*primary*/ public constructor Inner()
}
test.Anno(t = ElementType.TYPE: java.lang.annotation.ElementType) internal final class Nested {
/*primary*/ public constructor Nested()
}
}
@@ -0,0 +1,5 @@
package test
import java.lang.annotation.*
Retention(RetentionPolicy.RUNTIME) annotation class Anno
@@ -0,0 +1,5 @@
package test
java.lang.annotation.Retention(value = RetentionPolicy.RUNTIME: java.lang.annotation.RetentionPolicy) internal final annotation class Anno : jet.Annotation {
/*primary*/ public constructor Anno()
}
@@ -0,0 +1,9 @@
package test
import java.lang.annotation.ElementType
annotation class Anno(t: ElementType)
Anno(ElementType.METHOD) fun foo() {}
Anno(ElementType.FIELD) val bar = 42
@@ -0,0 +1,9 @@
package test
test.Anno(t = ElementType.FIELD: java.lang.annotation.ElementType) internal val bar: jet.Int
internal fun <get-bar>(): jet.Int
test.Anno(t = ElementType.METHOD: java.lang.annotation.ElementType) internal fun foo(): jet.Unit
internal final annotation class Anno : jet.Annotation {
/*primary*/ public constructor Anno(/*0*/ t: java.lang.annotation.ElementType)
}