[LC] Fix invalid nullability for properties
Fixed #KT-46097 and #KT-41671
This commit is contained in:
@@ -346,13 +346,14 @@ open class KtLightNullabilityAnnotation<D : KtLightElement<*, PsiModifierListOwn
|
||||
annotatedElement.bodyExpression?.let { it.getType(it.analyze()) }?.let { return it }
|
||||
}
|
||||
if (annotatedElement is KtProperty) {
|
||||
annotatedElement.initializer?.let { it.getType(it.analyze()) }?.let { return it }
|
||||
(annotatedElement.initializer ?: annotatedElement.getter?.initializer)
|
||||
?.let { it.getType(it.analyze()) }?.let { return it }
|
||||
annotatedElement.delegateExpression?.let { it.getType(it.analyze())?.arguments?.firstOrNull()?.type }?.let { return it }
|
||||
}
|
||||
|
||||
return annotatedElement.getParentOfType<KtProperty>(false)?.let {
|
||||
it.typeReference?.getType()
|
||||
?: it.initializer
|
||||
?: (it.initializer ?: it.getter?.initializer)
|
||||
?.let { initializer -> initializer.getType(initializer.analyze()) }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -253,7 +253,7 @@ fun fastCheckIsNullabilityApplied(lightElement: KtLightElement<*, PsiModifierLis
|
||||
}
|
||||
|
||||
val parent = annotatedElement.parent.parent
|
||||
if (parent is KtModifierListOwner && parent.isPrivate()) return false
|
||||
if (parent is KtModifierListOwner && parent !is KtPrimaryConstructor && parent.isPrivate()) return false
|
||||
|
||||
if (parent is KtPropertyAccessor) {
|
||||
val propertyOfAccessor = parent.parent
|
||||
|
||||
Reference in New Issue
Block a user