Cache the result of hasTopLevelCallables() for a KtFile

#KT-19885 Fixed
This commit is contained in:
Dmitry Jemerov
2017-08-31 18:53:34 +02:00
parent 839f197a1e
commit f74416a151
5 changed files with 30 additions and 19 deletions
@@ -37,7 +37,6 @@ import org.jetbrains.kotlin.fileClasses.javaFileFacadeFqName
import org.jetbrains.kotlin.idea.KotlinLanguage
import org.jetbrains.kotlin.load.java.structure.LightClassOriginKind
import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils
import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils.fileHasTopLevelCallables
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.KtClassOrObject
import org.jetbrains.kotlin.psi.KtFile
@@ -190,7 +189,7 @@ class KtLightClassForFacade private constructor(
override fun getQualifiedName() = facadeClassFqName.asString()
override fun isValid() = files.all { it.isValid && fileHasTopLevelCallables(it) && facadeClassFqName == it.javaFileFacadeFqName }
override fun isValid() = files.all { it.isValid && it.hasTopLevelCallables() && facadeClassFqName == it.javaFileFacadeFqName }
override fun copy() = KtLightClassForFacade(manager, facadeClassFqName, lightClassDataCache, files)