Revert "Report warning on @JvmStatic in private companion objects"

This reverts commit 9669ab14
This commit is contained in:
Victor Petukhov
2020-12-16 10:24:18 +03:00
parent 94deddef7f
commit d32d0a65f0
6 changed files with 10 additions and 72 deletions
@@ -1,31 +0,0 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.resolve.jvm.checkers
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.diagnostics.Errors.JVM_STATIC_IN_PRIVATE_COMPANION
import org.jetbrains.kotlin.psi.KtDeclaration
import org.jetbrains.kotlin.resolve.annotations.JVM_STATIC_ANNOTATION_FQ_NAME
import org.jetbrains.kotlin.resolve.checkers.DeclarationChecker
import org.jetbrains.kotlin.resolve.checkers.DeclarationCheckerContext
import org.jetbrains.kotlin.resolve.source.KotlinSourceElement
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
class JvmStaticInPrivateCompanionChecker : DeclarationChecker {
override fun check(declaration: KtDeclaration, descriptor: DeclarationDescriptor, context: DeclarationCheckerContext) {
descriptor.containingDeclaration.safeAs<ClassDescriptor>()?.takeIf {
it.isCompanionObject && Visibilities.isPrivate(it.visibility.delegate)
} ?: return
val jvmStaticAnnotation = descriptor.annotations.findAnnotation(JVM_STATIC_ANNOTATION_FQ_NAME) ?: return
val reportTarget = jvmStaticAnnotation.source.safeAs<KotlinSourceElement>()?.psi ?: declaration
context.trace.report(JVM_STATIC_IN_PRIVATE_COMPANION.on(reportTarget))
}
}
@@ -97,7 +97,6 @@ object JvmPlatformConfigurator : PlatformConfiguratorBase(
) {
override fun configureModuleComponents(container: StorageComponentContainer) {
container.useImpl<JvmStaticChecker>()
container.useImpl<JvmStaticInPrivateCompanionChecker>()
container.useImpl<JvmReflectionAPICallChecker>()
container.useImpl<JavaSyntheticScopes>()
container.useImpl<SamConversionResolverImpl>()
@@ -285,7 +285,6 @@ public interface Errors {
DiagnosticFactory1<PsiElement, String> EXPERIMENTAL_UNSIGNED_LITERALS_ERROR = DiagnosticFactory1.create(ERROR);
DiagnosticFactory0<PsiElement> NON_PARENTHESIZED_ANNOTATIONS_ON_FUNCTIONAL_TYPES = DiagnosticFactory0.create(ERROR);
DiagnosticFactory0<PsiElement> JVM_STATIC_IN_PRIVATE_COMPANION = DiagnosticFactory0.create(WARNING);
// Const
DiagnosticFactory0<PsiElement> CONST_VAL_NOT_TOP_LEVEL_OR_OBJECT = DiagnosticFactory0.create(ERROR);
@@ -170,7 +170,6 @@ public class DefaultErrorMessages {
MAP.put(EXPERIMENTAL_UNSIGNED_LITERALS_ERROR, "{0}", STRING);
MAP.put(NON_PARENTHESIZED_ANNOTATIONS_ON_FUNCTIONAL_TYPES, "Non-parenthesized annotations on function types without receiver aren't yet supported (see KT-31734 for details)");
MAP.put(JVM_STATIC_IN_PRIVATE_COMPANION, "@JvmStatic is prohibited in private companion objects. This warning will become an error in the next major version");
MAP.put(REDUNDANT_MODIFIER, "Modifier ''{0}'' is redundant because ''{1}'' is present", TO_STRING, TO_STRING);
MAP.put(REDUNDANT_OPEN_IN_INTERFACE, "Modifier 'open' is redundant for abstract interface members");
@@ -1,29 +0,0 @@
// Issue: KT-25114
// !DIAGNOSTICS: -UNUSED_PARAMETER
class WithPrivateCompanion {
private companion object {
@JvmStatic
val staticVal1: Int = 42
val staticVal2: Int
@JvmStatic get() = 42
@get:JvmStatic
val staticVal3: Int = 42
@JvmStatic
var staticVar1: Int = 42
var staticVar2: Int
@JvmStatic get() = 42
@JvmStatic set(value) {}
@get: JvmStatic
@set: JvmStatic
var staticVar3: Int = 42
@JvmStatic
fun staticFunction() {}
}
}
@@ -1,29 +1,30 @@
// Issue: KT-25114
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER
class WithPrivateCompanion {
private companion object {
<!JVM_STATIC_IN_PRIVATE_COMPANION!>@JvmStatic<!>
@JvmStatic
val staticVal1: Int = 42
val staticVal2: Int
<!JVM_STATIC_IN_PRIVATE_COMPANION!>@JvmStatic<!> get() = 42
@JvmStatic get() = 42
<!JVM_STATIC_IN_PRIVATE_COMPANION!>@get:JvmStatic<!>
@get:JvmStatic
val staticVal3: Int = 42
<!JVM_STATIC_IN_PRIVATE_COMPANION!>@JvmStatic<!>
@JvmStatic
var staticVar1: Int = 42
var staticVar2: Int
<!JVM_STATIC_IN_PRIVATE_COMPANION!>@JvmStatic<!> get() = 42
<!JVM_STATIC_IN_PRIVATE_COMPANION!>@JvmStatic<!> set(value) {}
@JvmStatic get() = 42
@JvmStatic set(value) {}
<!JVM_STATIC_IN_PRIVATE_COMPANION!>@get: JvmStatic<!>
<!JVM_STATIC_IN_PRIVATE_COMPANION!>@set: JvmStatic<!>
@get: JvmStatic
@set: JvmStatic
var staticVar3: Int = 42
<!JVM_STATIC_IN_PRIVATE_COMPANION!>@JvmStatic<!>
@JvmStatic
fun staticFunction() {}
}
}