diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/KotlinUtils.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/KotlinUtils.kt index 0f0fc619efe..35216aee495 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/KotlinUtils.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/KotlinUtils.kt @@ -18,7 +18,6 @@ package org.jetbrains.kotlin.psi2ir import com.intellij.psi.PsiElement import com.intellij.psi.tree.TokenSet -import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.incremental.components.NoLookupLocation import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET @@ -71,9 +70,6 @@ inline fun MemberScope.findFirstFunction(name: String, predicate: (CallableMembe fun MemberScope.findSingleFunction(name: Name): FunctionDescriptor = getContributedFunctions(name, NoLookupLocation.FROM_BACKEND).single() -fun KotlinBuiltIns.findSingleFunction(name: Name): FunctionDescriptor = - builtInsPackageScope.findSingleFunction(name) - val PsiElement?.startOffsetOrUndefined get() = this?.startOffsetSkippingComments ?: UNDEFINED_OFFSET val PsiElement?.endOffsetOrUndefined get() = this?.endOffset ?: UNDEFINED_OFFSET @@ -86,4 +82,4 @@ val PropertyDescriptor.unwrappedSetMethod: FunctionDescriptor? val KtPureElement?.pureStartOffsetOrUndefined get() = this?.psiOrParent?.startOffsetSkippingComments ?: UNDEFINED_OFFSET val KtPureElement?.pureEndOffsetOrUndefined get() = this?.psiOrParent?.endOffset ?: UNDEFINED_OFFSET -fun KtElement.getChildTokenStartOffsetOrNull(tokenSet: TokenSet) = node.findChildByType(tokenSet)?.startOffset \ No newline at end of file +fun KtElement.getChildTokenStartOffsetOrNull(tokenSet: TokenSet) = node.findChildByType(tokenSet)?.startOffset diff --git a/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java b/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java index d4c94b0be22..c9f9c9ab750 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java +++ b/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java @@ -83,14 +83,14 @@ public abstract class KotlinBuiltIns { PackageFragmentProvider provider = builtInsModule.getPackageFragmentProvider(); Map nameToFragment = new LinkedHashMap(); - PackageFragmentDescriptor kotlin = createPackage(provider, nameToFragment, BUILT_INS_PACKAGE_FQ_NAME); + createPackage(provider, nameToFragment, BUILT_INS_PACKAGE_FQ_NAME); createPackage(provider, null, COROUTINES_PACKAGE_FQ_NAME_RELEASE); createPackage(provider, nameToFragment, COLLECTIONS_PACKAGE_FQ_NAME); createPackage(provider, nameToFragment, RANGES_PACKAGE_FQ_NAME); createPackage(provider, nameToFragment, ANNOTATION_PACKAGE_FQ_NAME); Set allImportedByDefault = new LinkedHashSet(nameToFragment.values()); - return new PackageFragments(kotlin, allImportedByDefault); + return new PackageFragments(allImportedByDefault); } }); @@ -117,8 +117,7 @@ public abstract class KotlinBuiltIns { this.builtInClassesByName = storageManager.createMemoizedFunction(new Function1() { @Override public ClassDescriptor invoke(Name name) { - ClassifierDescriptor classifier = - getBuiltInsPackageFragment().getMemberScope().getContributedClassifier(name, NoLookupLocation.FROM_BUILTINS); + ClassifierDescriptor classifier = getBuiltInsPackageScope().getContributedClassifier(name, NoLookupLocation.FROM_BUILTINS); if (classifier == null) { throw new AssertionError("Built-in class " + BUILT_INS_PACKAGE_FQ_NAME.child(name) + " is not found"); } @@ -227,14 +226,9 @@ public abstract class KotlinBuiltIns { } private static class PackageFragments { - public final PackageFragmentDescriptor builtInsPackageFragment; public final Set allImportedByDefaultBuiltInsPackageFragments; - private PackageFragments( - @NotNull PackageFragmentDescriptor builtInsPackageFragment, - @NotNull Set allImportedByDefaultBuiltInsPackageFragments - ) { - this.builtInsPackageFragment = builtInsPackageFragment; + private PackageFragments(@NotNull Set allImportedByDefaultBuiltInsPackageFragments) { this.allImportedByDefaultBuiltInsPackageFragments = allImportedByDefaultBuiltInsPackageFragments; } } @@ -376,11 +370,6 @@ public abstract class KotlinBuiltIns { return packageFragments.invoke().allImportedByDefaultBuiltInsPackageFragments; } - @NotNull - public PackageFragmentDescriptor getBuiltInsPackageFragment() { - return packageFragments.invoke().builtInsPackageFragment; - } - /** * Checks if the given descriptor is declared in the deserialized built-in package fragment, i.e. if it was loaded as a part of * loading .kotlin_builtins definition files. @@ -410,7 +399,7 @@ public abstract class KotlinBuiltIns { @NotNull public MemberScope getBuiltInsPackageScope() { - return packageFragments.invoke().builtInsPackageFragment.getMemberScope(); + return builtInsModule.getPackage(BUILT_INS_PACKAGE_FQ_NAME).getMemberScope(); } @NotNull diff --git a/idea/tests/org/jetbrains/kotlin/idea/references/BuiltInsReferenceResolverTest.java b/idea/tests/org/jetbrains/kotlin/idea/references/BuiltInsReferenceResolverTest.java index 7be7080e468..ec4cb48df90 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/references/BuiltInsReferenceResolverTest.java +++ b/idea/tests/org/jetbrains/kotlin/idea/references/BuiltInsReferenceResolverTest.java @@ -23,7 +23,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.builtins.DefaultBuiltIns; import org.jetbrains.kotlin.descriptors.ClassDescriptor; import org.jetbrains.kotlin.descriptors.DeclarationDescriptor; -import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor; +import org.jetbrains.kotlin.descriptors.PackageViewDescriptor; import org.jetbrains.kotlin.descriptors.impl.DeclarationDescriptorVisitorEmptyBodies; import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde; import org.jetbrains.kotlin.idea.navigation.GotoCheck; @@ -31,6 +31,7 @@ import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase; import org.jetbrains.kotlin.idea.test.PluginTestCaseBase; import org.jetbrains.kotlin.idea.test.ProjectDescriptorWithStdlibSources; import org.jetbrains.kotlin.resolve.DescriptorUtils; +import org.jetbrains.kotlin.resolve.scopes.MemberScope; import org.jetbrains.kotlin.test.InTextDirectivesUtils; import java.util.ArrayList; @@ -83,11 +84,11 @@ public class BuiltInsReferenceResolverTest extends KotlinLightCodeInsightFixture } private static Collection getAllStandardDescriptors() { - final List descriptors = new ArrayList(); + List descriptors = new ArrayList<>(); - PackageFragmentDescriptor builtinsPackageFragment = DefaultBuiltIns.getInstance().getBuiltInsPackageFragment(); + MemberScope builtIns = DefaultBuiltIns.getInstance().getBuiltInsPackageScope(); - for (DeclarationDescriptor packageMember : DescriptorUtils.getAllDescriptors(builtinsPackageFragment.getMemberScope())) { + for (DeclarationDescriptor packageMember : DescriptorUtils.getAllDescriptors(builtIns)) { packageMember.acceptVoid(new DeclarationDescriptorVisitorEmptyBodies() { @Override public Void visitClassDescriptor(ClassDescriptor descriptor, Void data) { @@ -104,6 +105,11 @@ public class BuiltInsReferenceResolverTest extends KotlinLightCodeInsightFixture descriptors.add(descriptor); return null; } + + @Override + public Void visitPackageViewDescriptor(PackageViewDescriptor descriptor, Void data) { + return null; + } }); }