Annotation parameter must be constant
This commit is contained in:
+14
@@ -0,0 +1,14 @@
|
||||
annotation class AnnC(val c: Class<*>)
|
||||
|
||||
AnnC(<!ANNOTATION_PARAMETER_MUST_BE_CLASS_LITERAL!>c<!>)
|
||||
class Test
|
||||
|
||||
AnnC(javaClass<A>())
|
||||
class Test2
|
||||
|
||||
val c: Class<*> = javaClass<A>()
|
||||
|
||||
class A
|
||||
|
||||
// from stdlib
|
||||
fun <T> javaClass() : Class<T> = null <!CAST_NEVER_SUCCEEDS!>as<!> Class<T>
|
||||
@@ -0,0 +1,36 @@
|
||||
annotation class Ann(val i: Int)
|
||||
annotation class AnnIA(val ia: IntArray)
|
||||
annotation class AnnSA(val sa: Array<String>)
|
||||
|
||||
Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>MyClass().i<!>)
|
||||
Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>O.i<!>)
|
||||
Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>)
|
||||
Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i2<!>)
|
||||
AnnIA(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>ia<!>)
|
||||
AnnSA(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>sa<!>)
|
||||
class Test {
|
||||
val i = 1
|
||||
Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>) val i2 = 1
|
||||
}
|
||||
|
||||
var i = 1
|
||||
val i2 = foo()
|
||||
|
||||
fun foo(): Int = 1
|
||||
|
||||
class MyClass {
|
||||
val i = 1
|
||||
}
|
||||
|
||||
object O {
|
||||
val i = 1
|
||||
}
|
||||
|
||||
val ia: IntArray = intArray(1, 2)
|
||||
val sa: Array<String> = array("a", "b")
|
||||
|
||||
annotation class Ann2
|
||||
|
||||
// from stdlib
|
||||
fun <T> array(vararg t : T) : Array<T> = t
|
||||
fun intArray(vararg content : Int) : IntArray = content
|
||||
@@ -0,0 +1,13 @@
|
||||
annotation class AnnE(val i: MyEnum)
|
||||
|
||||
AnnE(<!ANNOTATION_PARAMETER_MUST_BE_ENUM_CONST!>e<!>)
|
||||
class Test
|
||||
|
||||
val e: MyEnum = MyEnum.A
|
||||
|
||||
enum class MyEnum {
|
||||
A
|
||||
}
|
||||
|
||||
AnnE(<!TYPE_MISMATCH!>Test()<!>)
|
||||
class Test2
|
||||
Reference in New Issue
Block a user