Optimize method count for collection stubs

Do not generate stubs if they're already present in superclasses

 #KT-13698 In Progress
This commit is contained in:
Denis Zharkov
2016-10-05 15:52:48 +03:00
parent 900c442efd
commit e05e0ec921
13 changed files with 414 additions and 25 deletions
@@ -16,12 +16,11 @@
package org.jetbrains.kotlin.resolve.lazy.descriptors
import com.intellij.util.SmartList
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.ReceiverParameterDescriptor
import org.jetbrains.kotlin.psi.KtParameter
import org.jetbrains.kotlin.resolve.descriptorUtil.getSuperClassNotAny
import org.jetbrains.kotlin.resolve.descriptorUtil.getAllSuperclassesWithoutAny
import org.jetbrains.kotlin.resolve.scopes.*
import org.jetbrains.kotlin.resolve.scopes.utils.ThrowingLexicalScope
import org.jetbrains.kotlin.storage.StorageManager
@@ -75,18 +74,6 @@ class ClassResolutionScopesSupport(
}
}
fun ClassDescriptor.getAllSuperclassesWithoutAny(): List<ClassDescriptor> {
val superClasses = SmartList<ClassDescriptor>()
var parent: ClassDescriptor? = getSuperClassNotAny()
while(parent != null && parent != this) {
superClasses.add(parent)
parent = parent.getSuperClassNotAny()
}
return superClasses
}
private fun createInheritanceScope(
parent: LexicalScope,
ownerDescriptor: DeclarationDescriptor,