Don't add script files to facade indices

#KT-12445 Fixed
This commit is contained in:
Dmitry Jemerov
2016-11-18 16:41:42 +01:00
parent 2bec54924f
commit 6a8f78d7c1
2 changed files with 11 additions and 0 deletions
@@ -50,6 +50,8 @@ public class IdeStubIndexService extends StubIndexService {
sink.occurrence(KotlinExactPackagesIndex.getInstance().getKey(), packageFqName.asString());
if (stub.isScript()) return;
FqName facadeFqName = ((KotlinFileStubForIde) stub).getFacadeFqName();
if (facadeFqName != null) {
sink.occurrence(KotlinFileFacadeFqNameIndex.INSTANCE.getKey(), facadeFqName.asString());
@@ -16,10 +16,12 @@
package org.jetbrains.kotlin.asJava
import com.intellij.psi.search.GlobalSearchScope
import com.intellij.testFramework.LightProjectDescriptor
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
import org.jetbrains.kotlin.idea.test.KotlinLightProjectDescriptor
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.KtFile
class KtFileLightClassTest : KotlinLightCodeInsightFixtureTestCase() {
@@ -53,6 +55,13 @@ class KtFileLightClassTest : KotlinLightCodeInsightFixtureTestCase() {
assertEquals(0, aClass.getMethods().size)
}
fun testNoFacadeForScript() {
val file = myFixture.configureByText("foo.kts", "package foo") 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/"
}