Avoid building stubs in KtFile::getClasses for compiled files
In Gradle, JavaPsiFacade finds Kotlin compiled files as KtFile instances and tries to obtain classes from them. And while it returns an empty array anyway, it starts building unnecessary stub when calling `isScript`
This commit is contained in:
@@ -168,11 +168,7 @@ open class KtFile(viewProvider: FileViewProvider, val isCompiled: Boolean) :
|
||||
|
||||
override fun getClasses(): Array<PsiClass> {
|
||||
val fileClassProvider = ServiceManager.getService(project, KtFileClassProvider::class.java)
|
||||
// TODO We don't currently support finding light classes for scripts
|
||||
return if (fileClassProvider != null && !isScript()) {
|
||||
fileClassProvider.getFileClasses(this)
|
||||
}
|
||||
else PsiClass.EMPTY_ARRAY
|
||||
return fileClassProvider?.getFileClasses(this) ?: PsiClass.EMPTY_ARRAY
|
||||
}
|
||||
|
||||
override fun setPackageName(packageName: String) {}
|
||||
|
||||
+3
-2
@@ -342,8 +342,9 @@ class IDELightClassGenerationSupport(private val project: Project) : LightClassG
|
||||
|
||||
class KtFileClassProviderImpl(val lightClassGenerationSupport: LightClassGenerationSupport) : KtFileClassProvider {
|
||||
override fun getFileClasses(file: KtFile): Array<PsiClass> {
|
||||
if (file.isCompiled) {
|
||||
return arrayOf()
|
||||
// TODO We don't currently support finding light classes for scripts
|
||||
if (file.isCompiled || file.isScript()) {
|
||||
return PsiClass.EMPTY_ARRAY
|
||||
}
|
||||
|
||||
val result = arrayListOf<PsiClass>()
|
||||
|
||||
Reference in New Issue
Block a user