Allow annotation constructor calls

in default parameter value expressions of anonymous classes
(if it is not a compile-time constant, it will be reported separately).

 #KT-10136 Fixed
This commit is contained in:
Dmitry Petrov
2015-11-25 13:43:01 +03:00
parent 73e3a252d3
commit db42941586
6 changed files with 82 additions and 6 deletions
@@ -0,0 +1,8 @@
annotation class A
annotation class A1(val x: Int)
annotation class B(
val a: A = A(),
val x: Int = <!ANNOTATION_PARAMETER_DEFAULT_VALUE_MUST_BE_CONSTANT!>A1(42).x<!>,
val aa: Array<A> = arrayOf(A())
)
@@ -0,0 +1,26 @@
package
public final annotation class A : kotlin.Annotation {
public constructor A()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final annotation class A1 : kotlin.Annotation {
public constructor A1(/*0*/ x: kotlin.Int)
public final val x: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final annotation class B : kotlin.Annotation {
public constructor B(/*0*/ a: A = ..., /*1*/ x: kotlin.Int = ..., /*2*/ aa: kotlin.Array<A> = ...)
public final val a: A
public final val aa: kotlin.Array<A>
public final val x: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}