diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/diagnostics/DefaultErrorMessagesJvm.java b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/diagnostics/DefaultErrorMessagesJvm.java index f17607a5745..dc2e3a5813e 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/diagnostics/DefaultErrorMessagesJvm.java +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/diagnostics/DefaultErrorMessagesJvm.java @@ -45,8 +45,8 @@ public class DefaultErrorMessagesJvm implements DefaultErrorMessages.Extension { static { MAP.put(ErrorsJvm.CONFLICTING_JVM_DECLARATIONS, "Platform declaration clash: {0}", CONFLICTING_JVM_DECLARATIONS_DATA); MAP.put(ErrorsJvm.ACCIDENTAL_OVERRIDE, "Accidental override: {0}", CONFLICTING_JVM_DECLARATIONS_DATA); - MAP.put(ErrorsJvm.PLATFORM_STATIC_NOT_IN_OBJECT, "Only functions in named objects and companion objects of classes can be annotated with 'platformStatic'"); - MAP.put(ErrorsJvm.OVERRIDE_CANNOT_BE_STATIC, "Override member cannot be 'platformStatic' in object"); + MAP.put(ErrorsJvm.JVM_STATIC_NOT_IN_OBJECT, "Only functions in named objects and companion objects of classes can be annotated with 'jvmStatic'"); + MAP.put(ErrorsJvm.OVERRIDE_CANNOT_BE_STATIC, "Override member cannot be 'jvmStatic' in object"); MAP.put(ErrorsJvm.OVERLOADS_WITHOUT_DEFAULT_ARGUMENTS, "''jvmOverloads'' annotation has no effect for methods without default arguments"); MAP.put(ErrorsJvm.OVERLOADS_ABSTRACT, "''jvmOverloads'' annotation cannot be used on abstract methods"); MAP.put(ErrorsJvm.OVERLOADS_PRIVATE, "''jvmOverloads'' annotation has no effect on private and local declarations"); diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/diagnostics/ErrorsJvm.java b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/diagnostics/ErrorsJvm.java index 657653fa365..bfc20b3d6dc 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/diagnostics/ErrorsJvm.java +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/diagnostics/ErrorsJvm.java @@ -18,8 +18,6 @@ package org.jetbrains.kotlin.resolve.jvm.diagnostics; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; -import org.jetbrains.kotlin.descriptors.ClassDescriptor; -import org.jetbrains.kotlin.descriptors.DeclarationDescriptor; import org.jetbrains.kotlin.diagnostics.DiagnosticFactory0; import org.jetbrains.kotlin.diagnostics.DiagnosticFactory1; import org.jetbrains.kotlin.diagnostics.DiagnosticFactory2; @@ -42,7 +40,7 @@ public interface ErrorsJvm { DiagnosticFactory1.create(ERROR, DECLARATION_SIGNATURE_OR_DEFAULT); DiagnosticFactory0 OVERRIDE_CANNOT_BE_STATIC = DiagnosticFactory0.create(ERROR, DECLARATION_SIGNATURE); - DiagnosticFactory0 PLATFORM_STATIC_NOT_IN_OBJECT = DiagnosticFactory0.create(ERROR, DECLARATION_SIGNATURE); + DiagnosticFactory0 JVM_STATIC_NOT_IN_OBJECT = DiagnosticFactory0.create(ERROR, DECLARATION_SIGNATURE); DiagnosticFactory0 OVERLOADS_WITHOUT_DEFAULT_ARGUMENTS = DiagnosticFactory0.create(WARNING, DECLARATION_SIGNATURE); DiagnosticFactory0 OVERLOADS_ABSTRACT = DiagnosticFactory0.create(ERROR, DECLARATION_SIGNATURE); diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatformConfigurator.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatformConfigurator.kt index f16a2e5f9f2..53b13506992 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatformConfigurator.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatformConfigurator.kt @@ -150,7 +150,7 @@ public class PlatformStaticAnnotationChecker : DeclarationChecker { container.getContainingDeclaration().let { DescriptorUtils.isClass(it) || DescriptorUtils.isEnumClass(it) } if (!insideObject && !insideCompanionObjectInClass) { - diagnosticHolder.report(ErrorsJvm.PLATFORM_STATIC_NOT_IN_OBJECT.on(declaration)) + diagnosticHolder.report(ErrorsJvm.JVM_STATIC_NOT_IN_OBJECT.on(declaration)) } val checkDeclaration = when(declaration) { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationUtil.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationUtil.kt index 868d122f7e2..de05a40c40c 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationUtil.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationUtil.kt @@ -21,7 +21,6 @@ import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.descriptors.PropertyAccessorDescriptor import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.DescriptorUtils public fun DeclarationDescriptor.hasInlineAnnotation(): Boolean { @@ -29,7 +28,8 @@ public fun DeclarationDescriptor.hasInlineAnnotation(): Boolean { } public fun DeclarationDescriptor.hasPlatformStaticAnnotation(): Boolean { - return getAnnotations().findAnnotation(FqName("kotlin.platform.platformStatic")) != null + return getAnnotations().findAnnotation(FqName("kotlin.platform.platformStatic")) != null || + getAnnotations().findAnnotation(FqName("kotlin.jvm.jvmStatic")) != null } public fun DeclarationDescriptor.findPublicFieldAnnotation(): AnnotationDescriptor? { diff --git a/compiler/testData/codegen/boxWithJava/platformStatic/annotations/simpleClassObject.kt b/compiler/testData/codegen/boxWithJava/platformStatic/annotations/simpleClassObject.kt index 296cd8224cb..dfb2b6baaf3 100644 --- a/compiler/testData/codegen/boxWithJava/platformStatic/annotations/simpleClassObject.kt +++ b/compiler/testData/codegen/boxWithJava/platformStatic/annotations/simpleClassObject.kt @@ -1,4 +1,4 @@ -import kotlin.platform.platformStatic +import kotlin.jvm.jvmStatic annotation(retention = AnnotationRetention.RUNTIME) class testAnnotation @@ -7,14 +7,14 @@ class A { companion object { val b: String = "OK" - platformStatic testAnnotation fun test1() = b + jvmStatic testAnnotation fun test1() = b } } object B { val b: String = "OK" - platformStatic testAnnotation fun test1() = b + jvmStatic testAnnotation fun test1() = b } fun box(): String { diff --git a/compiler/testData/codegen/boxWithJava/platformStatic/classObject/simpleClassObject.kt b/compiler/testData/codegen/boxWithJava/platformStatic/classObject/simpleClassObject.kt index dac282c72ed..8362ee241f2 100644 --- a/compiler/testData/codegen/boxWithJava/platformStatic/classObject/simpleClassObject.kt +++ b/compiler/testData/codegen/boxWithJava/platformStatic/classObject/simpleClassObject.kt @@ -1,17 +1,17 @@ -import kotlin.platform.platformStatic +import kotlin.jvm.jvmStatic class A { companion object { val b: String = "OK" - platformStatic val c: String = "OK" + jvmStatic val c: String = "OK" - platformStatic fun test1() = b + jvmStatic fun test1() = b - platformStatic fun test2() = b + jvmStatic fun test2() = b - platformStatic fun String.test3() = this + b + jvmStatic fun String.test3() = this + b } } diff --git a/compiler/testData/codegen/boxWithJava/platformStatic/enumCompanion/enumCompanionObject.kt b/compiler/testData/codegen/boxWithJava/platformStatic/enumCompanion/enumCompanionObject.kt index 9aa57c83f9a..04fcab60372 100644 --- a/compiler/testData/codegen/boxWithJava/platformStatic/enumCompanion/enumCompanionObject.kt +++ b/compiler/testData/codegen/boxWithJava/platformStatic/enumCompanion/enumCompanionObject.kt @@ -1,13 +1,13 @@ -import kotlin.platform.platformStatic +import kotlin.jvm.jvmStatic enum class A { ; companion object { val foo: String = "OK" - platformStatic val bar: String = "OK" + jvmStatic val bar: String = "OK" - platformStatic fun baz() = foo + jvmStatic fun baz() = foo } } diff --git a/compiler/testData/codegen/boxWithJava/platformStatic/object/simpleObject.kt b/compiler/testData/codegen/boxWithJava/platformStatic/object/simpleObject.kt index 5640663e39b..540221b1ad5 100644 --- a/compiler/testData/codegen/boxWithJava/platformStatic/object/simpleObject.kt +++ b/compiler/testData/codegen/boxWithJava/platformStatic/object/simpleObject.kt @@ -1,16 +1,16 @@ -import kotlin.platform.platformStatic +import kotlin.jvm.jvmStatic object A { val b: String = "OK" - platformStatic val c: String = "OK" + jvmStatic val c: String = "OK" - platformStatic fun test1() = b + jvmStatic fun test1() = b - platformStatic fun test2() = b + jvmStatic fun test2() = b - platformStatic fun String.test3() = this + b + jvmStatic fun String.test3() = this + b } fun box(): String { diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/constructors.kt b/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/constructors.kt index 360f002b33a..380fb274b9a 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/constructors.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/constructors.kt @@ -1,9 +1,9 @@ -import kotlin.platform.platformStatic +import kotlin.jvm.jvmStatic class A { - platformStatic constructor() {} + jvmStatic constructor() {} inner class B { - platformStatic constructor() {} + jvmStatic constructor() {} } } -class C platformStatic constructor() \ No newline at end of file +class C jvmStatic constructor() \ No newline at end of file diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/constructors.txt b/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/constructors.txt index d0de0ec3b25..6feff1dca20 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/constructors.txt +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/constructors.txt @@ -1,13 +1,13 @@ package internal final class A { - kotlin.platform.platformStatic() public constructor A() + kotlin.jvm.jvmStatic() 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 internal final inner class B { - kotlin.platform.platformStatic() public constructor B() + kotlin.jvm.jvmStatic() public constructor B() 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 @@ -15,7 +15,7 @@ internal final class A { } internal final class C { - kotlin.platform.platformStatic() public constructor C() + kotlin.jvm.jvmStatic() public constructor C() 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 diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/finalAndAbstract.kt b/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/finalAndAbstract.kt index 2c366bebbf9..1f107b1f27d 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/finalAndAbstract.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/finalAndAbstract.kt @@ -1,5 +1,5 @@ // !DIAGNOSTICS: -UNUSED_VARIABLE -import kotlin.platform.platformStatic +import kotlin.jvm.jvmStatic abstract class A { @@ -12,24 +12,24 @@ abstract class A { object B: A() { - @platformStatic override fun a() {} + @jvmStatic override fun a() {} - @platformStatic override fun b() {} + @jvmStatic override fun b() {} - @platformStatic final override fun c() {} + @jvmStatic final override fun c() {} - @platformStatic open fun d() {} + @jvmStatic open fun d() {} } class C { companion object: A() { - @platformStatic override fun a() {} + @jvmStatic override fun a() {} - @platformStatic override fun b() {} + @jvmStatic override fun b() {} - @platformStatic final override fun c() {} + @jvmStatic final override fun c() {} - @platformStatic open fun d() {} + @jvmStatic open fun d() {} } } \ No newline at end of file diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/finalAndAbstract.txt b/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/finalAndAbstract.txt index f6dd5cbabe1..3f513469131 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/finalAndAbstract.txt +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/finalAndAbstract.txt @@ -12,10 +12,10 @@ internal abstract class A { internal object B : A { private constructor B() - kotlin.platform.platformStatic() internal open override /*1*/ fun a(): kotlin.Unit - kotlin.platform.platformStatic() internal open override /*1*/ fun b(): kotlin.Unit - kotlin.platform.platformStatic() internal final override /*1*/ fun c(): kotlin.Unit - kotlin.platform.platformStatic() internal open fun d(): kotlin.Unit + kotlin.jvm.jvmStatic() internal open override /*1*/ fun a(): kotlin.Unit + kotlin.jvm.jvmStatic() internal open override /*1*/ fun b(): kotlin.Unit + kotlin.jvm.jvmStatic() internal final override /*1*/ fun c(): kotlin.Unit + kotlin.jvm.jvmStatic() internal open fun d(): kotlin.Unit 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 @@ -29,10 +29,10 @@ internal final class C { public companion object Companion : A { private constructor Companion() - kotlin.platform.platformStatic() internal open override /*1*/ fun a(): kotlin.Unit - kotlin.platform.platformStatic() internal open override /*1*/ fun b(): kotlin.Unit - kotlin.platform.platformStatic() internal final override /*1*/ fun c(): kotlin.Unit - kotlin.platform.platformStatic() internal open fun d(): kotlin.Unit + kotlin.jvm.jvmStatic() internal open override /*1*/ fun a(): kotlin.Unit + kotlin.jvm.jvmStatic() internal open override /*1*/ fun b(): kotlin.Unit + kotlin.jvm.jvmStatic() internal final override /*1*/ fun c(): kotlin.Unit + kotlin.jvm.jvmStatic() internal open fun d(): kotlin.Unit 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 diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/functions.kt b/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/functions.kt index 432e89e7508..212a82d1c5c 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/functions.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/functions.kt @@ -1,54 +1,54 @@ // !DIAGNOSTICS: -UNUSED_VARIABLE -import kotlin.platform.platformStatic +import kotlin.jvm.jvmStatic class A { companion object { - platformStatic fun a1() { + jvmStatic fun a1() { } } object A { - platformStatic fun a2() { + jvmStatic fun a2() { } } fun test() { val s = object { - platformStatic fun a3() { + jvmStatic fun a3() { } } } - platformStatic fun a4() { + jvmStatic fun a4() { } } interface B { companion object { - platformStatic fun a1() { + jvmStatic fun a1() { } } object A { - platformStatic fun a2() { + jvmStatic fun a2() { } } fun test() { val s = object { - platformStatic fun a3() { + jvmStatic fun a3() { } } } - platformStatic fun a4() { + jvmStatic fun a4() { } } \ No newline at end of file diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/functions.txt b/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/functions.txt index faa2d759255..c20bcb8258a 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/functions.txt +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/functions.txt @@ -2,7 +2,7 @@ package internal final class A { public constructor A() - kotlin.platform.platformStatic() internal final fun a4(): kotlin.Unit + kotlin.jvm.jvmStatic() internal final fun a4(): kotlin.Unit public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int internal final fun test(): kotlin.Unit @@ -10,7 +10,7 @@ internal final class A { internal object A { private constructor A() - kotlin.platform.platformStatic() internal final fun a2(): kotlin.Unit + kotlin.jvm.jvmStatic() internal final fun a2(): kotlin.Unit 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 @@ -18,7 +18,7 @@ internal final class A { public companion object Companion { private constructor Companion() - kotlin.platform.platformStatic() internal final fun a1(): kotlin.Unit + kotlin.jvm.jvmStatic() internal final fun a1(): kotlin.Unit 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 @@ -26,7 +26,7 @@ internal final class A { } internal interface B { - kotlin.platform.platformStatic() internal open fun a4(): kotlin.Unit + kotlin.jvm.jvmStatic() internal open fun a4(): kotlin.Unit public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int internal open fun test(): kotlin.Unit @@ -34,7 +34,7 @@ internal interface B { internal object A { private constructor A() - kotlin.platform.platformStatic() internal final fun a2(): kotlin.Unit + kotlin.jvm.jvmStatic() internal final fun a2(): kotlin.Unit 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 @@ -42,7 +42,7 @@ internal interface B { public companion object Companion { private constructor Companion() - kotlin.platform.platformStatic() internal final fun a1(): kotlin.Unit + kotlin.jvm.jvmStatic() internal final fun a1(): kotlin.Unit 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 diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/localFun.kt b/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/localFun.kt index d07a28619a3..9689ae1d7f8 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/localFun.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/localFun.kt @@ -1,8 +1,8 @@ // !DIAGNOSTICS: -UNUSED_VARIABLE -import kotlin.platform.platformStatic +import kotlin.jvm.jvmStatic fun main(args: Array) { - @platformStatic fun a(){ + @jvmStatic fun a(){ } } \ No newline at end of file diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/property.kt b/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/property.kt index 1e61dd96bcf..cfe384c0287 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/property.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/property.kt @@ -1,5 +1,5 @@ // !DIAGNOSTICS: -UNUSED_VARIABLE -import kotlin.platform.platformStatic +import kotlin.jvm.jvmStatic open class B { public open val base1 : Int = 1 @@ -9,38 +9,38 @@ open class B { class A { companion object : B() { var p1:Int = 1 - @platformStatic set(p: Int) { + @jvmStatic set(p: Int) { p1 = 1 } - @platformStatic val z = 1; + @jvmStatic val z = 1; - @platformStatic override val base1: Int = 0 + @jvmStatic override val base1: Int = 0 override val base2: Int = 0 - @platformStatic get + @jvmStatic get } object A : B() { var p:Int = 1 - @platformStatic set(p1: Int) { + @jvmStatic set(p1: Int) { p = 1 } - @platformStatic val z = 1; + @jvmStatic val z = 1; - @platformStatic override val base1: Int = 0 + @jvmStatic override val base1: Int = 0 - platformStatic open fun f() {} + jvmStatic open fun f() {} override val base2: Int = 0 - @platformStatic get + @jvmStatic get } var p:Int = 1 - @platformStatic set(p1: Int) { + @jvmStatic set(p1: Int) { p = 1 } - @platformStatic val z2 = 1; + @jvmStatic val z2 = 1; } \ No newline at end of file diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/property.txt b/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/property.txt index bde8c1d25cf..64aae42a203 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/property.txt +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/property.txt @@ -3,29 +3,29 @@ package internal final class A { public constructor A() internal final var p: kotlin.Int - kotlin.platform.platformStatic() internal final val z2: kotlin.Int = 1 + kotlin.jvm.jvmStatic() internal final val z2: kotlin.Int = 1 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 internal object A : B { private constructor A() - kotlin.platform.platformStatic() public open override /*1*/ val base1: kotlin.Int = 0 + kotlin.jvm.jvmStatic() public open override /*1*/ val base1: kotlin.Int = 0 public open override /*1*/ val base2: kotlin.Int = 0 internal final var p: kotlin.Int - kotlin.platform.platformStatic() internal final val z: kotlin.Int = 1 + kotlin.jvm.jvmStatic() internal final val z: kotlin.Int = 1 public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - kotlin.platform.platformStatic() internal open fun f(): kotlin.Unit + kotlin.jvm.jvmStatic() internal open fun f(): kotlin.Unit public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } public companion object Companion : B { private constructor Companion() - kotlin.platform.platformStatic() public open override /*1*/ val base1: kotlin.Int = 0 + kotlin.jvm.jvmStatic() public open override /*1*/ val base1: kotlin.Int = 0 public open override /*1*/ val base2: kotlin.Int = 0 internal final var p1: kotlin.Int - kotlin.platform.platformStatic() internal final val z: kotlin.Int = 1 + kotlin.jvm.jvmStatic() internal final val z: kotlin.Int = 1 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 diff --git a/compiler/testData/diagnostics/testsWithStdLib/duplicateJvmSignature/platformStaticInClassObject.kt b/compiler/testData/diagnostics/testsWithStdLib/duplicateJvmSignature/platformStaticInClassObject.kt index 1de45895a3f..67c053ec61e 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/duplicateJvmSignature/platformStaticInClassObject.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/duplicateJvmSignature/platformStaticInClassObject.kt @@ -1,4 +1,4 @@ -import kotlin.platform.platformStatic +import kotlin.jvm.jvmStatic open class Base { fun foo() {} @@ -6,6 +6,6 @@ open class Base { class Derived : Base() { companion object { - platformStatic fun foo() {} + jvmStatic fun foo() {} } } diff --git a/compiler/testData/diagnostics/testsWithStdLib/duplicateJvmSignature/platformStaticInClassObject.txt b/compiler/testData/diagnostics/testsWithStdLib/duplicateJvmSignature/platformStaticInClassObject.txt index 8d348b3bd01..8bea8a76e7d 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/duplicateJvmSignature/platformStaticInClassObject.txt +++ b/compiler/testData/diagnostics/testsWithStdLib/duplicateJvmSignature/platformStaticInClassObject.txt @@ -18,7 +18,7 @@ internal final class Derived : Base { public companion object Companion { private constructor Companion() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - kotlin.platform.platformStatic() internal final fun foo(): kotlin.Unit + kotlin.jvm.jvmStatic() internal final fun foo(): kotlin.Unit public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } diff --git a/compiler/testData/diagnostics/testsWithStdLib/duplicateJvmSignature/platformStaticInObject.kt b/compiler/testData/diagnostics/testsWithStdLib/duplicateJvmSignature/platformStaticInObject.kt index 30b53da6fa5..64cb16d3c83 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/duplicateJvmSignature/platformStaticInObject.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/duplicateJvmSignature/platformStaticInObject.kt @@ -1,10 +1,10 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER -import kotlin.platform.platformStatic +import kotlin.jvm.jvmStatic open class Base { fun `foo$default`(i: Int, mask: Int) {} } object Derived : Base() { - platformStatic fun foo(i: Int = 0) {} + jvmStatic fun foo(i: Int = 0) {} } diff --git a/compiler/testData/diagnostics/testsWithStdLib/duplicateJvmSignature/platformStaticInObject.txt b/compiler/testData/diagnostics/testsWithStdLib/duplicateJvmSignature/platformStaticInObject.txt index 5d4208c1582..619afb57e12 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/duplicateJvmSignature/platformStaticInObject.txt +++ b/compiler/testData/diagnostics/testsWithStdLib/duplicateJvmSignature/platformStaticInObject.txt @@ -11,7 +11,7 @@ internal open class Base { internal object Derived : Base { private constructor Derived() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - kotlin.platform.platformStatic() internal final fun foo(/*0*/ i: kotlin.Int = ...): kotlin.Unit + kotlin.jvm.jvmStatic() internal final fun foo(/*0*/ i: kotlin.Int = ...): kotlin.Unit internal final override /*1*/ /*fake_override*/ fun `foo$default`(/*0*/ i: kotlin.Int, /*1*/ mask: kotlin.Int): kotlin.Unit public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String diff --git a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KFunctionImpl.kt b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KFunctionImpl.kt index 5aa59294790..326f0184311 100644 --- a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KFunctionImpl.kt +++ b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KFunctionImpl.kt @@ -66,7 +66,11 @@ open class KFunctionImpl protected constructor( is Constructor<*> -> FunctionCaller.Constructor(member) is Method -> when { !Modifier.isStatic(member.modifiers) -> FunctionCaller.InstanceMethod(member) - descriptor.annotations.findAnnotation(PLATFORM_STATIC) != null -> FunctionCaller.PlatformStaticInObject(member) + + descriptor.annotations.findAnnotation(PLATFORM_STATIC) != null, + descriptor.annotations.findAnnotation(JVM_STATIC) != null-> + FunctionCaller.PlatformStaticInObject(member) + else -> FunctionCaller.StaticMethod(member) } else -> throw KotlinReflectionInternalError("Call is not yet supported for this function: $descriptor") diff --git a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KPropertyImpl.kt b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KPropertyImpl.kt index 2ef2cd340a4..6499ceaf462 100644 --- a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KPropertyImpl.kt +++ b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KPropertyImpl.kt @@ -80,7 +80,8 @@ interface KMutablePropertyImpl : KMutableProperty, KPropertyImpl { private fun KPropertyImpl.Accessor<*>.computeCallerForAccessor(isGetter: Boolean): FunctionCaller<*> { fun isPlatformStaticProperty() = - property.descriptor.annotations.findAnnotation(PLATFORM_STATIC) != null + property.descriptor.annotations.findAnnotation(PLATFORM_STATIC) != null || + property.descriptor.annotations.findAnnotation(JVM_STATIC) != null fun isNotNullProperty() = !TypeUtils.isNullableType(property.descriptor.type) diff --git a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/util.kt b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/util.kt index 89a4e3b91b6..d530c0d8950 100644 --- a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/util.kt +++ b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/util.kt @@ -20,6 +20,7 @@ import org.jetbrains.kotlin.name.FqName import kotlin.reflect.IllegalCallableAccessException internal val PLATFORM_STATIC = FqName("kotlin.platform.platformStatic") +internal val JVM_STATIC = FqName("kotlin.jvm.jvmStatic") // TODO: wrap other exceptions internal inline fun reflectionCall(block: () -> R): R = diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/JavaToKotlinPreconversionPullUpHelper.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/JavaToKotlinPreconversionPullUpHelper.kt index 161a13bded7..e57ba7388d4 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/JavaToKotlinPreconversionPullUpHelper.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/JavaToKotlinPreconversionPullUpHelper.kt @@ -35,7 +35,7 @@ import org.jetbrains.kotlin.idea.refactoring.safeDelete.removeOverrideModifier import org.jetbrains.kotlin.lexer.JetTokens import org.jetbrains.kotlin.load.java.JvmAbi import org.jetbrains.kotlin.psi.* -import java.util.HashMap +import java.util.* public class JavaToKotlinPreconversionPullUpHelper( private val data: PullUpData, @@ -58,7 +58,7 @@ public class JavaToKotlinPreconversionPullUpHelper( private val fieldsToUsages = HashMap>() private val dummyAccessorByName = HashMap() - private val platformStaticAnnotation = JetPsiFactory(data.sourceClass.project).createAnnotationEntry("kotlin.platform.platformStatic") + private val jvmStaticAnnotation = JetPsiFactory(data.sourceClass.project).createAnnotationEntry("kotlin.jvm.jvmStatic") companion object { private var PsiMember.originalMember: PsiMember? by CopyableUserDataProperty(Key.create("ORIGINAL_MEMBER")) @@ -147,7 +147,7 @@ public class JavaToKotlinPreconversionPullUpHelper( newDeclaration.removeModifier(JetTokens.ABSTRACT_KEYWORD) } if (member.hasModifierProperty(PsiModifier.STATIC) && newDeclaration is JetNamedFunction) { - newDeclaration.addAnnotationWithSpace(platformStaticAnnotation).addToShorteningWaitSet() + newDeclaration.addAnnotationWithSpace(jvmStaticAnnotation).addToShorteningWaitSet() } if (originalMember is PsiField) { diff --git a/idea/testData/checker/PlatformStaticUsagesRuntime.kt b/idea/testData/checker/PlatformStaticUsagesRuntime.kt index aac4ba83248..5cce5f3c25d 100644 --- a/idea/testData/checker/PlatformStaticUsagesRuntime.kt +++ b/idea/testData/checker/PlatformStaticUsagesRuntime.kt @@ -1,57 +1,57 @@ -import kotlin.platform.platformStatic +import kotlin.jvm.jvmStatic -platformStatic +jvmStatic class A { - platformStatic + jvmStatic companion object { - platformStatic fun a1() { + jvmStatic fun a1() { } } - platformStatic + jvmStatic object A { - platformStatic fun a2() { + jvmStatic fun a2() { } } fun test() { val s = object { - platformStatic fun a3() { + jvmStatic fun a3() { } } } - platformStatic fun a4() { + jvmStatic fun a4() { } } -platformStatic +jvmStatic interface B { companion object { - platformStatic fun a1() { + jvmStatic fun a1() { } } object A { - platformStatic fun a2() { + jvmStatic fun a2() { } } fun test() { val s = object { - platformStatic fun a3() { + jvmStatic fun a3() { } } } - platformStatic fun a4() { + jvmStatic fun a4() { } } \ No newline at end of file diff --git a/idea/testData/copyPaste/conversion/FileWithNoPackageStatement.expected.kt b/idea/testData/copyPaste/conversion/FileWithNoPackageStatement.expected.kt index 40672d14074..661e26aa67b 100644 --- a/idea/testData/copyPaste/conversion/FileWithNoPackageStatement.expected.kt +++ b/idea/testData/copyPaste/conversion/FileWithNoPackageStatement.expected.kt @@ -1,9 +1,7 @@ package to -import kotlin.platform.platformStatic - public object JavaClass { - platformStatic public fun main(args: Array) { + jvmStatic public fun main(args: Array) { println("Hello, world!") } } \ No newline at end of file diff --git a/idea/testData/refactoring/pullUp/j2k/fromClassToClass.kt.after b/idea/testData/refactoring/pullUp/j2k/fromClassToClass.kt.after index f1a92f7af25..6d3a79d5fab 100644 --- a/idea/testData/refactoring/pullUp/j2k/fromClassToClass.kt.after +++ b/idea/testData/refactoring/pullUp/j2k/fromClassToClass.kt.after @@ -1,5 +1,3 @@ -import kotlin.platform.platformStatic - abstract class A { // INFO: {"checked": "true"} var x = 2 * 3 @@ -23,7 +21,7 @@ abstract class A { var X = "1" + "2" // INFO: {"checked": "true"} - platformStatic fun foo2(n: Int): String { + jvmStatic fun foo2(n: Int): String { return "_" + n + "_" } } diff --git a/idea/testData/refactoring/pullUp/j2k/fromClassToClassAndMakeAbstract.kt.after b/idea/testData/refactoring/pullUp/j2k/fromClassToClassAndMakeAbstract.kt.after index 18eaf67af6b..901e843f176 100644 --- a/idea/testData/refactoring/pullUp/j2k/fromClassToClassAndMakeAbstract.kt.after +++ b/idea/testData/refactoring/pullUp/j2k/fromClassToClassAndMakeAbstract.kt.after @@ -1,5 +1,3 @@ -import kotlin.platform.platformStatic - abstract class A { // INFO: {"checked": "true", "toAbstract": "true"} var x = 2 * 3 @@ -21,7 +19,7 @@ abstract class A { var X = "1" + "2" // INFO: {"checked": "true", "toAbstract": "true"} - platformStatic fun foo2(n: Int): String { + jvmStatic fun foo2(n: Int): String { return "_" + n + "_" } } diff --git a/idea/testData/refactoring/pullUp/j2k/fromClassToInterface.kt.after b/idea/testData/refactoring/pullUp/j2k/fromClassToInterface.kt.after index 6cd5ccba955..bf9ce487c82 100644 --- a/idea/testData/refactoring/pullUp/j2k/fromClassToInterface.kt.after +++ b/idea/testData/refactoring/pullUp/j2k/fromClassToInterface.kt.after @@ -1,5 +1,3 @@ -import kotlin.platform.platformStatic - interface A { // INFO: {"checked": "true"} class Y @@ -17,7 +15,7 @@ interface A { var X = "1" + "2" // INFO: {"checked": "true"} - platformStatic fun foo2(n: Int): String { + jvmStatic fun foo2(n: Int): String { return "_" + n + "_" } } diff --git a/idea/testData/refactoring/pullUp/j2k/fromClassToNestedClass.kt.after b/idea/testData/refactoring/pullUp/j2k/fromClassToNestedClass.kt.after index 30d45f2a196..7ab62522598 100644 --- a/idea/testData/refactoring/pullUp/j2k/fromClassToNestedClass.kt.after +++ b/idea/testData/refactoring/pullUp/j2k/fromClassToNestedClass.kt.after @@ -1,5 +1,3 @@ -import kotlin.platform.platformStatic - class T { class U { abstract class A { @@ -25,7 +23,7 @@ class T { var X = "1" + "2" // INFO: {"checked": "true"} - platformStatic fun foo2(n: Int): String { + jvmStatic fun foo2(n: Int): String { return "_" + n + "_" } } diff --git a/j2k/src/org/jetbrains/kotlin/j2k/Converter.kt b/j2k/src/org/jetbrains/kotlin/j2k/Converter.kt index 8bc77e25839..ca5d86ccf98 100644 --- a/j2k/src/org/jetbrains/kotlin/j2k/Converter.kt +++ b/j2k/src/org/jetbrains/kotlin/j2k/Converter.kt @@ -32,8 +32,7 @@ import org.jetbrains.kotlin.j2k.usageProcessing.UsageProcessing import org.jetbrains.kotlin.j2k.usageProcessing.UsageProcessingExpressionConverter import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.types.expressions.OperatorConventions.* -import java.util.ArrayList -import java.util.HashMap +import java.util.* class Converter private constructor( private val elementToConvert: PsiElement, @@ -424,7 +423,7 @@ class Converter private constructor( if (function == null) return null if (PsiMethodUtil.isMainMethod(method)) { - val fqName = FqName("kotlin.platform.platformStatic") + val fqName = FqName("kotlin.jvm.jvmStatic") val identifier = Identifier(fqName.shortName().identifier, imports = listOf(fqName)).assignNoPrototype() function.annotations += Annotations( diff --git a/j2k/testData/fileOrElement/classExpression/primitivesAndArrays.kt b/j2k/testData/fileOrElement/classExpression/primitivesAndArrays.kt index 067900b1817..a05d561940f 100644 --- a/j2k/testData/fileOrElement/classExpression/primitivesAndArrays.kt +++ b/j2k/testData/fileOrElement/classExpression/primitivesAndArrays.kt @@ -1,7 +1,5 @@ -import kotlin.platform.platformStatic - public object A { - platformStatic public fun main(args: Array) { + jvmStatic public fun main(args: Array) { println(Void.TYPE) println(Integer.TYPE) println(java.lang.Double.TYPE) diff --git a/j2k/testData/fileOrElement/for/withContinue1.kt b/j2k/testData/fileOrElement/for/withContinue1.kt index 9b362259a82..917f163bb38 100644 --- a/j2k/testData/fileOrElement/for/withContinue1.kt +++ b/j2k/testData/fileOrElement/for/withContinue1.kt @@ -1,7 +1,5 @@ -import kotlin.platform.platformStatic - public object TestClass { - platformStatic public fun main(args: Array) { + jvmStatic public fun main(args: Array) { var i = 0 while (i < 10) { if (i == 4 || i == 8) { diff --git a/j2k/testData/fileOrElement/for/withContinue2.kt b/j2k/testData/fileOrElement/for/withContinue2.kt index 41176c10032..f52a6d4d72a 100644 --- a/j2k/testData/fileOrElement/for/withContinue2.kt +++ b/j2k/testData/fileOrElement/for/withContinue2.kt @@ -1,7 +1,5 @@ -import kotlin.platform.platformStatic - public object TestClass { - platformStatic public fun main(args: Array) { + jvmStatic public fun main(args: Array) { var i = 0 var j = 1 while (i < 10) { diff --git a/j2k/testData/fileOrElement/for/withContinue3.kt b/j2k/testData/fileOrElement/for/withContinue3.kt index f5fe9285007..a3d00cd5b4f 100644 --- a/j2k/testData/fileOrElement/for/withContinue3.kt +++ b/j2k/testData/fileOrElement/for/withContinue3.kt @@ -1,7 +1,5 @@ -import kotlin.platform.platformStatic - public object TestClass { - platformStatic public fun main(args: Array) { + jvmStatic public fun main(args: Array) { var i = 1 while (i < 1000) { if (i == 4 || i == 8) { diff --git a/j2k/testData/fileOrElement/for/withContinueAndLabels.kt b/j2k/testData/fileOrElement/for/withContinueAndLabels.kt index 81c0a012018..af8b389af8e 100644 --- a/j2k/testData/fileOrElement/for/withContinueAndLabels.kt +++ b/j2k/testData/fileOrElement/for/withContinueAndLabels.kt @@ -1,7 +1,5 @@ -import kotlin.platform.platformStatic - public object TestClass { - platformStatic public fun main(args: Array) { + jvmStatic public fun main(args: Array) { var i = 1 OuterLoop1@ OuterLoop2@ while (i < 1000) { var j = 1 diff --git a/j2k/testData/fileOrElement/function/main.kt b/j2k/testData/fileOrElement/function/main.kt index 6d8ee808ee3..c231713c0c5 100644 --- a/j2k/testData/fileOrElement/function/main.kt +++ b/j2k/testData/fileOrElement/function/main.kt @@ -1,5 +1,2 @@ -import kotlin.platform.platformStatic - - -platformStatic public fun main(args: Array) { +jvmStatic public fun main(args: Array) { } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/function/main2.kt b/j2k/testData/fileOrElement/function/main2.kt index 68a52c48e8c..2df74fc65d8 100644 --- a/j2k/testData/fileOrElement/function/main2.kt +++ b/j2k/testData/fileOrElement/function/main2.kt @@ -1,6 +1,4 @@ -import kotlin.platform.platformStatic - public object A { - platformStatic public fun main(args: Array) { + jvmStatic public fun main(args: Array) { } } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/function/mainAndNullabilitySetting.kt b/j2k/testData/fileOrElement/function/mainAndNullabilitySetting.kt index e00e72b7c75..94dd269709c 100644 --- a/j2k/testData/fileOrElement/function/mainAndNullabilitySetting.kt +++ b/j2k/testData/fileOrElement/function/mainAndNullabilitySetting.kt @@ -1,7 +1,5 @@ -import kotlin.platform.platformStatic - // !forceNotNullTypes: false public object A { - platformStatic public fun main(args: Array) { + jvmStatic public fun main(args: Array) { } } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/issues/kt-638.kt b/j2k/testData/fileOrElement/issues/kt-638.kt index 98af3de61ab..e841a0bf806 100644 --- a/j2k/testData/fileOrElement/issues/kt-638.kt +++ b/j2k/testData/fileOrElement/issues/kt-638.kt @@ -1,6 +1,4 @@ // ERROR: Property must be initialized or be abstract -import kotlin.platform.platformStatic - public class Identifier { public val name: T private val myHasDollar: Boolean @@ -23,7 +21,7 @@ public class Identifier { } public object User { - platformStatic public fun main(args: Array) { + jvmStatic public fun main(args: Array) { val i1 = Identifier("name", false, true) val i2 = Identifier("name", false) val i3 = Identifier("name") diff --git a/j2k/testData/fileOrElement/issues/kt-807.kt b/j2k/testData/fileOrElement/issues/kt-807.kt index 56b53c7345f..08754035833 100644 --- a/j2k/testData/fileOrElement/issues/kt-807.kt +++ b/j2k/testData/fileOrElement/issues/kt-807.kt @@ -3,10 +3,9 @@ // ERROR: Assignments are not expressions, and only expressions are allowed in this context // ERROR: Unresolved reference: close import java.io.* -import kotlin.platform.platformStatic object FileRead { - platformStatic public fun main(args: Array) { + jvmStatic public fun main(args: Array) { try { val fstream = FileInputStream() val `in` = DataInputStream(fstream) diff --git a/j2k/testData/fileOrElement/issues/kt-871.kt b/j2k/testData/fileOrElement/issues/kt-871.kt index 0763f75f924..e47e664331b 100644 --- a/j2k/testData/fileOrElement/issues/kt-871.kt +++ b/j2k/testData/fileOrElement/issues/kt-871.kt @@ -1,9 +1,7 @@ package demo -import kotlin.platform.platformStatic - object Program { - platformStatic public fun main(args: Array) { + jvmStatic public fun main(args: Array) { println("Halo!") } } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/switch/comlicatedFallDown.kt b/j2k/testData/fileOrElement/switch/comlicatedFallDown.kt index c7545be81ec..63b656ac25d 100644 --- a/j2k/testData/fileOrElement/switch/comlicatedFallDown.kt +++ b/j2k/testData/fileOrElement/switch/comlicatedFallDown.kt @@ -1,7 +1,5 @@ package demo -import kotlin.platform.platformStatic - public object SwitchDemo { public fun print(o: Any) { println(o) @@ -78,7 +76,7 @@ public object SwitchDemo { println(monthString) } - platformStatic public fun main(args: Array) { + jvmStatic public fun main(args: Array) { for (i in 1..12) test(i) } diff --git a/j2k/testData/fileOrElement/switch/emptySwitch.kt b/j2k/testData/fileOrElement/switch/emptySwitch.kt index 316559252b3..530c3f992fd 100644 --- a/j2k/testData/fileOrElement/switch/emptySwitch.kt +++ b/j2k/testData/fileOrElement/switch/emptySwitch.kt @@ -1,7 +1,5 @@ -import kotlin.platform.platformStatic - public object NonDefault { - platformStatic public fun main(args: Array) { + jvmStatic public fun main(args: Array) { val value = 3 val valueString = "" diff --git a/j2k/testData/fileOrElement/switch/fallDown.kt b/j2k/testData/fileOrElement/switch/fallDown.kt index 1887f9e3ca8..de30e084c3c 100644 --- a/j2k/testData/fileOrElement/switch/fallDown.kt +++ b/j2k/testData/fileOrElement/switch/fallDown.kt @@ -1,9 +1,7 @@ package switch_demo -import kotlin.platform.platformStatic - public object SwitchDemo { - platformStatic public fun main(args: Array) { + jvmStatic public fun main(args: Array) { val month = 8 val monthString: String when (month) { diff --git a/j2k/testData/fileOrElement/switch/fallDownWithBlocks.kt b/j2k/testData/fileOrElement/switch/fallDownWithBlocks.kt index 93446a4d249..eef727c6749 100644 --- a/j2k/testData/fileOrElement/switch/fallDownWithBlocks.kt +++ b/j2k/testData/fileOrElement/switch/fallDownWithBlocks.kt @@ -1,7 +1,5 @@ -import kotlin.platform.platformStatic - public object C { - platformStatic public fun main(args: Array) { + jvmStatic public fun main(args: Array) { when (args.size()) { 1 -> { run { diff --git a/j2k/testData/fileOrElement/switch/kt-539.kt b/j2k/testData/fileOrElement/switch/kt-539.kt index 3ecb8145c5e..d8131a0e4ab 100644 --- a/j2k/testData/fileOrElement/switch/kt-539.kt +++ b/j2k/testData/fileOrElement/switch/kt-539.kt @@ -1,9 +1,7 @@ package switch_demo -import kotlin.platform.platformStatic - public object SwitchDemo { - platformStatic public fun main(args: Array) { + jvmStatic public fun main(args: Array) { val month = 8 val monthString: String diff --git a/j2k/testData/fileOrElement/switch/nondefault.kt b/j2k/testData/fileOrElement/switch/nondefault.kt index b93a70975f4..14071c0117a 100644 --- a/j2k/testData/fileOrElement/switch/nondefault.kt +++ b/j2k/testData/fileOrElement/switch/nondefault.kt @@ -1,7 +1,5 @@ -import kotlin.platform.platformStatic - public object NonDefault { - platformStatic public fun main(args: Array) { + jvmStatic public fun main(args: Array) { val value = 3 var valueString = "" diff --git a/libraries/stdlib/src/kotlin/jvm/JvmPlatformAnnotations.kt b/libraries/stdlib/src/kotlin/jvm/JvmPlatformAnnotations.kt index 7e2f102a56b..6d39e03def8 100644 --- a/libraries/stdlib/src/kotlin/jvm/JvmPlatformAnnotations.kt +++ b/libraries/stdlib/src/kotlin/jvm/JvmPlatformAnnotations.kt @@ -25,6 +25,15 @@ package kotlin.jvm target(AnnotationTarget.FUNCTION, AnnotationTarget.CONSTRUCTOR) public annotation(retention = AnnotationRetention.BINARY, mustBeDocumented = true) class jvmOverloads + +/** + * Specifies that a static method or field needs to be generated from this element. + * See the [Kotlin language documentation](http://kotlinlang.org/docs/reference/java-interop.html#static-methods-and-fields) + * for more information. + */ +target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.FIELD, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER) +public annotation(retention = AnnotationRetention.RUNTIME, mustBeDocumented = true) class jvmStatic + /** * Instructs the Kotlin compiler to generate a public backing field for this property. */ diff --git a/libraries/stdlib/src/kotlin/platform/annotations.kt b/libraries/stdlib/src/kotlin/platform/annotations.kt index 8a059bc8bfc..05d9aed3d11 100644 --- a/libraries/stdlib/src/kotlin/platform/annotations.kt +++ b/libraries/stdlib/src/kotlin/platform/annotations.kt @@ -28,10 +28,6 @@ import kotlin.annotation.AnnotationTarget.* target(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER) public annotation(retention = AnnotationRetention.RUNTIME, mustBeDocumented = true) class platformName(public val name: String) -/** - * Specifies that a static method or field needs to be generated from this element. - * See the [Kotlin language documentation](http://kotlinlang.org/docs/reference/java-interop.html#static-methods-and-fields) - * for more information. - */ target(FUNCTION, PROPERTY, FIELD, PROPERTY_GETTER, PROPERTY_SETTER) +deprecated("Use kotlin.jvm.jvmStatic instead", ReplaceWith("kotlin.jvm.jvmStatic")) public annotation(retention = AnnotationRetention.RUNTIME, mustBeDocumented = true) class platformStatic