Fixed visibility checks for annotation usage on top-level declarations

#KT-12429 Fixed
This commit is contained in:
Stanislav Erokhin
2016-05-20 12:07:02 +03:00
parent a42b8d56b4
commit db64d9c528
6 changed files with 108 additions and 7 deletions
@@ -0,0 +1,4 @@
private const val a = ""
@Deprecated("$a")
fun test() {}
@@ -0,0 +1,4 @@
package
private const val a: kotlin.String = ""
@kotlin.Deprecated(message = "") public fun test(): kotlin.Unit
@@ -0,0 +1,27 @@
// FILE: 1.kt
package pp
private annotation class A(val s: String)
private const val foo = "O"
@A(foo)
fun f1() {}
@A(foo)
val p1 = ""
@A(foo)
class C1
// FILE: 2.kt
package pp
@<!INVISIBLE_REFERENCE, INVISIBLE_MEMBER!>A<!>(<!INVISIBLE_MEMBER!>foo<!>)
fun f2() {}
@<!INVISIBLE_REFERENCE, INVISIBLE_MEMBER!>A<!>(<!INVISIBLE_MEMBER!>foo<!>)
val p2 = ""
@<!INVISIBLE_REFERENCE, INVISIBLE_MEMBER!>A<!>(<!INVISIBLE_MEMBER!>foo<!>)
class C2
@@ -0,0 +1,31 @@
package
package pp {
private const val foo: kotlin.String = "O"
@pp.A(s = "O") public val p1: kotlin.String = ""
@pp.A(s = "O") public val p2: kotlin.String = ""
@pp.A(s = "O") public fun f1(): kotlin.Unit
@pp.A(s = "O") public fun f2(): kotlin.Unit
private final annotation class A : kotlin.Annotation {
public constructor A(/*0*/ s: kotlin.String)
public final val s: 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
}
@pp.A(s = "O") public final class C1 {
public constructor C1()
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
}
@pp.A(s = "O") public final class C2 {
public constructor C2()
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
}
}