JS: fix performance regression caused by changing approach to detection of main and test function from PSI-based to descriptor-based

This commit is contained in:
Alexey Andreev
2017-02-28 12:43:54 +03:00
parent dc1ce0e8b5
commit 85bd380373
2 changed files with 8 additions and 4 deletions
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.psi.KtNamedFunction
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.DescriptorUtils
import org.jetbrains.kotlin.resolve.annotations.hasJvmStaticAnnotation
import org.jetbrains.kotlin.resolve.descriptorUtil.module
import org.jetbrains.kotlin.resolve.scopes.MemberScope
import org.jetbrains.kotlin.types.Variance
@@ -70,7 +71,7 @@ class MainFunctionDetector {
fun getMainFunction(module: ModuleDescriptor): FunctionDescriptor? = getMainFunction(module, module.getPackage(FqName.ROOT))
private fun getMainFunction(module: ModuleDescriptor, packageView: PackageViewDescriptor): FunctionDescriptor? {
for (packageFragment in packageView.fragments) {
for (packageFragment in packageView.fragments.filter { it.module == module }) {
DescriptorUtils.getAllDescriptors(packageFragment.getMemberScope())
.filterIsInstance<FunctionDescriptor>()
.firstOrNull { isMain(it) }