Introduce cached ModuleDescriptor.implementingDescriptors

This property is used instead of findImplementingDescriptors,
which is basically too slow
This commit is contained in:
Mikhail Glukhikh
2017-09-26 19:34:21 +03:00
parent fa23471397
commit 43f1dbeabf
6 changed files with 29 additions and 17 deletions
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.descriptors.TypeAliasDescriptor
import org.jetbrains.kotlin.descriptors.annotations.AnnotationWithTarget
import org.jetbrains.kotlin.idea.caches.resolve.analyze
import org.jetbrains.kotlin.idea.caches.resolve.findModuleDescriptor
import org.jetbrains.kotlin.idea.facet.findImplementingDescriptors
import org.jetbrains.kotlin.idea.facet.implementingDescriptors
import org.jetbrains.kotlin.idea.highlighter.markers.actualsFor
import org.jetbrains.kotlin.idea.project.targetPlatform
import org.jetbrains.kotlin.idea.util.module
@@ -41,7 +41,7 @@ class KotlinMultiplatformJUnitRecognizer : JUnitRecognizer() {
if (origin.module?.targetPlatform !is TargetPlatformKind.Common) return false
val moduleDescriptor = origin.containingKtFile.findModuleDescriptor()
val implModules = moduleDescriptor.findImplementingDescriptors()
val implModules = moduleDescriptor.implementingDescriptors
if (implModules.isEmpty()) return false
val bindingContext = origin.analyze(BodyResolveMode.PARTIAL)