Prohibit explicit usage of kotlin.Metadata as annotation

This commit is contained in:
Alexander Udalov
2018-06-27 12:28:20 +02:00
parent 8d124eb77f
commit 984e37c7f1
8 changed files with 71 additions and 1 deletions
@@ -0,0 +1,11 @@
// !DIAGNOSTICS: -INVISIBLE_MEMBER -INVISIBLE_REFERENCE -EXPOSED_PARAMETER_TYPE
<!EXPLICIT_METADATA_IS_DISALLOWED!>@Metadata<!>
class A
<!EXPLICIT_METADATA_IS_DISALLOWED!>@Metadata(xs = "_")<!>
annotation class B(val m: Metadata)
<!WRONG_ANNOTATION_TARGET, EXPLICIT_METADATA_IS_DISALLOWED!>@Metadata(xi = 0)<!>
@B(Metadata())
fun f() {}
@@ -0,0 +1,18 @@
package
@kotlin.Metadata(xi = 0) @B(m = kotlin.Metadata) public fun f(): kotlin.Unit
@kotlin.Metadata public final class A {
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
}
@kotlin.Metadata(xs = "_") public final annotation class B : kotlin.Annotation {
public constructor B(/*0*/ m: kotlin.Metadata)
public final val m: kotlin.Metadata
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
}