Refine visibility computation for lateinit's field in KtUltraLightClass

This commit is contained in:
Denis Zharkov
2018-11-01 14:46:05 +03:00
parent 99afc40d93
commit 8999a21764
3 changed files with 52 additions and 2 deletions
@@ -199,8 +199,11 @@ class KtUltraLightClass(classOrObject: KtClassOrObject, private val support: Ult
val visibility = when {
property.hasModifier(PRIVATE_KEYWORD) -> PsiModifier.PRIVATE
property.hasModifier(PROTECTED_KEYWORD) && property.hasModifier(LATEINIT_KEYWORD) -> PsiModifier.PROTECTED
property.hasModifier(CONST_KEYWORD) || (property.hasModifier(LATEINIT_KEYWORD) && property.setter == null) -> PsiModifier.PUBLIC
property.hasModifier(LATEINIT_KEYWORD) -> {
val declaration = property.setter ?: property
simpleVisibility(declaration)
}
property.hasModifier(CONST_KEYWORD) -> PsiModifier.PUBLIC
else -> PsiModifier.PRIVATE
}
val modifiers = hashSetOf(visibility)