From 55b2029b3ca67415f2b88e90735612fc376068f8 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Wed, 2 Sep 2015 18:00:01 +0300 Subject: [PATCH] Remove FIELD target from jvmStatic and platformStatic annotations --- .../platformStatic/simpleClassObjectProperty.txt | 2 +- .../platformStatic/simpleObjectProperty.txt | 2 +- .../PlatformStaticInObject.A.kt | 10 ++++++++++ .../PlatformStaticInObject.B.kt | 6 ++++++ .../CompileKotlinAgainstKotlinTestGenerated.java | 6 ++++++ .../src/kotlin/reflect/jvm/internal/KPropertyImpl.kt | 4 ++-- .../stdlib/src/kotlin/jvm/JvmPlatformAnnotations.kt | 2 +- libraries/stdlib/src/kotlin/platform/annotations.kt | 2 +- 8 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 compiler/testData/compileKotlinAgainstKotlin/PlatformStaticInObject.A.kt create mode 100644 compiler/testData/compileKotlinAgainstKotlin/PlatformStaticInObject.B.kt diff --git a/compiler/testData/compileJavaAgainstKotlin/platformStatic/simpleClassObjectProperty.txt b/compiler/testData/compileJavaAgainstKotlin/platformStatic/simpleClassObjectProperty.txt index ffe2cd297fb..462df314f9c 100644 --- a/compiler/testData/compileJavaAgainstKotlin/platformStatic/simpleClassObjectProperty.txt +++ b/compiler/testData/compileJavaAgainstKotlin/platformStatic/simpleClassObjectProperty.txt @@ -7,7 +7,7 @@ internal final class A { public companion object Companion { private constructor Companion() - @field:kotlin.platform.platformStatic() internal final val b: kotlin.String + kotlin.platform.platformStatic() internal final val b: kotlin.String internal final var test.A.c: kotlin.String } } diff --git a/compiler/testData/compileJavaAgainstKotlin/platformStatic/simpleObjectProperty.txt b/compiler/testData/compileJavaAgainstKotlin/platformStatic/simpleObjectProperty.txt index 1b6885a3e09..0f8aa9229f0 100644 --- a/compiler/testData/compileJavaAgainstKotlin/platformStatic/simpleObjectProperty.txt +++ b/compiler/testData/compileJavaAgainstKotlin/platformStatic/simpleObjectProperty.txt @@ -4,7 +4,7 @@ internal fun main(/*0*/ kotlin.Array): kotlin.Unit internal object A { private constructor A() - @field:kotlin.platform.platformStatic() internal final val b: kotlin.String + kotlin.platform.platformStatic() internal final val b: kotlin.String internal final var test.A.c: kotlin.String } diff --git a/compiler/testData/compileKotlinAgainstKotlin/PlatformStaticInObject.A.kt b/compiler/testData/compileKotlinAgainstKotlin/PlatformStaticInObject.A.kt new file mode 100644 index 00000000000..518295f26e8 --- /dev/null +++ b/compiler/testData/compileKotlinAgainstKotlin/PlatformStaticInObject.A.kt @@ -0,0 +1,10 @@ +package aaa + +import kotlin.jvm.* + +public object TestObject { + + @jvmStatic + public val test: String = "test" + +} \ No newline at end of file diff --git a/compiler/testData/compileKotlinAgainstKotlin/PlatformStaticInObject.B.kt b/compiler/testData/compileKotlinAgainstKotlin/PlatformStaticInObject.B.kt new file mode 100644 index 00000000000..b5ece9a0beb --- /dev/null +++ b/compiler/testData/compileKotlinAgainstKotlin/PlatformStaticInObject.B.kt @@ -0,0 +1,6 @@ +fun main(args: Array) { + val h = aaa.TestObject.test + if (h != "test") { + throw Exception() + } +} diff --git a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstKotlinTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstKotlinTestGenerated.java index daa8b7daea7..e15f8f7b502 100644 --- a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstKotlinTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstKotlinTestGenerated.java @@ -131,6 +131,12 @@ public class CompileKotlinAgainstKotlinTestGenerated extends AbstractCompileKotl doTest(fileName); } + @TestMetadata("PlatformStaticInObject.A.kt") + public void testPlatformStaticInObject() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/compileKotlinAgainstKotlin/PlatformStaticInObject.A.kt"); + doTest(fileName); + } + @TestMetadata("PlatformTypes.A.kt") public void testPlatformTypes() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/compileKotlinAgainstKotlin/PlatformTypes.A.kt"); 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 743bc580fe1..7a27e7db248 100644 --- a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KPropertyImpl.kt +++ b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KPropertyImpl.kt @@ -87,8 +87,8 @@ interface KMutablePropertyImpl : KMutableProperty, KPropertyImpl { private fun KPropertyImpl.Accessor<*>.computeCallerForAccessor(isGetter: Boolean): FunctionCaller<*> { fun isJvmStaticProperty() = - Annotations.Companion.findAnyAnnotation(property.descriptor.annotations, PLATFORM_STATIC) != null || - Annotations.Companion.findAnyAnnotation(property.descriptor.annotations, JVM_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/libraries/stdlib/src/kotlin/jvm/JvmPlatformAnnotations.kt b/libraries/stdlib/src/kotlin/jvm/JvmPlatformAnnotations.kt index 71f72362a65..3d782146861 100644 --- a/libraries/stdlib/src/kotlin/jvm/JvmPlatformAnnotations.kt +++ b/libraries/stdlib/src/kotlin/jvm/JvmPlatformAnnotations.kt @@ -31,7 +31,7 @@ public annotation(retention = AnnotationRetention.BINARY, mustBeDocumented = tru * 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) +target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER) public annotation(retention = AnnotationRetention.RUNTIME, mustBeDocumented = true) class jvmStatic /** diff --git a/libraries/stdlib/src/kotlin/platform/annotations.kt b/libraries/stdlib/src/kotlin/platform/annotations.kt index 81baa172149..640f207e005 100644 --- a/libraries/stdlib/src/kotlin/platform/annotations.kt +++ b/libraries/stdlib/src/kotlin/platform/annotations.kt @@ -22,6 +22,6 @@ target(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER) deprecated("Use kotlin.jvm.jvmName instead", ReplaceWith("kotlin.jvm.jvmName")) public annotation(retention = AnnotationRetention.RUNTIME, mustBeDocumented = true) class platformName(public val name: String) -target(FUNCTION, FIELD, PROPERTY, PROPERTY_GETTER, PROPERTY_SETTER) +target(FUNCTION, PROPERTY, PROPERTY_GETTER, PROPERTY_SETTER) deprecated("Use kotlin.jvm.jvmStatic instead", ReplaceWith("kotlin.jvm.jvmStatic")) public annotation(retention = AnnotationRetention.RUNTIME, mustBeDocumented = true) class platformStatic