[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.KtLightField
import org.jetbrains.kotlin.asJava.elements.KtLightMethod import org.jetbrains.kotlin.asJava.elements.KtLightMethod
import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.psi.KtNamedFunction import org.jetbrains.kotlin.psi.KtNamedFunction
import org.jetbrains.kotlin.psi.KtProperty import org.jetbrains.kotlin.psi.KtProperty
import org.jetbrains.kotlin.psi.psiUtil.isPrivate
class KtUltraLightClassForFacade( class KtUltraLightClassForFacade(
manager: PsiManager, manager: PsiManager,
@@ -66,11 +68,16 @@ class KtUltraLightClassForFacade(
ktFunction = declaration, ktFunction = declaration,
forceStatic = true forceStatic = true
) )
is KtProperty -> creator.propertyAccessors( is KtProperty -> {
declaration, declaration.isVar, if (!declaration.isPrivate() || declaration.accessors.isNotEmpty()) {
forceStatic = true, creator.propertyAccessors(
onlyJvmStatic = false, declaration = declaration,
) mutable = declaration.isVar,
forceStatic = true,
onlyJvmStatic = false,
)
} else emptyList()
}
else -> emptyList() else -> emptyList()
} }
result.addAll(methods) result.addAll(methods)
@@ -71,3 +71,10 @@ public var int2: Int
public get public get
internal set 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;