[K/JS] Rework IR deserialization and lowering phases to consume less memory
This commit is contained in:
+1
-1
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.resolve.NonReportingOverrideStrategy
|
||||
import org.jetbrains.kotlin.resolve.OverridingUtil
|
||||
import org.jetbrains.kotlin.storage.StorageManager
|
||||
import org.jetbrains.kotlin.storage.getValue
|
||||
import org.jetbrains.kotlin.util.collectionUtils.filterIsInstanceAnd
|
||||
import org.jetbrains.kotlin.utils.filterIsInstanceAnd
|
||||
import org.jetbrains.kotlin.utils.Printer
|
||||
import org.jetbrains.kotlin.utils.compact
|
||||
import java.util.*
|
||||
|
||||
@@ -22,9 +22,9 @@ import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.SimpleFunctionDescriptor
|
||||
import org.jetbrains.kotlin.incremental.components.LookupLocation
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.util.collectionUtils.filterIsInstanceMapTo
|
||||
import org.jetbrains.kotlin.utils.Printer
|
||||
import org.jetbrains.kotlin.utils.alwaysTrue
|
||||
import org.jetbrains.kotlin.utils.filterIsInstanceMapTo
|
||||
|
||||
abstract class MemberScopeImpl : MemberScope {
|
||||
override fun getContributedClassifier(name: Name, location: LookupLocation): ClassifierDescriptor? = null
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.resolve.sam.*
|
||||
import org.jetbrains.kotlin.resolve.scopes.SyntheticScope
|
||||
import org.jetbrains.kotlin.resolve.scopes.SyntheticScopes
|
||||
import org.jetbrains.kotlin.storage.StorageManager
|
||||
import org.jetbrains.kotlin.util.collectionUtils.filterIsInstanceMapNotNull
|
||||
import org.jetbrains.kotlin.utils.filterIsInstanceMapNotNull
|
||||
|
||||
class FunInterfaceConstructorsScopeProvider(
|
||||
storageManager: StorageManager,
|
||||
|
||||
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.descriptors.ClassifierDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ClassifierDescriptorWithTypeParameters
|
||||
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||
import org.jetbrains.kotlin.utils.SmartList
|
||||
import java.util.*
|
||||
import org.jetbrains.kotlin.utils.filterIsInstanceAndTo
|
||||
|
||||
/**
|
||||
* Concatenates the contents of this collection with the given collection, avoiding allocations if possible.
|
||||
@@ -105,31 +105,6 @@ inline fun <Scope, T : ClassifierDescriptor> getFirstClassifierDiscriminateHeade
|
||||
return result
|
||||
}
|
||||
|
||||
inline fun <reified R> Iterable<*>.filterIsInstanceAnd(predicate: (R) -> Boolean): Collection<R> =
|
||||
filterIsInstanceAndTo(SmartList(), predicate)
|
||||
|
||||
inline fun <reified R, C : MutableCollection<in R>> Iterable<*>.filterIsInstanceAndTo(destination: C, predicate: (R) -> Boolean): C {
|
||||
for (element in this) if (element is R && predicate(element)) destination.add(element)
|
||||
return destination
|
||||
inline fun <reified R> Iterable<*>.filterIsInstanceAnd(predicate: (R) -> Boolean): List<R> {
|
||||
return filterIsInstanceAndTo(SmartList(), predicate)
|
||||
}
|
||||
|
||||
inline fun <reified T, reified R, C : MutableCollection<in R>> Iterable<*>.filterIsInstanceMapTo(destination: C, transform: (T) -> R): C {
|
||||
for (element in this) if (element is T) {
|
||||
destination.add(transform(element))
|
||||
}
|
||||
return destination
|
||||
}
|
||||
|
||||
inline fun <reified T, reified R> Iterable<*>.filterIsInstanceMapNotNull(transform: (T) -> R?): Collection<R> =
|
||||
filterIsInstanceMapNotNullTo(SmartList(), transform)
|
||||
|
||||
inline fun <reified T, reified R, C : MutableCollection<in R>> Iterable<*>.filterIsInstanceMapNotNullTo(destination: C, transform: (T) -> R?): C {
|
||||
for (element in this) if (element is T) {
|
||||
val result = transform(element)
|
||||
if (result != null) {
|
||||
destination.add(result)
|
||||
}
|
||||
}
|
||||
return destination
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user