From 466b535ba982f12e72e14c22b833ecd431b1d954 Mon Sep 17 00:00:00 2001 From: Michael Bogdanov Date: Fri, 4 Sep 2015 15:59:40 +0300 Subject: [PATCH] Get rid of DeserializedNewPackageMemberScope.kt --- .../IncrementalPackageFragmentProvider.kt | 10 ++- .../lazy/descriptors/LazyJavaPackageScope.kt | 2 +- .../DeserializedDescriptorResolver.java | 10 +-- .../DeserializedNewPackageMemberScope.kt | 61 ------------------- 4 files changed, 14 insertions(+), 69 deletions(-) delete mode 100644 core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedNewPackageMemberScope.kt diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/IncrementalPackageFragmentProvider.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/IncrementalPackageFragmentProvider.kt index 0f3a25a09fa..16f72d22fa5 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/IncrementalPackageFragmentProvider.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/IncrementalPackageFragmentProvider.kt @@ -29,12 +29,12 @@ import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.JetFile import org.jetbrains.kotlin.resolve.jvm.JvmClassName +import org.jetbrains.kotlin.resolve.scopes.ChainedScope import org.jetbrains.kotlin.resolve.scopes.DecapitalizedAnnotationScope import org.jetbrains.kotlin.resolve.scopes.JetScope import org.jetbrains.kotlin.serialization.PackageData import org.jetbrains.kotlin.serialization.ProtoBuf import org.jetbrains.kotlin.serialization.deserialization.DeserializationComponents -import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedNewPackageMemberScope import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedPackageMemberScope import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf import org.jetbrains.kotlin.serialization.jvm.JvmProtoBufUtil @@ -124,7 +124,13 @@ public class IncrementalPackageFragmentProvider( } else { val scopes = dataOfPackageParts.map { IncrementalPackageScope(JvmProtoBufUtil.readPackageDataFrom(it)) } - DecapitalizedAnnotationScope.wrapIfNeeded(DeserializedNewPackageMemberScope(this, scopes), fqName) + DecapitalizedAnnotationScope.wrapIfNeeded( + ChainedScope(this, + "Member scope for incremental compilation: union of package parts data", + *scopes.toTypedArray() + ), + fqName + ) } } } diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaPackageScope.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaPackageScope.kt index ef73f9b1b52..e148ac91a10 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaPackageScope.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaPackageScope.kt @@ -62,7 +62,7 @@ public class LazyJavaPackageScope( if (kotlinBinaryClasses().isEmpty()) JetScope.Empty else { - c.components.deserializedDescriptorResolver.createKotlinNewPackageScope(packageFragment, kotlinBinaryClasses()) + c.components.deserializedDescriptorResolver.createKotlinPackageScope(packageFragment, kotlinBinaryClasses()) } } diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/DeserializedDescriptorResolver.java b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/DeserializedDescriptorResolver.java index 0b95f1f815f..af1a84b4fec 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/DeserializedDescriptorResolver.java +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/DeserializedDescriptorResolver.java @@ -23,13 +23,13 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor; import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor; import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader; import org.jetbrains.kotlin.name.Name; +import org.jetbrains.kotlin.resolve.scopes.ChainedScope; import org.jetbrains.kotlin.resolve.scopes.JetScope; import org.jetbrains.kotlin.serialization.ClassData; import org.jetbrains.kotlin.serialization.PackageData; import org.jetbrains.kotlin.serialization.deserialization.ClassDataProvider; import org.jetbrains.kotlin.serialization.deserialization.DeserializationComponents; import org.jetbrains.kotlin.serialization.deserialization.ErrorReporter; -import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedNewPackageMemberScope; import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedPackageMemberScope; import org.jetbrains.kotlin.serialization.jvm.JvmProtoBufUtil; @@ -68,7 +68,7 @@ public final class DeserializedDescriptorResolver { } @Nullable - public JetScope createKotlinPackageScope(@NotNull PackageFragmentDescriptor descriptor, @NotNull KotlinJvmBinaryClass kotlinClass) { + public JetScope createKotlinPackagePartScope(@NotNull PackageFragmentDescriptor descriptor, @NotNull KotlinJvmBinaryClass kotlinClass) { String[] data = readData(kotlinClass, KotlinClassHeader.Kind.FILE_FACADE); if (data != null) { //all classes are included in java scope @@ -87,10 +87,10 @@ public final class DeserializedDescriptorResolver { } @NotNull - public JetScope createKotlinNewPackageScope(@NotNull PackageFragmentDescriptor descriptor, @NotNull List packageParts) { + public JetScope createKotlinPackageScope(@NotNull PackageFragmentDescriptor descriptor, @NotNull List packageParts) { List list = new ArrayList(); for (KotlinJvmBinaryClass callable : packageParts) { - JetScope scope = createKotlinPackageScope(descriptor, callable); + JetScope scope = createKotlinPackagePartScope(descriptor, callable); if (scope != null) { list.add(scope); } @@ -98,7 +98,7 @@ public final class DeserializedDescriptorResolver { if (list.isEmpty()) { return JetScope.Empty.INSTANCE$; } - return new DeserializedNewPackageMemberScope(descriptor, list); + return new ChainedScope(descriptor, "Member scope for union of package parts data", list.toArray(new JetScope[list.size()])); } @Nullable diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedNewPackageMemberScope.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedNewPackageMemberScope.kt deleted file mode 100644 index ab1d9ed12d4..00000000000 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedNewPackageMemberScope.kt +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.serialization.deserialization.descriptors - -import org.jetbrains.kotlin.descriptors.FunctionDescriptor -import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor -import org.jetbrains.kotlin.descriptors.ReceiverParameterDescriptor -import org.jetbrains.kotlin.descriptors.VariableDescriptor -import org.jetbrains.kotlin.incremental.components.LookupLocation -import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter -import org.jetbrains.kotlin.resolve.scopes.JetScope -import org.jetbrains.kotlin.resolve.scopes.JetScopeImpl -import org.jetbrains.kotlin.utils.Printer - -public open class DeserializedNewPackageMemberScope( - val packageDescriptor: PackageFragmentDescriptor, - val membersList: List -) : JetScopeImpl() { - - override fun getFunctions(name: Name, location: LookupLocation): Collection = membersList.flatMap { it.getFunctions(name, location) } - - override fun getProperties(name: Name, location: LookupLocation): Collection = membersList.flatMap { it.getProperties(name, location) } - - override fun getClassifier(name: Name, location: LookupLocation) = membersList.asSequence().map { it.getClassifier(name, location) }.filterNotNull().firstOrNull() - - override fun getContainingDeclaration() = packageDescriptor - - override fun getImplicitReceiversHierarchy(): List { - return listOf() - } - - override fun getOwnDeclaredDescriptors() = getAllDescriptors() - - override fun printScopeStructure(p: Printer) { - p.println(javaClass.getSimpleName(), " {") - p.pushIndent() - - p.println("containingDeclaration = " + getContainingDeclaration()) - - p.popIndent() - p.println("}") - } - - override fun getDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean) - = membersList.flatMap { it.getDescriptors(kindFilter, nameFilter) } -}