[ULC] Improve UL facades for private properties without accessors

This commit is contained in:
Igor Yakovlev
2020-05-21 01:26:22 +03:00
parent 025e2f2fe9
commit 129979b0ff
2 changed files with 19 additions and 5 deletions
@@ -13,10 +13,12 @@ import org.jetbrains.kotlin.asJava.builder.LightClassDataHolder
import org.jetbrains.kotlin.asJava.elements.KtLightField
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.psi.KtNamedFunction
import org.jetbrains.kotlin.psi.KtProperty
import org.jetbrains.kotlin.psi.psiUtil.isPrivate
class KtUltraLightClassForFacade(
manager: PsiManager,
@@ -66,11 +68,16 @@ class KtUltraLightClassForFacade(
ktFunction = declaration,
forceStatic = true
)
is KtProperty -> creator.propertyAccessors(
declaration, declaration.isVar,
forceStatic = true,
onlyJvmStatic = false,
)
is KtProperty -> {
if (!declaration.isPrivate() || declaration.accessors.isNotEmpty()) {
creator.propertyAccessors(
declaration = declaration,
mutable = declaration.isVar,
forceStatic = true,
onlyJvmStatic = false,
)
} else emptyList()
}
else -> emptyList()
}
result.addAll(methods)
@@ -71,3 +71,10 @@ public var int2: Int
public get
internal set
private val privateVal: Int = 42
private val privateVar: Int = 42
private fun privateFun(): Int = 42
val x: String = ""
get;
var x: String = ""
private set;