KT-56833 [SLC] Mark accessors of lateinit properties with @NotNull

This commit is contained in:
Pavel Mikhailovskii
2023-03-14 12:45:57 +00:00
committed by Space Team
parent 7794998113
commit 0f589dac34
6 changed files with 28 additions and 5 deletions
@@ -207,7 +207,7 @@ internal class SymbolLightAccessorMethod private constructor(
if (nullabilityApplicable) {
containingPropertySymbolPointer.withSymbol(ktModule) { propertySymbol ->
getTypeNullability(propertySymbol.returnType)
if (propertySymbol.isLateInit) NullabilityType.NotNull else getTypeNullability(propertySymbol.returnType)
}
} else {
NullabilityType.Unknown
@@ -48,7 +48,7 @@ internal abstract class SymbolLightParameterCommon(
abstract override fun getModifierList(): PsiModifierList
protected fun nullabilityType(): NullabilityType {
protected open fun nullabilityType(): NullabilityType {
if (isVarArgs) return NullabilityType.NotNull
val nullabilityApplicable = !containingMethod.hasModifierProperty(PsiModifier.PRIVATE) &&
@@ -13,7 +13,9 @@ import org.jetbrains.kotlin.analysis.api.symbols.KtValueParameterSymbol
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
import org.jetbrains.kotlin.asJava.classes.lazyPub
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
import org.jetbrains.kotlin.light.classes.symbol.NullabilityType
import org.jetbrains.kotlin.light.classes.symbol.annotations.*
import org.jetbrains.kotlin.light.classes.symbol.isLateInit
import org.jetbrains.kotlin.light.classes.symbol.methods.SymbolLightMethodBase
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightClassModifierList
import org.jetbrains.kotlin.light.classes.symbol.withSymbol
@@ -59,5 +61,9 @@ internal class SymbolLightSetterParameter(
)
}
override fun nullabilityType(): NullabilityType =
if (containingPropertySymbolPointer.withSymbol(ktModule) { it.isLateInit }) NullabilityType.NotNull else super.nullabilityType()
override fun isVarArgs() = false
}