Don't create light classes for platform declarations
#KT-15137 Fixed
This commit is contained in:
@@ -62,6 +62,13 @@ class KtFileLightClassTest : KotlinLightCodeInsightFixtureTestCase() {
|
||||
assertEquals(0, facadeFiles.size)
|
||||
}
|
||||
|
||||
fun testNoFacadeForHeaderClass() {
|
||||
val file = myFixture.configureByText("foo.kt", "platform fun foo(): Int") as KtFile
|
||||
assertEquals(0, file.classes.size)
|
||||
val facadeFiles = LightClassGenerationSupport.getInstance(project).findFilesForFacade(FqName("foo.FooKt"), GlobalSearchScope.allScope(project))
|
||||
assertEquals(0, facadeFiles.size)
|
||||
}
|
||||
|
||||
override fun getTestDataPath(): String? {
|
||||
return PluginTestCaseBase.getTestDataPathBase() + "/asJava/fileLightClass/"
|
||||
}
|
||||
|
||||
@@ -23,7 +23,9 @@ import com.intellij.testFramework.LightProjectDescriptor
|
||||
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
||||
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
|
||||
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
|
||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.psi.KtNamedFunction
|
||||
import org.jetbrains.kotlin.psi.KtPsiFactory
|
||||
|
||||
// see KtFileLightClassTest
|
||||
@@ -94,6 +96,14 @@ class LightClassFromTextTest : KotlinLightCodeInsightFixtureTestCase() {
|
||||
assertEquals(exampleClass, (f.returnType as PsiClassType).resolve())
|
||||
}
|
||||
|
||||
fun testHeaderDeclarations() {
|
||||
val contextFile = myFixture.configureByText("Header.kt", "platform class Foo\n\nplatform fun foo()\n") as KtFile
|
||||
val headerClass = contextFile.declarations.single { it is KtClassOrObject }
|
||||
assertEquals(0, headerClass.toLightElements().size)
|
||||
val headerFunction = contextFile.declarations.single { it is KtNamedFunction }
|
||||
assertEquals(0, headerFunction.toLightElements().size)
|
||||
}
|
||||
|
||||
private fun classesFromText(text: String, fileName: String = "A.kt"): Array<out PsiClass> {
|
||||
val file = KtPsiFactory(project).createFileWithLightClassSupport(fileName, text, myFixture.file)
|
||||
val classes = file.classes
|
||||
|
||||
Reference in New Issue
Block a user