From 86f4a1b6e441c1a1364c4a571869629c9cf5249b Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Thu, 25 Jun 2015 21:09:30 +0300 Subject: [PATCH] Compiler&plugin deprecations cleanup: replace streams with sequences. --- .../org/jetbrains/kotlin/backend/common/CodegenUtilKt.kt | 2 +- .../src/org/jetbrains/kotlin/codegen/inline/SMAP.kt | 2 +- .../jetbrains/kotlin/codegen/inline/SMAPAndMethodNode.kt | 4 ++-- .../org/jetbrains/kotlin/resolve/AllUnderImportsScope.kt | 2 +- .../descriptors/LazyPackageFragmentScopeForJavaPackage.kt | 2 +- .../kotlin/load/java/lazy/descriptors/MemberIndex.kt | 4 ++-- .../load/java/structure/reflect/ReflectJavaClass.kt | 8 ++++---- .../kotlin/descriptors/PackageFragmentProviderImpl.kt | 2 +- .../src/org/jetbrains/kotlin/utils/addToStdlib.kt | 6 +++--- .../src/org/jetbrains/kotlin/utils/collections.kt | 6 +++--- .../kotlin/idea/codeInsight/DescriptorToSourceUtilsIde.kt | 8 ++++---- .../hierarchy/overrides/KotlinOverrideTreeStructure.kt | 2 +- .../introduce/extractionEngine/extractorUtil.kt | 4 ++-- .../refactoring/safeDelete/KotlinSafeDeleteProcessor.kt | 8 ++++---- .../jetbrains/kotlin/idea/refactoring/safeDelete/utils.kt | 2 +- .../ideaExtensions/KotlinDirectInheritorsSearcher.kt | 2 +- .../kotlin/js/inline/clean/removeDefaultInitializers.kt | 2 +- .../jetbrains/kotlin/js/inline/util/collectionUtils.kt | 2 +- 18 files changed, 34 insertions(+), 34 deletions(-) diff --git a/compiler/backend-common/src/org/jetbrains/kotlin/backend/common/CodegenUtilKt.kt b/compiler/backend-common/src/org/jetbrains/kotlin/backend/common/CodegenUtilKt.kt index 8a0836fd467..caebf406512 100644 --- a/compiler/backend-common/src/org/jetbrains/kotlin/backend/common/CodegenUtilKt.kt +++ b/compiler/backend-common/src/org/jetbrains/kotlin/backend/common/CodegenUtilKt.kt @@ -41,7 +41,7 @@ public object CodegenUtilKt { ): Map { if (delegateExpressionType?.isDynamic() ?: false) return mapOf(); - return descriptor.getDefaultType().getMemberScope().getDescriptors().stream() + return descriptor.getDefaultType().getMemberScope().getDescriptors().asSequence() .filterIsInstance() .filter { it.getKind() == CallableMemberDescriptor.Kind.DELEGATION } .toList() diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/SMAP.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/SMAP.kt index ec49cb313a4..ff0cc3ddc08 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/SMAP.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/SMAP.kt @@ -153,7 +153,7 @@ trait SourceMapper { fun createFromSmap(smap: SMAP): DefaultSourceMapper { val sourceMapper = DefaultSourceMapper(smap.sourceInfo, null) - smap.fileMappings.stream() + smap.fileMappings.asSequence() //default one mapped through sourceInfo .filterNot { it == smap.default } .forEach { fileMapping -> diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/SMAPAndMethodNode.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/SMAPAndMethodNode.kt index e14e7b26ce5..6ab9f0511d2 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/SMAPAndMethodNode.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/SMAPAndMethodNode.kt @@ -29,7 +29,7 @@ import org.jetbrains.kotlin.codegen.SourceInfo class SMAPAndMethodNode(val node: MethodNode, val classSMAP: SMAP) { val lineNumbers = - InsnSequence(node.instructions.getFirst(), null).stream().filterIsInstance().map { + InsnSequence(node.instructions.getFirst(), null).filterIsInstance().map { val index = Collections.binarySearch(classSMAP.intervals, RangeMapping(it.line, it.line, 1)) { value, key -> if (value.contains(key.dest)) 0 else RangeMapping.Comparator.compare(value, key) @@ -39,7 +39,7 @@ class SMAPAndMethodNode(val node: MethodNode, val classSMAP: SMAP) { LabelAndMapping(it, classSMAP.intervals[index]) }.toList() - val ranges = lineNumbers.stream().map { it.mapper }.toList().distinct().toList(); + val ranges = lineNumbers.asSequence().map { it.mapper }.distinct().toList(); } class LabelAndMapping(val lineNumberNode: LineNumberNode, val mapper: RangeMapping) \ No newline at end of file diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/AllUnderImportsScope.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/AllUnderImportsScope.kt index 07f14186755..3b09874fa63 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/AllUnderImportsScope.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/AllUnderImportsScope.kt @@ -44,7 +44,7 @@ class AllUnderImportsScope : JetScope { } override fun getClassifier(name: Name): ClassifierDescriptor? { - return scopes.stream().map { it.getClassifier(name) }.filterNotNull().singleOrNull() + return scopes.asSequence().map { it.getClassifier(name) }.filterNotNull().singleOrNull() } override fun getProperties(name: Name): Collection { diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyPackageFragmentScopeForJavaPackage.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyPackageFragmentScopeForJavaPackage.kt index f0b717e9dc2..37d5a9f613a 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyPackageFragmentScopeForJavaPackage.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyPackageFragmentScopeForJavaPackage.kt @@ -84,7 +84,7 @@ public class LazyPackageFragmentScopeForJavaPackage( // neither objects nor enum members can be in java package if (!kindFilter.acceptsKinds(DescriptorKindFilter.NON_SINGLETON_CLASSIFIERS_MASK)) return listOf() - return jPackage.getClasses(nameFilter).stream() + return jPackage.getClasses(nameFilter).asSequence() .filter { c -> c.getOriginKind() != JavaClass.OriginKind.KOTLIN_LIGHT_CLASS } .map { c -> c.getName() }.toList() } diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/MemberIndex.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/MemberIndex.kt index f29f16e9563..ceae04997f0 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/MemberIndex.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/MemberIndex.kt @@ -44,8 +44,8 @@ open class ClassMemberIndex(val jClass: JavaClass, val memberFilter: (JavaMember memberFilter(m) && !DescriptorResolverUtils.isObjectMethodInInterface(m) } - private val methods = jClass.getMethods().stream().filter(methodFilter).groupBy { m -> m.getName() } - private val fields = jClass.getFields().stream().filter(memberFilter).valuesToMap { m -> m.getName() } + private val methods = jClass.getMethods().asSequence().filter(methodFilter).groupBy { m -> m.getName() } + private val fields = jClass.getFields().asSequence().filter(memberFilter).valuesToMap { m -> m.getName() } override fun findMethodsByName(name: Name): Collection = methods[name] ?: listOf() override fun getMethodNames(nameFilter: (Name) -> Boolean): Collection = jClass.getAllMemberNames(methodFilter) { getMethods() } diff --git a/core/descriptors.runtime/src/org/jetbrains/kotlin/load/java/structure/reflect/ReflectJavaClass.kt b/core/descriptors.runtime/src/org/jetbrains/kotlin/load/java/structure/reflect/ReflectJavaClass.kt index b1580c2109b..77677a82328 100644 --- a/core/descriptors.runtime/src/org/jetbrains/kotlin/load/java/structure/reflect/ReflectJavaClass.kt +++ b/core/descriptors.runtime/src/org/jetbrains/kotlin/load/java/structure/reflect/ReflectJavaClass.kt @@ -34,7 +34,7 @@ public class ReflectJavaClass( override val modifiers: Int get() = klass.getModifiers() override fun getInnerClasses() = klass.getDeclaredClasses() - .stream() + .asSequence() .filterNot { // getDeclaredClasses() returns anonymous classes sometimes, for example enums with specialized entries (which are in fact // anonymous classes) or in case of a special anonymous class created for the synthetic accessor to a private nested class @@ -58,7 +58,7 @@ public class ReflectJavaClass( } override fun getMethods() = klass.getDeclaredMethods() - .stream() + .asSequence() .filter { method -> when { method.isSynthetic() -> false @@ -78,13 +78,13 @@ public class ReflectJavaClass( } override fun getFields() = klass.getDeclaredFields() - .stream() + .asSequence() .filter { field -> !field.isSynthetic() } .map(::ReflectJavaField) .toList() override fun getConstructors() = klass.getDeclaredConstructors() - .stream() + .asSequence() .filter { constructor -> !constructor.isSynthetic() } .map(::ReflectJavaConstructor) .toList() diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/PackageFragmentProviderImpl.kt b/core/descriptors/src/org/jetbrains/kotlin/descriptors/PackageFragmentProviderImpl.kt index 211bf847804..8e2677978f5 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/PackageFragmentProviderImpl.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/PackageFragmentProviderImpl.kt @@ -26,7 +26,7 @@ public class PackageFragmentProviderImpl( packageFragments.filter { it.fqName == fqName } override fun getSubPackagesOf(fqName: FqName, nameFilter: (Name) -> Boolean): Collection = - packageFragments.stream() + packageFragments.asSequence() .map { it.fqName } .filter { !it.isRoot() && it.parent() == fqName } .toList() diff --git a/core/util.runtime/src/org/jetbrains/kotlin/utils/addToStdlib.kt b/core/util.runtime/src/org/jetbrains/kotlin/utils/addToStdlib.kt index a4956fc30ae..911102d84cb 100644 --- a/core/util.runtime/src/org/jetbrains/kotlin/utils/addToStdlib.kt +++ b/core/util.runtime/src/org/jetbrains/kotlin/utils/addToStdlib.kt @@ -27,7 +27,7 @@ public fun T.singletonList(): List = Collections.singletonList(this) public fun T?.singletonOrEmptySet(): Set = if (this != null) Collections.singleton(this) else Collections.emptySet() -public inline fun Stream<*>.firstIsInstanceOrNull(): T? { +public inline fun Sequence<*>.firstIsInstanceOrNull(): T? { for (element in this) if (element is T) return element return null } @@ -42,7 +42,7 @@ public inline fun Array<*>.firstIsInstanceOrNull(): T? { return null } -public inline fun Stream<*>.firstIsInstance(): T { +public inline fun Sequence<*>.firstIsInstance(): T { for (element in this) if (element is T) return element throw NoSuchElementException("No element of given type found") } @@ -73,7 +73,7 @@ public inline fun Iterable<*>.lastIsInstanceOrNull(): T? { } } -public fun streamOfLazyValues(vararg elements: () -> T): Stream = elements.stream().map { it() } +public fun sequenceOfLazyValues(vararg elements: () -> T): Sequence = elements.asSequence().map { it() } public fun Pair.swap(): Pair = Pair(second, first) diff --git a/core/util.runtime/src/org/jetbrains/kotlin/utils/collections.kt b/core/util.runtime/src/org/jetbrains/kotlin/utils/collections.kt index 66cd1d6fb7b..4e97127de1d 100644 --- a/core/util.runtime/src/org/jetbrains/kotlin/utils/collections.kt +++ b/core/util.runtime/src/org/jetbrains/kotlin/utils/collections.kt @@ -23,7 +23,7 @@ import java.util.HashSet import java.util.Collections import java.util.LinkedHashSet -public fun Stream.valuesToMap(key: (V) -> K): Map { +public fun Sequence.valuesToMap(key: (V) -> K): Map { val map = LinkedHashMap() for (v in this) { map[key(v)] = v @@ -31,7 +31,7 @@ public fun Stream.valuesToMap(key: (V) -> K): Map { return map } -public fun Stream.keysToMap(value: (K) -> V): Map { +public fun Sequence.keysToMap(value: (K) -> V): Map { val map = LinkedHashMap() for (k in this) { map[k] = value(k) @@ -39,7 +39,7 @@ public fun Stream.keysToMap(value: (K) -> V): Map { return map } -public fun Stream.keysToMapExceptNulls(value: (K) -> V?): Map { +public fun Sequence.keysToMapExceptNulls(value: (K) -> V?): Map { val map = LinkedHashMap() for (k in this) { val v = value(k) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/codeInsight/DescriptorToSourceUtilsIde.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/codeInsight/DescriptorToSourceUtilsIde.kt index 7541b2342e9..460866554ae 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/codeInsight/DescriptorToSourceUtilsIde.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/codeInsight/DescriptorToSourceUtilsIde.kt @@ -28,7 +28,7 @@ import org.jetbrains.kotlin.utils.addIfNotNull import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor.Kind.* import java.util.* import org.jetbrains.kotlin.descriptors.* -import org.jetbrains.kotlin.utils.addToStdlib.streamOfLazyValues +import org.jetbrains.kotlin.utils.addToStdlib.sequenceOfLazyValues public object DescriptorToSourceUtilsIde { // Returns PSI element for descriptor. If there are many relevant elements (e.g. it is fake override @@ -45,12 +45,12 @@ public object DescriptorToSourceUtilsIde { return result.filter { element -> result.none { element != it && it.getNavigationElement() == element } } } - private fun getDeclarationsStream(project: Project, targetDescriptor: DeclarationDescriptor): Stream { - val effectiveReferencedDescriptors = DescriptorToSourceUtils.getEffectiveReferencedDescriptors(targetDescriptor).stream() + private fun getDeclarationsStream(project: Project, targetDescriptor: DeclarationDescriptor): Sequence { + val effectiveReferencedDescriptors = DescriptorToSourceUtils.getEffectiveReferencedDescriptors(targetDescriptor).asSequence() return effectiveReferencedDescriptors.flatMap { effectiveReferenced -> // References in library sources should be resolved to corresponding decompiled declarations, // therefore we put both source declaration and decompiled declaration to stream, and afterwards we filter it in getAllDeclarations - streamOfLazyValues( + sequenceOfLazyValues( { DescriptorToSourceUtils.getSourceFromDescriptor(effectiveReferenced) }, { findBuiltinDeclaration(project, effectiveReferenced) ?: DecompiledNavigationUtils.getDeclarationFromDecompiledClassFile(project, effectiveReferenced) } ) diff --git a/idea/src/org/jetbrains/kotlin/idea/hierarchy/overrides/KotlinOverrideTreeStructure.kt b/idea/src/org/jetbrains/kotlin/idea/hierarchy/overrides/KotlinOverrideTreeStructure.kt index 7d58e360203..ff37a324f30 100644 --- a/idea/src/org/jetbrains/kotlin/idea/hierarchy/overrides/KotlinOverrideTreeStructure.kt +++ b/idea/src/org/jetbrains/kotlin/idea/hierarchy/overrides/KotlinOverrideTreeStructure.kt @@ -39,7 +39,7 @@ class KotlinOverrideTreeStructure(project: Project, val element: PsiElement) : H } return javaTreeStructures - .stream() + .asSequence() .map (::buildChildrenByTreeStructure) .reduce { a, b -> ContainerUtil.union(a.toSet(), b.toSet()).toTypedArray() } } diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractorUtil.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractorUtil.kt index 69ed3fc5ed7..195fae6b0c3 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractorUtil.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractorUtil.kt @@ -203,7 +203,7 @@ fun ExtractableCodeDescriptor.findDuplicates(): List { return extractionData .originalRange .match(scopeElement, unifier) - .stream() + .asSequence() .filter { !(it.range.getTextRange() intersects originalTextRange) } .map { match -> val controlFlow = getControlFlowIfMatched(match) @@ -248,7 +248,7 @@ private fun makeCall( else -> calleeName } - val anchorInBlock = stream(anchor) { it.getParent() }.firstOrNull { it.getParent() is JetBlockExpression } + val anchorInBlock = sequence(anchor) { it.getParent() }.firstOrNull { it.getParent() is JetBlockExpression } val block = (anchorInBlock?.getParent() as? JetBlockExpression) ?: anchorParent val psiFactory = JetPsiFactory(anchor.getProject()) diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/KotlinSafeDeleteProcessor.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/KotlinSafeDeleteProcessor.kt index f40ebf89350..ac4e61deeb7 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/KotlinSafeDeleteProcessor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/KotlinSafeDeleteProcessor.kt @@ -107,7 +107,7 @@ public class KotlinSafeDeleteProcessor : JavaSafeDeleteProcessor() { return searchInfo } - fun findUsagesByJavaProcessor(elements: Stream, insideDeleted: Condition): Condition = + fun findUsagesByJavaProcessor(elements: Sequence, insideDeleted: Condition): Condition = elements .map { element -> findUsagesByJavaProcessor(element, true)?.getInsideDeletedCondition() } .filterNotNull() @@ -116,7 +116,7 @@ public class KotlinSafeDeleteProcessor : JavaSafeDeleteProcessor() { fun findUsagesByJavaProcessor(jetDeclaration: JetDeclaration): NonCodeUsageSearchInfo { return NonCodeUsageSearchInfo( findUsagesByJavaProcessor( - jetDeclaration.toLightElements().stream(), + jetDeclaration.toLightElements().asSequence(), getIgnoranceCondition() ), jetDeclaration @@ -125,7 +125,7 @@ public class KotlinSafeDeleteProcessor : JavaSafeDeleteProcessor() { fun findKotlinDeclarationUsages(declaration: JetDeclaration): NonCodeUsageSearchInfo { ReferencesSearch.search(declaration, declaration.getUseScope()) - .stream() + .asSequence() .filterNot { reference -> getIgnoranceCondition().value(reference.getElement()) } .mapTo(usages) { reference -> reference.getElement().getNonStrictParentOfType()?.let { importDirective -> @@ -231,7 +231,7 @@ public class KotlinSafeDeleteProcessor : JavaSafeDeleteProcessor() { if (declarationDescriptor !is CallableMemberDescriptor) return null return declarationDescriptor.getOverriddenDescriptors() - .stream() + .asSequence() .filter { overridenDescriptor -> overridenDescriptor.getModality() == Modality.ABSTRACT } .mapTo(ArrayList()) { overridenDescriptor -> JetBundle.message( diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/utils.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/utils.kt index 1ad062fa4b3..bb178115ae8 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/utils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/utils.kt @@ -56,7 +56,7 @@ fun PsiElement.removeOverrideModifier() { fun PsiMethod.cleanUpOverrides() { val superMethods = findSuperMethods(true) for (overridingMethod in OverridingMethodsSearch.search(this, true).findAll()) { - val currentSuperMethods = overridingMethod.findSuperMethods(true).stream() + superMethods.stream() + val currentSuperMethods = overridingMethod.findSuperMethods(true).asSequence() + superMethods.asSequence() if (currentSuperMethods.all { superMethod -> superMethod.unwrapped == unwrapped }) { overridingMethod.unwrapped?.removeOverrideModifier() } diff --git a/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinDirectInheritorsSearcher.kt b/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinDirectInheritorsSearcher.kt index 31f60f9e5b2..ef96f1dd45d 100644 --- a/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinDirectInheritorsSearcher.kt +++ b/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinDirectInheritorsSearcher.kt @@ -46,7 +46,7 @@ public open class KotlinDirectInheritorsSearcher() : QueryExecutorBase JetSourceNavigationHelper.getOriginalPsiClassOrCreateLightClass(candidate)} .filterNotNull() .filter { candidate -> candidate.isInheritor(baseClass, false) } diff --git a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/clean/removeDefaultInitializers.kt b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/clean/removeDefaultInitializers.kt index 1c95d46128b..081abe92ef6 100644 --- a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/clean/removeDefaultInitializers.kt +++ b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/clean/removeDefaultInitializers.kt @@ -113,7 +113,7 @@ private fun getDefaultParamsNames( ): Set { val argsParams = args.zipWithDefault(params, Namer.UNDEFINED_EXPRESSION) - val relevantParams = argsParams.stream() + val relevantParams = argsParams.asSequence() .filter { it.second.hasDefaultValue } .filter { initialized == !isUndefined(it.first) } diff --git a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/collectionUtils.kt b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/collectionUtils.kt index 14383379379..9e4e3e77842 100644 --- a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/collectionUtils.kt +++ b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/collectionUtils.kt @@ -32,7 +32,7 @@ public fun Collection.toIdentitySet(): MutableSet { return result } -public fun Stream.toIdentitySet(): MutableSet { +public fun Sequence.toIdentitySet(): MutableSet { val result = IdentitySet() for (element in this) { result.add(element)