Provide setter-method for LC for private property setter

^KT-41694 Fixed

Original commit: 127257aa27ce70d518baf54af20b6d8590650288

GitOrigin-RevId: 8fea864e32cf0ef2f3839f2047e59ff76e9801e0
This commit is contained in:
Vladimir Dolzhenko
2020-11-28 01:03:31 +03:00
committed by intellij-monorepo-bot
parent 25790ab8bf
commit 220c119444
2 changed files with 17 additions and 1 deletions
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.asJava
import com.intellij.injected.editor.EditorWindow
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiFile
import com.intellij.psi.PsiMethod
import com.intellij.psi.search.GlobalSearchScope
import com.intellij.testFramework.LightProjectDescriptor
import junit.framework.TestCase
@@ -92,9 +93,17 @@ class KtFileLightClassTest : KotlinLightCodeInsightFixtureTestCase() {
assertEquals("Injected class should be `A`", "A", ((injectedFile as KtFile).declarations.single() as KtClass).toLightClass()!!.name)
}
fun testPropertyWithPrivateSetter() {
val file = myFixture.configureByFile("propWithPrivateSetter.kt") as KtFile
val aClass = file.classes.single()
val methods = aClass.methods
val methodNames = methods.map(PsiMethod::getName)
assertEquals(methodNames.toString(), 3, methods.size)
assertTrue(methods.toString(), "getProp" in methodNames)
assertTrue(methods.toString(), "setProp" in methodNames)
}
fun testSameVirtualFileForLightElement() {
val psiFile = myFixture.addFileToProject(
"pkg/AnnotatedClass.kt", """
package pkg
@@ -0,0 +1,7 @@
class Foo {
var prop = "V"
get() = "V"
private set(value) {
field = value
}
}