annotation class A(vararg val x: Int) annotation class B(val x: String, vararg val y: Int, val z: String) annotation class C(val a: A, val b: B) annotation class D(vararg val x: String = ["a", "b"]) annotation class E(val d: D) @A @B(x = "x", z = "z") @C(A(), B("x", z = "z")) @D() @E(d = D()) fun foo() {} @A(1) @B("x", 1, z = "z") @C(A(1), B("x", 1, z = "z")) fun bar() {} @A(1, 2) @B("x", 1, 2, z = "z") @C(A(1, 2), B("x", 1, 2, z = "z")) fun baz() {}