annotation class Foo(val a: IntArray, val b: Array, val c: FloatArray) @Foo([1], ["/"], [1f]) fun test1() {} @Foo([], [], []) fun test2() {} @Foo([1f], [' '], [1]) fun test3() {} @Foo(c = [1f], b = [""], a = [1]) fun test4() {} @Foo([1 + 2], ["Hello, " + "Kotlin"], [1 / 0f]) fun test5() {} const val ONE = 1 val two = 2 @Foo([ONE], [], []) fun test6() {} @Foo([ONE + two], [], []) fun test7() {} @Foo([two], [], []) fun test8() {} interface I class C : I annotation class Test1(val x: Int) annotation class Test2>(val x: Test1>) @Repeatable annotation class Test3(val x: Array>>) @Test3([Test2>(Test1(40))]) @Test3([Test2>(Test1(40))]) @Test3([Test2(Test1(40))]) fun test9() {}