package ann open annotation class Test1 : Annotation { constructor(x: Int) /* primary */ { super/*Any*/() /* () */ } val x: Int field = x get } open annotation class Test2 : Annotation { constructor(x: Int = 0) /* primary */ { super/*Any*/() /* () */ } val x: Int field = x get } interface I { } open annotation class Test3> : Annotation { constructor(x: Test1>) /* primary */ { super/*Any*/() /* () */ } val x: Test1> field = x get } class C : I { constructor() /* primary */ { super/*Any*/() /* () */ } } open annotation class Test4 : Annotation { constructor(x: Array>>) /* primary */ { super/*Any*/() /* () */ } val x: Array>> field = x get } class ARG { constructor() /* primary */ { super/*Any*/() /* () */ } } open annotation class Test5 : Annotation { constructor(vararg xs: Test3>) /* primary */ { super/*Any*/() /* () */ } val xs: Array>> field = xs get } @Test1(x = 42) @Test2(x = 38) @Test3(x = Test1>>(x = 39)) @Test4(x = [Test3(x = Test1(x = 40)), Test3(x = Test1(x = 50)), Test3(x = Test1(x = 60))]) @Test5(xs = [Test3>(x = Test1>>(x = 70)), Test3>(x = Test1>>(x = 80))]) class CC { constructor() /* primary */ { super/*Any*/() /* () */ } }