diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/builtinSpecialBridges.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/builtinSpecialBridges.kt index b1e0b8ca40f..3347f640d14 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/builtinSpecialBridges.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/builtinSpecialBridges.kt @@ -119,7 +119,7 @@ object BuiltinSpecialBridgesUtil { ): Boolean { if (BuiltinMethodsWithSpecialGenericSignature.getDefaultValueForOverriddenBuiltinFunction(this) == null) return false - val builtin = getOverriddenBuiltinReflectingJvmDescriptor()!! + val builtin = getOverriddenBuiltinReflectingJvmDescriptor() ?: error("Overridden built-in member not found: $this") return signatureByDescriptor(this) == signatureByDescriptor(builtin) } } diff --git a/compiler/tests/org/jetbrains/kotlin/serialization/builtins/AbstractBuiltInsWithJDKMembersTest.kt b/compiler/tests/org/jetbrains/kotlin/serialization/builtins/AbstractBuiltInsWithJDKMembersTest.kt index 3b376aa4b47..46919032988 100644 --- a/compiler/tests/org/jetbrains/kotlin/serialization/builtins/AbstractBuiltInsWithJDKMembersTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/serialization/builtins/AbstractBuiltInsWithJDKMembersTest.kt @@ -17,6 +17,7 @@ package org.jetbrains.kotlin.serialization.builtins import com.intellij.psi.search.GlobalSearchScope +import org.jetbrains.kotlin.builtins.BuiltInsPackageFragment import org.jetbrains.kotlin.builtins.KotlinBuiltIns.* import org.jetbrains.kotlin.cli.jvm.compiler.CliLightClassGenerationSupport import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment @@ -68,7 +69,7 @@ abstract class AbstractBuiltInsWithJDKMembersTest : KotlinTestWithEnvironment() val packageFragmentProvider = emptyModule.builtIns.builtInsModule.packageFragmentProvider for (packageFqName in listOf(BUILT_INS_PACKAGE_FQ_NAME, COLLECTIONS_PACKAGE_FQ_NAME, RANGES_PACKAGE_FQ_NAME)) { - val loaded = packageFragmentProvider.getPackageFragments(packageFqName).single() + val loaded = packageFragmentProvider.getPackageFragments(packageFqName).filterIsInstance().single() RecursiveDescriptorComparator.validateAndCompareDescriptorWithFile( loaded, configuration, File("compiler/testData/builtin-classes/$builtinVersionName/" + packageFqName.asString().replace('.', '-') + ".txt")) diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/builtins/JvmBuiltInClassDescriptorFactory.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/builtins/JvmBuiltInClassDescriptorFactory.kt index 7f0f9763bb7..f4671ce44fa 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/builtins/JvmBuiltInClassDescriptorFactory.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/builtins/JvmBuiltInClassDescriptorFactory.kt @@ -31,7 +31,7 @@ class JvmBuiltInClassDescriptorFactory( ) : ClassDescriptorFactory { private val cloneable by storageManager.createLazyValue { ClassDescriptorImpl( - moduleDescriptor.getPackage(KOTLIN_FQ_NAME).fragments.single(), + moduleDescriptor.getPackage(KOTLIN_FQ_NAME).fragments.filterIsInstance().single(), CLONEABLE_NAME, Modality.ABSTRACT, ClassKind.INTERFACE, listOf(moduleDescriptor.builtIns.anyType), SourceElement.NO_SOURCE ).apply { diff --git a/core/descriptors/src/org/jetbrains/kotlin/builtins/functions/BuiltInFictitiousFunctionClassFactory.kt b/core/descriptors/src/org/jetbrains/kotlin/builtins/functions/BuiltInFictitiousFunctionClassFactory.kt index f06b0ee882e..b87a78b704a 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/builtins/functions/BuiltInFictitiousFunctionClassFactory.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/builtins/functions/BuiltInFictitiousFunctionClassFactory.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.builtins.functions +import org.jetbrains.kotlin.builtins.BuiltInsPackageFragment import org.jetbrains.kotlin.builtins.functions.FunctionClassDescriptor.Kind import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor @@ -79,7 +80,7 @@ class BuiltInFictitiousFunctionClassFactory( val packageFqName = classId.packageFqName val (kind, arity) = parseClassName(className, packageFqName) ?: return null - val containingPackageFragment = module.getPackage(packageFqName).fragments.single() + val containingPackageFragment = module.getPackage(packageFqName).fragments.filterIsInstance().single() return FunctionClassDescriptor(storageManager, containingPackageFragment, kind, arity) } diff --git a/core/descriptors/src/org/jetbrains/kotlin/builtins/functions/FunctionClassDescriptor.kt b/core/descriptors/src/org/jetbrains/kotlin/builtins/functions/FunctionClassDescriptor.kt index 1bac28c1695..96dc7cb0a45 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/builtins/functions/FunctionClassDescriptor.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/builtins/functions/FunctionClassDescriptor.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.builtins.functions +import org.jetbrains.kotlin.builtins.BuiltInsPackageFragment import org.jetbrains.kotlin.builtins.KOTLIN_REFLECT_FQ_NAME import org.jetbrains.kotlin.builtins.KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME import org.jetbrains.kotlin.descriptors.* @@ -129,8 +130,8 @@ class FunctionClassDescriptor( // For KFunction{n}, add corresponding numbered Function{n} class, e.g. Function2 for KFunction2 if (functionKind == Kind.KFunction) { - val module = containingDeclaration.containingDeclaration - val kotlinPackageFragment = module.getPackage(BUILT_INS_PACKAGE_FQ_NAME).fragments.single() + val packageView = containingDeclaration.containingDeclaration.getPackage(BUILT_INS_PACKAGE_FQ_NAME) + val kotlinPackageFragment = packageView.fragments.filterIsInstance().single() add(kotlinPackageFragment, Kind.Function.numberedClassName(arity)) }