publicField -> JvmField

Effectively drop publicField and introduce JvmField (which has the same effect for now)
Implement frontend checks for @JvmField
Replace publicField -> JvmField in test data
This commit is contained in:
Pavel V. Talanov
2015-10-07 20:19:05 +03:00
committed by Michael Bogdanov
parent bfaf806f47
commit 6cf9bfdb70
25 changed files with 342 additions and 109 deletions
@@ -0,0 +1,13 @@
@file:kotlin.jvm.JvmMultifileClass
@file:JvmName("SomeName")
<!INAPPLICABLE_JVM_FIELD!>@JvmField<!>
val c = 4
<!INAPPLICABLE_JVM_FIELD!>@JvmField<!>
var g = 5
class C {
@JvmField
var g = 5
}
@@ -1,8 +1,11 @@
package
@kotlin.jvm.JvmField() public val c: kotlin.Int = 4
@kotlin.jvm.JvmField() public var g: kotlin.Int
public final class C {
public constructor C()
@kotlin.jvm.publicField() private final val a: kotlin.String
@kotlin.jvm.JvmField() public final var g: 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
@@ -0,0 +1,12 @@
@file:JvmName("SomeName")
@JvmField
val c = 4
@JvmField
var g = 5
class C {
@JvmField
var g = 5
}
@@ -1,11 +1,12 @@
package
@kotlin.jvm.publicField() public fun foo(): kotlin.Unit
@kotlin.jvm.JvmField() public val c: kotlin.Int = 4
@kotlin.jvm.JvmField() public var g: kotlin.Int
public final class C {
@kotlin.jvm.publicField() public constructor C(/*0*/ s: kotlin.String)
public constructor C()
@kotlin.jvm.JvmField() public final var g: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@kotlin.jvm.publicField() private final fun foo(/*0*/ s: kotlin.String = ...): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -0,0 +1,74 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
<!INAPPLICABLE_JVM_FIELD, WRONG_ANNOTATION_TARGET!>@kotlin.jvm.JvmField<!>
fun foo() {
<!INAPPLICABLE_JVM_FIELD, WRONG_ANNOTATION_TARGET!>@kotlin.jvm.JvmField<!> val x = "A"
}
<!INAPPLICABLE_JVM_FIELD, WRONG_ANNOTATION_TARGET!>@JvmField<!>
abstract class C : I{
<!INAPPLICABLE_JVM_FIELD, WRONG_ANNOTATION_TARGET!>@kotlin.jvm.JvmField<!> constructor(s: String) {
}
<!INAPPLICABLE_JVM_FIELD, WRONG_ANNOTATION_TARGET!>@kotlin.jvm.JvmField<!> private fun foo(s: String = "OK") {
}
<!INAPPLICABLE_JVM_FIELD!>@JvmField<!> val a: String by lazy { "A" }
<!INAPPLICABLE_JVM_FIELD!>@JvmField<!> open val b: Int = 3
<!INAPPLICABLE_JVM_FIELD!>@JvmField<!> abstract val c: Int
<!INAPPLICABLE_JVM_FIELD, INAPPLICABLE_JVM_FIELD!>@JvmField<!>
val customGetter: String = ""
get() = field
<!INAPPLICABLE_JVM_FIELD!>@JvmField<!>
var customSetter: String = ""
set(s) {
field = s
}
<!INAPPLICABLE_JVM_FIELD, INAPPLICABLE_JVM_FIELD!>@JvmField<!>
val noBackingField: String
get() = "a"
<!INAPPLICABLE_JVM_FIELD!>@JvmField<!>
final override val ai = 3
}
interface I {
<!INAPPLICABLE_JVM_FIELD!>@JvmField<!> val ai: Int
<!INAPPLICABLE_JVM_FIELD, INAPPLICABLE_JVM_FIELD!>@JvmField<!> val bi: Int
get() = 5
}
class G {
<!INAPPLICABLE_JVM_FIELD!>@JvmField<!>
lateinit var lateInit: String
}
<!INAPPLICABLE_JVM_FIELD!>@JvmField<!>
const val Const = 4
@JvmField
var i = 5
class H {
companion object {
@JvmField
var c = 3
}
}
interface K {
companion object {
<!INAPPLICABLE_JVM_FIELD!>@JvmField<!>
var c = 3
}
}
object O {
@JvmField
val c = 3
}
@@ -0,0 +1,74 @@
package
@kotlin.jvm.JvmField() public const val Const: kotlin.Int = 4
@kotlin.jvm.JvmField() public var i: kotlin.Int
@kotlin.jvm.JvmField() public fun foo(): kotlin.Unit
@kotlin.jvm.JvmField() public abstract class C : I {
@kotlin.jvm.JvmField() public constructor C(/*0*/ s: kotlin.String)
@kotlin.jvm.JvmField() public final val a: kotlin.String
@kotlin.jvm.JvmField() public final override /*1*/ val ai: kotlin.Int = 3
@kotlin.jvm.JvmField() public open val b: kotlin.Int = 3
@kotlin.jvm.JvmField() public open override /*1*/ /*fake_override*/ val bi: kotlin.Int
@kotlin.jvm.JvmField() public abstract val c: kotlin.Int
@kotlin.jvm.JvmField() public final val customGetter: kotlin.String = ""
@kotlin.jvm.JvmField() public final var customSetter: kotlin.String
@kotlin.jvm.JvmField() public final val noBackingField: kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@kotlin.jvm.JvmField() private final fun foo(/*0*/ s: kotlin.String = ...): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class G {
public constructor G()
@kotlin.jvm.JvmField() public final lateinit var lateInit: 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
}
public final class H {
public constructor H()
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 companion object Companion {
private constructor Companion()
@kotlin.jvm.JvmField() public final var c: 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 interface I {
@kotlin.jvm.JvmField() public abstract val ai: kotlin.Int
@kotlin.jvm.JvmField() public open val bi: 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 interface K {
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 companion object Companion {
private constructor Companion()
@kotlin.jvm.JvmField() public final var c: 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 object O {
private constructor O()
@kotlin.jvm.JvmField() public final val c: kotlin.Int = 3
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
}
@@ -1,16 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class C {
<!WRONG_ANNOTATION_TARGET!>@<!DEPRECATION!>kotlin.jvm.publicField<!><!> constructor(s: String) {
}
<!WRONG_ANNOTATION_TARGET!>@<!DEPRECATION!>kotlin.jvm.publicField<!><!> private fun foo(s: String = "OK") {
}
}
<!WRONG_ANNOTATION_TARGET!>@<!DEPRECATION!>kotlin.jvm.publicField<!><!>
fun foo() {
<!WRONG_ANNOTATION_TARGET!>@<!DEPRECATION!>kotlin.jvm.publicField<!><!> val <!UNUSED_VARIABLE!>x<!> = "A"
}
@@ -1,3 +0,0 @@
class C {
private <!INAPPLICABLE_PUBLIC_FIELD!>@<!DEPRECATION!>publicField<!><!> val a: String by lazy { "A" }
}