Report error on protected setter call from super's companion
#KT-12847 Fixed
This commit is contained in:
+10
-1
@@ -17,7 +17,9 @@
|
||||
package org.jetbrains.kotlin.resolve.jvm.checkers
|
||||
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.PropertyAccessorDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||
import org.jetbrains.kotlin.resolve.annotations.hasJvmStaticAnnotation
|
||||
@@ -29,7 +31,14 @@ import org.jetbrains.kotlin.resolve.jvm.diagnostics.ErrorsJvm
|
||||
|
||||
class ProtectedInSuperClassCompanionCallChecker : CallChecker {
|
||||
override fun check(resolvedCall: ResolvedCall<*>, reportOn: PsiElement, context: CallCheckerContext) {
|
||||
val targetDescriptor = resolvedCall.resultingDescriptor.original
|
||||
check(resolvedCall.resultingDescriptor.original, reportOn, context)
|
||||
}
|
||||
|
||||
override fun checkPropertyCall(descriptor: PropertyAccessorDescriptor, reportOn: PsiElement, context: CallCheckerContext) {
|
||||
check(descriptor, reportOn, context)
|
||||
}
|
||||
|
||||
private fun check(targetDescriptor: CallableDescriptor, reportOn: PsiElement, context: CallCheckerContext) {
|
||||
// Protected non-JVM static
|
||||
if (targetDescriptor.visibility != Visibilities.PROTECTED) return
|
||||
if (targetDescriptor.hasJvmStaticAnnotation()) return
|
||||
|
||||
Reference in New Issue
Block a user