KT-56845 [SLC] Add @Override to overridden property accessors

This commit is contained in:
Pavel Mikhailovskii
2023-03-10 10:32:48 +00:00
committed by Space Team
parent 82524fde26
commit d9f023db89
11 changed files with 52 additions and 33 deletions
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.light.classes.symbol.annotations
import com.intellij.psi.PsiAnnotation
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiModifierList
import org.jetbrains.kotlin.light.classes.symbol.methods.SymbolLightMethod
import org.jetbrains.kotlin.light.classes.symbol.methods.SymbolLightMethodBase
import org.jetbrains.kotlin.load.java.JvmAnnotationNames
internal object MethodAdditionalAnnotationsProvider : AdditionalAnnotationsProvider {
@@ -38,4 +38,4 @@ internal object MethodAdditionalAnnotationsProvider : AdditionalAnnotationsProvi
override fun isSpecialQualifier(qualifiedName: String): Boolean = false
}
private fun PsiElement.isMethodWithOverride(): Boolean = this is SymbolLightMethod<*> && (isDelegated || isOverride())
private fun PsiElement.isMethodWithOverride(): Boolean = this is SymbolLightMethodBase && (isDelegated || isOverride())
@@ -199,19 +199,22 @@ internal class SymbolLightAccessorMethod private constructor(
annotationUseSiteTargetFilter = accessorSite.toFilter(),
),
),
additionalAnnotationsProvider = NullabilityAnnotationsProvider {
val nullabilityApplicable = isGetter &&
!(isParameter && this.containingClass.isAnnotationType) &&
!modifierList.hasModifierProperty(PsiModifier.PRIVATE)
additionalAnnotationsProvider = CompositeAdditionalAnnotationsProvider(
NullabilityAnnotationsProvider {
val nullabilityApplicable = isGetter &&
!(isParameter && this.containingClass.isAnnotationType) &&
!modifierList.hasModifierProperty(PsiModifier.PRIVATE)
if (nullabilityApplicable) {
containingPropertySymbolPointer.withSymbol(ktModule) { propertySymbol ->
getTypeNullability(propertySymbol.returnType)
if (nullabilityApplicable) {
containingPropertySymbolPointer.withSymbol(ktModule) { propertySymbol ->
getTypeNullability(propertySymbol.returnType)
}
} else {
NullabilityType.Unknown
}
} else {
NullabilityType.Unknown
}
}
},
MethodAdditionalAnnotationsProvider
)
),
)
}