Prohibit callable references to annotation class constructors.

See KT-4391.
This commit is contained in:
Dmitry Petrov
2015-11-19 10:38:45 +03:00
parent 0261a3fbbd
commit 42b587b0d5
7 changed files with 32 additions and 2 deletions
@@ -7,6 +7,6 @@ enum class D
fun main() {
::<!UNRESOLVED_REFERENCE!>A<!>
::<!CREATING_AN_INSTANCE_OF_ABSTRACT_CLASS!>B<!>
::C // KT-3465
::<!CALLABLE_REFERENCE_TO_ANNOTATION_CONSTRUCTOR!>C<!> // KT-3465
::<!INVISIBLE_MEMBER!>D<!>
}
@@ -0,0 +1,5 @@
annotation class Ann(val prop: String)
val annCtorRef = ::<!CALLABLE_REFERENCE_TO_ANNOTATION_CONSTRUCTOR!>Ann<!>
val annClassRef = Ann::class
val annPropRef = Ann::prop
@@ -0,0 +1,13 @@
package
public val annClassRef: kotlin.reflect.KClass<Ann>
public val annCtorRef: kotlin.reflect.KFunction1<kotlin.String, Ann>
public val annPropRef: kotlin.reflect.KProperty1<Ann, kotlin.String>
public final annotation class Ann : kotlin.Annotation {
public constructor Ann(/*0*/ prop: kotlin.String)
public final val prop: kotlin.String
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
}