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
}
@@ -67,12 +67,17 @@ public final class PropertiesKt /* PropertiesKt*/ {
public static Unresolved subject;
public static java.lang.String lateInit;
@org.jetbrains.annotations.NotNull()
protected static final java.lang.String getProtectedLateinitVar();// getProtectedLateinitVar()
@org.jetbrains.annotations.NotNull()
protected static final java.lang.String getProtectedWithPrivateSet();// getProtectedWithPrivateSet()
@org.jetbrains.annotations.NotNull()
public static final Unresolved getSubject();// getSubject()
@org.jetbrains.annotations.NotNull()
public static final java.lang.Object getArrayConst();// getArrayConst()
@@ -82,6 +87,9 @@ public final class PropertiesKt /* PropertiesKt*/ {
@org.jetbrains.annotations.NotNull()
public static final java.lang.String getInternalVarPrivateSet();// getInternalVarPrivateSet()
@org.jetbrains.annotations.NotNull()
public static final java.lang.String getLateInit();// getLateInit()
@org.jetbrains.annotations.NotNull()
public static final java.lang.String getLazyProp();// getLazyProp()
@@ -125,8 +133,6 @@ public final class PropertiesKt /* PropertiesKt*/ {
protected static final void setProtectedLateinitVar(@org.jetbrains.annotations.NotNull() java.lang.String);// setProtectedLateinitVar(java.lang.String)
public static final Unresolved getSubject();// getSubject()
public static final boolean isEmpty();// isEmpty()
public static final error.NonExistentClass getDelegatedProp2();// getDelegatedProp2()
@@ -165,13 +171,15 @@ public final class PropertiesKt /* PropertiesKt*/ {
public static final void setIslowercase(@org.jetbrains.annotations.Nullable() java.lang.Boolean);// setIslowercase(java.lang.Boolean)
public static final void setLateInit(@org.jetbrains.annotations.NotNull() java.lang.String);// setLateInit(java.lang.String)
public static final void setLazyProp(@org.jetbrains.annotations.NotNull() java.lang.String);// setLazyProp(java.lang.String)
public static final void setName(@org.jetbrains.annotations.NotNull() java.lang.String);// setName(java.lang.String)
public static final void setStringRepresentation(@org.jetbrains.annotations.NotNull() java.lang.String);// setStringRepresentation(java.lang.String)
public static final void setSubject(Unresolved);// setSubject(Unresolved)
public static final void setSubject(@org.jetbrains.annotations.NotNull() Unresolved);// setSubject(Unresolved)
public static final void setValue(T, @org.jetbrains.annotations.NotNull() kotlin.reflect.KProperty<?>, int);// setValue(T, kotlin.reflect.KProperty<?>, int)
}
@@ -64,6 +64,8 @@ public final class PropertiesKt /* PropertiesKt*/ {
public static error.NonExistentClass subject;
public static java.lang.String lateInit;
@org.jetbrains.annotations.NotNull()
protected static final java.lang.String getProtectedLateinitVar();// getProtectedLateinitVar()
@@ -79,6 +81,9 @@ public final class PropertiesKt /* PropertiesKt*/ {
@org.jetbrains.annotations.NotNull()
public static final java.lang.String getInternalVarPrivateSet();// getInternalVarPrivateSet()
@org.jetbrains.annotations.NotNull()
public static final java.lang.String getLateInit();// getLateInit()
@org.jetbrains.annotations.NotNull()
public static final java.lang.String getLazyProp();// getLazyProp()
@@ -162,6 +167,8 @@ public final class PropertiesKt /* PropertiesKt*/ {
public static final void setIslowercase(@org.jetbrains.annotations.Nullable() java.lang.Boolean);// setIslowercase(java.lang.Boolean)
public static final void setLateInit(@org.jetbrains.annotations.NotNull() java.lang.String);// setLateInit(java.lang.String)
public static final void setLazyProp(@org.jetbrains.annotations.NotNull() java.lang.String);// setLazyProp(java.lang.String)
public static final void setName(@org.jetbrains.annotations.NotNull() java.lang.String);// setName(java.lang.String)
@@ -34,6 +34,8 @@ set(value) {
if (value >= 0) field = value
}
lateinit var lateInit: String
lateinit var subject: Unresolved
internal lateinit var internalVarPrivateSet: String
private set