From 34cd0e9f6c911536f56e9d280f7436cb96c0cecc Mon Sep 17 00:00:00 2001 From: Mikhail Zarechenskiy Date: Sun, 29 Jul 2018 04:48:57 +0300 Subject: [PATCH] Do not report warning about useless annotations for JvmStatic properties #KT-25745 Fixed --- .../JvmAnnotationsTargetNonExistentAccessorChecker.kt | 5 +---- .../annotations/annotationsTargetingNonExistentAccessor.kt | 6 +++++- .../annotations/annotationsTargetingNonExistentAccessor.txt | 1 + 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/checkers/JvmAnnotationsTargetNonExistentAccessorChecker.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/checkers/JvmAnnotationsTargetNonExistentAccessorChecker.kt index a558b7205da..885172e207a 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/checkers/JvmAnnotationsTargetNonExistentAccessorChecker.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/checkers/JvmAnnotationsTargetNonExistentAccessorChecker.kt @@ -82,9 +82,6 @@ class JvmAnnotationsTargetNonExistentAccessorChecker : DeclarationChecker { } private fun isSpecialStaticProperty(descriptor: MemberDescriptor): Boolean { - return descriptor.hasJvmStaticAnnotation() || - descriptor.hasJvmFieldAnnotation() || - (descriptor is VariableDescriptor && descriptor.isConst) - + return descriptor.hasJvmFieldAnnotation() || (descriptor is VariableDescriptor && descriptor.isConst) } } diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationsTargetingNonExistentAccessor.kt b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationsTargetingNonExistentAccessor.kt index b47a8f210ec..828c9be321b 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationsTargetingNonExistentAccessor.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationsTargetingNonExistentAccessor.kt @@ -77,12 +77,16 @@ class Statics { const val x1 = "" @JvmStatic - @get:Ann + @get:Ann val x2 = "" @JvmStatic @get:Ann private val x3 = "" + + @JvmStatic + @get:Ann + private val x4 = "" } } diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationsTargetingNonExistentAccessor.txt b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationsTargetingNonExistentAccessor.txt index da340678260..b6838100b81 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationsTargetingNonExistentAccessor.txt +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationsTargetingNonExistentAccessor.txt @@ -98,6 +98,7 @@ public final class Statics { public const final val x1: kotlin.String = "" @kotlin.jvm.JvmStatic public final val x2: kotlin.String = "" @kotlin.jvm.JvmStatic private final val x3: kotlin.String = "" + @kotlin.jvm.JvmStatic private final val x4: 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