diff --git a/build-common/src/org/jetbrains/kotlin/incremental/JavaClassesSerializerExtension.kt b/build-common/src/org/jetbrains/kotlin/incremental/JavaClassesSerializerExtension.kt index f245e103fe3..bbea5202cf4 100644 --- a/build-common/src/org/jetbrains/kotlin/incremental/JavaClassesSerializerExtension.kt +++ b/build-common/src/org/jetbrains/kotlin/incremental/JavaClassesSerializerExtension.kt @@ -16,7 +16,6 @@ package org.jetbrains.kotlin.incremental -import org.jetbrains.kotlin.builtins.BuiltInSerializerProtocol import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.load.java.JavaVisibilities import org.jetbrains.kotlin.metadata.ProtoBuf @@ -25,6 +24,7 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.scopes.MemberScope import org.jetbrains.kotlin.serialization.DescriptorSerializer import org.jetbrains.kotlin.serialization.KotlinSerializerExtensionBase +import org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInSerializerProtocol // It uses BuiltInSerializerProtocol for annotations serialization class JavaClassesSerializerExtension : KotlinSerializerExtensionBase(BuiltInSerializerProtocol) { diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/CollectionStubMethodGenerator.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/CollectionStubMethodGenerator.kt index 221809489dc..953989d0d39 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/CollectionStubMethodGenerator.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/CollectionStubMethodGenerator.kt @@ -17,6 +17,7 @@ package org.jetbrains.kotlin.codegen import org.jetbrains.kotlin.builtins.KotlinBuiltIns +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.codegen.state.KotlinTypeMapper import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor.Kind.DECLARATION @@ -27,7 +28,6 @@ import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialGenericSignature. import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialGenericSignature.isBuiltinWithSpecialDescriptorInJvm import org.jetbrains.kotlin.load.java.descriptors.JavaClassDescriptor import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.NonReportingOverrideStrategy import org.jetbrains.kotlin.resolve.OverridingStrategy diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java index f0d702ef933..b6be7cc50dd 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java @@ -16,6 +16,8 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.backend.common.CodegenUtil; import org.jetbrains.kotlin.backend.common.DataClassMethodGenerator; import org.jetbrains.kotlin.builtins.KotlinBuiltIns; +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap; +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap.PlatformMutabilityMapping; import org.jetbrains.kotlin.codegen.binding.CodegenBinding; import org.jetbrains.kotlin.codegen.binding.MutableClosure; import org.jetbrains.kotlin.codegen.context.*; @@ -33,8 +35,6 @@ import org.jetbrains.kotlin.load.kotlin.TypeMappingMode; import org.jetbrains.kotlin.name.ClassId; import org.jetbrains.kotlin.name.FqName; import org.jetbrains.kotlin.name.Name; -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap; -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap.PlatformMutabilityMapping; import org.jetbrains.kotlin.psi.*; import org.jetbrains.kotlin.resolve.*; import org.jetbrains.kotlin.resolve.calls.callUtil.CallUtilKt; diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/JvmBackendClassResolver.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/JvmBackendClassResolver.kt index 352a6b06d20..5a710a943cc 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/JvmBackendClassResolver.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/JvmBackendClassResolver.kt @@ -16,12 +16,12 @@ package org.jetbrains.kotlin.codegen +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.findClassAcrossModuleDependencies import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.org.objectweb.asm.Type interface JvmBackendClassResolver { diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/KotlinTypeMapper.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/KotlinTypeMapper.java index f1bf946a1cd..c8433d64614 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/KotlinTypeMapper.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/KotlinTypeMapper.java @@ -16,6 +16,7 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.builtins.BuiltInsPackageFragment; import org.jetbrains.kotlin.builtins.KotlinBuiltIns; import org.jetbrains.kotlin.builtins.functions.FunctionClassDescriptor; +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap; import org.jetbrains.kotlin.codegen.*; import org.jetbrains.kotlin.codegen.binding.CodegenBinding; import org.jetbrains.kotlin.codegen.binding.MutableClosure; @@ -26,7 +27,6 @@ import org.jetbrains.kotlin.codegen.signature.JvmSignatureWriter; import org.jetbrains.kotlin.descriptors.*; import org.jetbrains.kotlin.descriptors.impl.LocalVariableAccessorDescriptor; import org.jetbrains.kotlin.descriptors.impl.LocalVariableDescriptor; -import org.jetbrains.kotlin.descriptors.impl.SimpleFunctionDescriptorImpl; import org.jetbrains.kotlin.descriptors.impl.TypeAliasConstructorDescriptor; import org.jetbrains.kotlin.fileClasses.JvmFileClassInfo; import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil; @@ -42,8 +42,10 @@ import org.jetbrains.kotlin.load.kotlin.*; import org.jetbrains.kotlin.load.kotlin.incremental.IncrementalPackageFragmentProvider.IncrementalMultifileClassPackageFragment; import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmBytecodeBinaryVersion; import org.jetbrains.kotlin.name.*; -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap; -import org.jetbrains.kotlin.psi.*; +import org.jetbrains.kotlin.psi.KtExpression; +import org.jetbrains.kotlin.psi.KtFile; +import org.jetbrains.kotlin.psi.KtFunctionLiteral; +import org.jetbrains.kotlin.psi.KtLambdaExpression; import org.jetbrains.kotlin.resolve.*; import org.jetbrains.kotlin.resolve.calls.model.DefaultValueArgument; import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall; @@ -54,7 +56,6 @@ import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodGenericSignature; import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodParameterKind; import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodParameterSignature; import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature; -import org.jetbrains.kotlin.resolve.source.KotlinSourceElement; import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedCallableMemberDescriptor; import org.jetbrains.kotlin.types.*; import org.jetbrains.kotlin.util.OperatorNameConventions; diff --git a/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializer.kt b/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializer.kt index f33a16e1763..08b6b4292db 100644 --- a/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializer.kt +++ b/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializer.kt @@ -17,9 +17,8 @@ package org.jetbrains.kotlin.serialization.builtins import com.intellij.openapi.util.Disposer -import org.jetbrains.kotlin.builtins.BuiltInSerializerProtocol -import org.jetbrains.kotlin.builtins.JvmBuiltInClassDescriptorFactory import org.jetbrains.kotlin.builtins.KotlinBuiltIns +import org.jetbrains.kotlin.builtins.jvm.JvmBuiltInClassDescriptorFactory import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys import org.jetbrains.kotlin.cli.common.messages.* import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles @@ -38,6 +37,7 @@ import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter import org.jetbrains.kotlin.serialization.KotlinSerializerExtensionBase +import org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInSerializerProtocol import org.jetbrains.kotlin.storage.LockBasedStorageManager import java.io.File diff --git a/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerExtension.kt b/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerExtension.kt index 6479366018e..67efaf9f94b 100644 --- a/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerExtension.kt +++ b/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerExtension.kt @@ -16,9 +16,9 @@ package org.jetbrains.kotlin.serialization.builtins -import org.jetbrains.kotlin.builtins.BuiltInSerializerProtocol import org.jetbrains.kotlin.metadata.ProtoBuf import org.jetbrains.kotlin.serialization.KotlinSerializerExtensionBase +import org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInSerializerProtocol import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.UnresolvedType diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/CliVirtualFileFinder.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/CliVirtualFileFinder.kt index d6116923c98..2a2d1e433a1 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/CliVirtualFileFinder.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/CliVirtualFileFinder.kt @@ -18,7 +18,6 @@ package org.jetbrains.kotlin.cli.jvm.compiler import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.search.GlobalSearchScope -import org.jetbrains.kotlin.builtins.BuiltInSerializerProtocol import org.jetbrains.kotlin.cli.jvm.index.JavaRoot import org.jetbrains.kotlin.cli.jvm.index.JvmDependenciesIndex import org.jetbrains.kotlin.load.kotlin.VirtualFileFinder @@ -26,6 +25,7 @@ import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.serialization.deserialization.MetadataPackageFragment +import org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInSerializerProtocol import java.io.InputStream class CliVirtualFileFinder( diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/TopDownAnalyzerFacadeForJVM.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/TopDownAnalyzerFacadeForJVM.kt index 70e81c9ff01..8aa8d9f0f4c 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/TopDownAnalyzerFacadeForJVM.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/TopDownAnalyzerFacadeForJVM.kt @@ -22,7 +22,8 @@ import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.search.DelegatingGlobalSearchScope import com.intellij.psi.search.GlobalSearchScope import org.jetbrains.kotlin.analyzer.AnalysisResult -import org.jetbrains.kotlin.builtins.JvmBuiltInsPackageFragmentProvider +import org.jetbrains.kotlin.builtins.jvm.JvmBuiltIns +import org.jetbrains.kotlin.builtins.jvm.JvmBuiltInsPackageFragmentProvider import org.jetbrains.kotlin.config.* import org.jetbrains.kotlin.container.ComponentProvider import org.jetbrains.kotlin.container.StorageComponentContainer @@ -37,7 +38,6 @@ import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.PackageFragmentProvider import org.jetbrains.kotlin.descriptors.PackagePartProvider import org.jetbrains.kotlin.descriptors.impl.CompositePackageFragmentProvider -import org.jetbrains.kotlin.descriptors.impl.ModuleDependenciesImpl import org.jetbrains.kotlin.frontend.java.di.createContainerForTopDownAnalyzerForJvm import org.jetbrains.kotlin.frontend.java.di.initJvmBuiltInsForTopDownAnalysis import org.jetbrains.kotlin.frontend.java.di.initialize @@ -56,7 +56,6 @@ import org.jetbrains.kotlin.load.kotlin.incremental.IncrementalPackageFragmentPr import org.jetbrains.kotlin.load.kotlin.incremental.IncrementalPackagePartProvider import org.jetbrains.kotlin.modules.TargetId import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.platform.JvmBuiltIns import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.resolve.BindingTrace import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/metadata/MetadataSerializerExtension.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/metadata/MetadataSerializerExtension.kt index 6c0ba5c4a52..7f991595029 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/metadata/MetadataSerializerExtension.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/metadata/MetadataSerializerExtension.kt @@ -16,8 +16,8 @@ package org.jetbrains.kotlin.cli.metadata -import org.jetbrains.kotlin.builtins.BuiltInSerializerProtocol import org.jetbrains.kotlin.serialization.KotlinSerializerExtensionBase +import org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInSerializerProtocol class MetadataSerializerExtension : KotlinSerializerExtensionBase(BuiltInSerializerProtocol) { override fun shouldUseTypeTable(): Boolean = true diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt index d87bc4a4e23..34e27d72ace 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt @@ -18,7 +18,8 @@ package org.jetbrains.kotlin.frontend.java.di import com.intellij.openapi.project.Project import com.intellij.psi.search.GlobalSearchScope -import org.jetbrains.kotlin.builtins.JvmBuiltInsPackageFragmentProvider +import org.jetbrains.kotlin.builtins.jvm.JvmBuiltIns +import org.jetbrains.kotlin.builtins.jvm.JvmBuiltInsPackageFragmentProvider import org.jetbrains.kotlin.config.AnalysisFlag import org.jetbrains.kotlin.config.JvmTarget import org.jetbrains.kotlin.config.LanguageFeature @@ -40,7 +41,6 @@ import org.jetbrains.kotlin.load.java.lazy.JavaResolverSettings import org.jetbrains.kotlin.load.java.lazy.ModuleClassResolver import org.jetbrains.kotlin.load.kotlin.DeserializationComponentsForJava import org.jetbrains.kotlin.load.kotlin.VirtualFileFinderFactory -import org.jetbrains.kotlin.platform.JvmBuiltIns import org.jetbrains.kotlin.resolve.* import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/JvmOverridesBackwardCompatibilityHelper.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/JvmOverridesBackwardCompatibilityHelper.kt index 757927330dc..d739aad5119 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/JvmOverridesBackwardCompatibilityHelper.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/JvmOverridesBackwardCompatibilityHelper.kt @@ -16,11 +16,11 @@ package org.jetbrains.kotlin.resolve.jvm +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.deserialization.PLATFORM_DEPENDENT_ANNOTATION_FQ_NAME import org.jetbrains.kotlin.load.java.descriptors.JavaMethodDescriptor -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.OverridesBackwardCompatibilityHelper import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameUnsafe diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatform.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatform.kt index 780f3ebca72..b401e372b1c 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatform.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatform.kt @@ -16,7 +16,7 @@ package org.jetbrains.kotlin.resolve.jvm.platform -import org.jetbrains.kotlin.platform.JvmBuiltIns +import org.jetbrains.kotlin.builtins.jvm.JvmBuiltIns import org.jetbrains.kotlin.resolve.* import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter import org.jetbrains.kotlin.resolve.scopes.MemberScope diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatformConfigurator.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatformConfigurator.kt index fedc33f7067..30238de76cc 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatformConfigurator.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatformConfigurator.kt @@ -16,12 +16,12 @@ package org.jetbrains.kotlin.resolve.jvm.platform +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.container.StorageComponentContainer import org.jetbrains.kotlin.container.useImpl import org.jetbrains.kotlin.container.useInstance import org.jetbrains.kotlin.load.java.sam.JvmSamConversionTransformer import org.jetbrains.kotlin.load.java.sam.SamConversionResolverImpl -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.resolve.PlatformConfigurator import org.jetbrains.kotlin.resolve.calls.checkers.ReifiedTypeParameterSubstitutionChecker import org.jetbrains.kotlin.resolve.checkers.ExpectedActualDeclarationChecker diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/PlatformClassesMappedToKotlinChecker.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/PlatformClassesMappedToKotlinChecker.java index ed53b00c7d1..f30ce4868b1 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/PlatformClassesMappedToKotlinChecker.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/PlatformClassesMappedToKotlinChecker.java @@ -17,9 +17,9 @@ package org.jetbrains.kotlin.resolve; import org.jetbrains.annotations.NotNull; +import org.jetbrains.kotlin.builtins.PlatformToKotlinClassMap; import org.jetbrains.kotlin.descriptors.ClassDescriptor; import org.jetbrains.kotlin.descriptors.DeclarationDescriptor; -import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap; import org.jetbrains.kotlin.psi.KtElement; import org.jetbrains.kotlin.psi.KtExpression; import org.jetbrains.kotlin.psi.KtImportDirective; diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt index 06b6b351346..333cbf08900 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt @@ -5,14 +5,11 @@ package org.jetbrains.kotlin.resolve -import com.intellij.openapi.util.Key +import org.jetbrains.kotlin.builtins.PlatformToKotlinClassMap import org.jetbrains.kotlin.container.StorageComponentContainer import org.jetbrains.kotlin.container.composeContainer import org.jetbrains.kotlin.container.useInstance import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap -import org.jetbrains.kotlin.psi.KtFile -import org.jetbrains.kotlin.psi.UserDataProperty import org.jetbrains.kotlin.resolve.calls.checkers.* import org.jetbrains.kotlin.resolve.calls.components.SamConversionTransformer import org.jetbrains.kotlin.resolve.calls.results.TypeSpecificityComparator diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TypeResolver.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TypeResolver.kt index a3a54c2c933..50aa781c06f 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TypeResolver.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TypeResolver.kt @@ -17,6 +17,7 @@ package org.jetbrains.kotlin.resolve import com.intellij.util.SmartList +import org.jetbrains.kotlin.builtins.PlatformToKotlinClassMap import org.jetbrains.kotlin.builtins.createFunctionType import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.config.LanguageVersionSettings @@ -29,7 +30,6 @@ import org.jetbrains.kotlin.diagnostics.Errors import org.jetbrains.kotlin.diagnostics.Errors.* import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.codeFragmentUtil.debugTypeInfo import org.jetbrains.kotlin.psi.codeFragmentUtil.suppressDiagnosticsInDebugMode diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/FileScopeFactory.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/FileScopeFactory.kt index f2834aeabc1..aa458ab1820 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/FileScopeFactory.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/FileScopeFactory.kt @@ -16,13 +16,13 @@ package org.jetbrains.kotlin.resolve.lazy +import org.jetbrains.kotlin.builtins.PlatformToKotlinClassMap import org.jetbrains.kotlin.config.LanguageVersionSettings import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.annotations.Annotations import org.jetbrains.kotlin.incremental.components.LookupLocation import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtImportDirective import org.jetbrains.kotlin.psi.KtImportsFactory diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyImportScope.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyImportScope.kt index b81aeb304a0..55a26b9a8a4 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyImportScope.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyImportScope.kt @@ -19,6 +19,7 @@ package org.jetbrains.kotlin.resolve.lazy import com.google.common.collect.HashMultimap import com.google.common.collect.ImmutableListMultimap import com.google.common.collect.ListMultimap +import org.jetbrains.kotlin.builtins.PlatformToKotlinClassMap import org.jetbrains.kotlin.config.LanguageVersionSettings import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.diagnostics.Errors @@ -26,7 +27,6 @@ import org.jetbrains.kotlin.incremental.KotlinLookupLocation import org.jetbrains.kotlin.incremental.components.LookupLocation import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap import org.jetbrains.kotlin.psi.KtImportDirective import org.jetbrains.kotlin.psi.KtPsiUtil import org.jetbrains.kotlin.resolve.* diff --git a/compiler/frontend/src/org/jetbrains/kotlin/types/CastDiagnosticsUtil.kt b/compiler/frontend/src/org/jetbrains/kotlin/types/CastDiagnosticsUtil.kt index 65141f90833..8ae4f1f600b 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/types/CastDiagnosticsUtil.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/types/CastDiagnosticsUtil.kt @@ -19,11 +19,11 @@ package org.jetbrains.kotlin.types import com.google.common.collect.Maps import com.intellij.psi.util.PsiTreeUtil import org.jetbrains.kotlin.builtins.KotlinBuiltIns +import org.jetbrains.kotlin.builtins.PlatformToKotlinClassMap import org.jetbrains.kotlin.builtins.isExtensionFunctionType import org.jetbrains.kotlin.builtins.isFunctionType import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.ClassKind -import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.types.checker.KotlinTypeChecker diff --git a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingComponents.java b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingComponents.java index 58ffb096836..05259104d75 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingComponents.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingComponents.java @@ -7,13 +7,13 @@ package org.jetbrains.kotlin.types.expressions; import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.builtins.KotlinBuiltIns; +import org.jetbrains.kotlin.builtins.PlatformToKotlinClassMap; import org.jetbrains.kotlin.config.LanguageVersionSettings; import org.jetbrains.kotlin.context.GlobalContext; import org.jetbrains.kotlin.contracts.EffectSystem; import org.jetbrains.kotlin.contracts.parsing.ContractParsingServices; import org.jetbrains.kotlin.descriptors.ModuleDescriptor; import org.jetbrains.kotlin.incremental.components.LookupTracker; -import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap; import org.jetbrains.kotlin.resolve.*; import org.jetbrains.kotlin.resolve.calls.CallExpressionResolver; import org.jetbrains.kotlin.resolve.calls.CallResolver; diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForSourceDeclaration.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForSourceDeclaration.kt index 602cc67bf09..08936a32e94 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForSourceDeclaration.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForSourceDeclaration.kt @@ -53,12 +53,12 @@ import org.jetbrains.kotlin.asJava.elements.KtLightModifierList import org.jetbrains.kotlin.asJava.elements.KtLightPsiReferenceList import org.jetbrains.kotlin.asJava.hasInterfaceDefaultImpls import org.jetbrains.kotlin.builtins.KotlinBuiltIns +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.lexer.KtTokens.* import org.jetbrains.kotlin.load.java.structure.LightClassOriginKind import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqNameUnsafe -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.debugText.getDebugText import org.jetbrains.kotlin.psi.psiUtil.getElementTextWithContext diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/lightClassUtils.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/lightClassUtils.kt index 62d8235ed55..a5273783378 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/lightClassUtils.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/lightClassUtils.kt @@ -21,12 +21,12 @@ import com.intellij.psi.search.GlobalSearchScope import org.jetbrains.kotlin.asJava.classes.KtLightClass import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade import org.jetbrains.kotlin.asJava.elements.* +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.load.java.JvmAbi import org.jetbrains.kotlin.load.java.propertyNameByGetMethodName import org.jetbrains.kotlin.load.java.propertyNameBySetMethodName import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractDiagnosticsTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractDiagnosticsTest.kt index 02b21e0fe16..125bb0085cb 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractDiagnosticsTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractDiagnosticsTest.kt @@ -12,6 +12,7 @@ import com.intellij.psi.search.GlobalSearchScope import junit.framework.TestCase import org.jetbrains.kotlin.analyzer.AnalysisResult import org.jetbrains.kotlin.analyzer.common.CommonAnalyzerFacade +import org.jetbrains.kotlin.builtins.jvm.JvmBuiltIns import org.jetbrains.kotlin.cli.jvm.compiler.NoScopeRecordCliBindingTrace import org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM import org.jetbrains.kotlin.config.* @@ -38,7 +39,6 @@ import org.jetbrains.kotlin.load.java.lazy.SingleModuleClassResolver import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.SpecialNames -import org.jetbrains.kotlin.platform.JvmBuiltIns import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.resolve.* import org.jetbrains.kotlin.resolve.calls.model.MutableResolvedCall @@ -55,7 +55,6 @@ import org.jetbrains.kotlin.test.util.DescriptorValidator import org.jetbrains.kotlin.test.util.RecursiveDescriptorComparator import org.jetbrains.kotlin.test.util.RecursiveDescriptorComparator.RECURSIVE import org.jetbrains.kotlin.test.util.RecursiveDescriptorComparator.RECURSIVE_ALL -import org.jetbrains.kotlin.utils.addToStdlib.cast import org.jetbrains.kotlin.utils.keysToMap import org.junit.Assert import java.io.File diff --git a/compiler/tests-java8/tests/org/jetbrains/kotlin/serialization/builtins/AdditionalBuiltInsMembersSignatureListsTest.kt b/compiler/tests-java8/tests/org/jetbrains/kotlin/serialization/builtins/AdditionalBuiltInsMembersSignatureListsTest.kt index d62ab6b3d1f..718ff922fcf 100644 --- a/compiler/tests-java8/tests/org/jetbrains/kotlin/serialization/builtins/AdditionalBuiltInsMembersSignatureListsTest.kt +++ b/compiler/tests-java8/tests/org/jetbrains/kotlin/serialization/builtins/AdditionalBuiltInsMembersSignatureListsTest.kt @@ -16,11 +16,11 @@ package org.jetbrains.kotlin.serialization.builtins +import org.jetbrains.kotlin.builtins.jvm.JvmBuiltInsSettings import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl import org.jetbrains.kotlin.descriptors.resolveClassByFqName import org.jetbrains.kotlin.incremental.components.NoLookupLocation -import org.jetbrains.kotlin.load.kotlin.JvmBuiltInsSettings import org.jetbrains.kotlin.load.kotlin.computeJvmDescriptor import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.descriptorUtil.isEffectivelyPublicApi diff --git a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/MultiModuleJavaAnalysisCustomTest.kt b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/MultiModuleJavaAnalysisCustomTest.kt index a06f4edd615..4b21f0f7830 100644 --- a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/MultiModuleJavaAnalysisCustomTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/MultiModuleJavaAnalysisCustomTest.kt @@ -21,6 +21,7 @@ import com.intellij.psi.search.DelegatingGlobalSearchScope import com.intellij.psi.search.GlobalSearchScope import org.jetbrains.kotlin.analyzer.* import org.jetbrains.kotlin.builtins.KotlinBuiltIns +import org.jetbrains.kotlin.builtins.jvm.JvmBuiltIns import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment import org.jetbrains.kotlin.config.LanguageFeature @@ -31,7 +32,6 @@ import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.incremental.components.NoLookupLocation import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.platform.JvmBuiltIns import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.resolve.constants.EnumValue import org.jetbrains.kotlin.resolve.descriptorUtil.annotationClass diff --git a/compiler/tests/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerTest.kt b/compiler/tests/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerTest.kt index 6afe4049332..1fef141e35a 100644 --- a/compiler/tests/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerTest.kt @@ -16,11 +16,11 @@ package org.jetbrains.kotlin.serialization.builtins -import org.jetbrains.kotlin.builtins.BuiltInsLoaderImpl import org.jetbrains.kotlin.builtins.DefaultBuiltIns import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime import org.jetbrains.kotlin.descriptors.deserialization.PlatformDependentDeclarationFilter import org.jetbrains.kotlin.jvm.compiler.LoadDescriptorUtil.TEST_PACKAGE_FQNAME +import org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInsLoaderImpl import org.jetbrains.kotlin.storage.LockBasedStorageManager import org.jetbrains.kotlin.test.KotlinTestUtils import org.jetbrains.kotlin.test.TestCaseWithTmpdir diff --git a/compiler/tests/org/jetbrains/kotlin/serialization/builtins/LoadBuiltinsTest.java b/compiler/tests/org/jetbrains/kotlin/serialization/builtins/LoadBuiltinsTest.java index 4cddee696c1..c38e82c2c6a 100644 --- a/compiler/tests/org/jetbrains/kotlin/serialization/builtins/LoadBuiltinsTest.java +++ b/compiler/tests/org/jetbrains/kotlin/serialization/builtins/LoadBuiltinsTest.java @@ -20,7 +20,6 @@ import com.intellij.openapi.util.io.FileUtil; import com.intellij.util.containers.ContainerUtil; import kotlin.collections.CollectionsKt; import org.jetbrains.annotations.NotNull; -import org.jetbrains.kotlin.builtins.BuiltInsLoaderImpl; import org.jetbrains.kotlin.builtins.DefaultBuiltIns; import org.jetbrains.kotlin.builtins.KotlinBuiltIns; import org.jetbrains.kotlin.builtins.functions.BuiltInFictitiousFunctionClassFactory; @@ -36,6 +35,7 @@ import org.jetbrains.kotlin.name.FqName; import org.jetbrains.kotlin.psi.KtFile; import org.jetbrains.kotlin.resolve.lazy.LazyResolveTestUtilsKt; import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyPackageDescriptor; +import org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInsLoaderImpl; import org.jetbrains.kotlin.storage.LockBasedStorageManager; import org.jetbrains.kotlin.test.ConfigurationKind; import org.jetbrains.kotlin.test.KotlinTestUtils; diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/CloneableClassScope.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/CloneableClassScope.kt deleted file mode 100644 index dd950d46a2a..00000000000 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/CloneableClassScope.kt +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2010-2016 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.builtins - -import org.jetbrains.kotlin.descriptors.* -import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor.Kind.DECLARATION -import org.jetbrains.kotlin.descriptors.annotations.Annotations -import org.jetbrains.kotlin.descriptors.impl.SimpleFunctionDescriptorImpl -import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns -import org.jetbrains.kotlin.resolve.scopes.GivenFunctionsMemberScope -import org.jetbrains.kotlin.storage.StorageManager - -class CloneableClassScope( - storageManager: StorageManager, - containingClass: ClassDescriptor -) : GivenFunctionsMemberScope(storageManager, containingClass) { - override fun computeDeclaredFunctions(): List = listOf( - SimpleFunctionDescriptorImpl.create(containingClass, Annotations.EMPTY, CLONE_NAME, DECLARATION, SourceElement.NO_SOURCE).apply { - initialize( - null, containingClass.thisAsReceiverParameter, emptyList(), emptyList(), containingClass.builtIns.anyType, - Modality.OPEN, Visibilities.PROTECTED - ) - } - ) - - companion object { - internal val CLONE_NAME = Name.identifier("clone") - } -} diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/JvmBuiltInClassDescriptorFactory.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/JvmBuiltInClassDescriptorFactory.kt deleted file mode 100644 index e3eb7461ca3..00000000000 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/JvmBuiltInClassDescriptorFactory.kt +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright 2010-2016 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.builtins - -import org.jetbrains.kotlin.descriptors.* -import org.jetbrains.kotlin.descriptors.deserialization.ClassDescriptorFactory -import org.jetbrains.kotlin.descriptors.impl.ClassDescriptorImpl -import org.jetbrains.kotlin.name.ClassId -import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.storage.StorageManager -import org.jetbrains.kotlin.storage.getValue - -class JvmBuiltInClassDescriptorFactory( - storageManager: StorageManager, - private val moduleDescriptor: ModuleDescriptor, - private val computeContainingDeclaration: (ModuleDescriptor) -> DeclarationDescriptor = { module -> - module.getPackage(KOTLIN_FQ_NAME).fragments.filterIsInstance().first() - } -) : ClassDescriptorFactory { - private val cloneable by storageManager.createLazyValue { - ClassDescriptorImpl( - computeContainingDeclaration(moduleDescriptor), - CLONEABLE_NAME, Modality.ABSTRACT, ClassKind.INTERFACE, listOf(moduleDescriptor.builtIns.anyType), - SourceElement.NO_SOURCE, /* isExternal = */ false, storageManager - ).apply { - initialize(CloneableClassScope(storageManager, this), emptySet(), null) - } - } - - override fun shouldCreateClass(packageFqName: FqName, name: Name): Boolean = - name == CLONEABLE_NAME && packageFqName == KOTLIN_FQ_NAME - - override fun createClass(classId: ClassId): ClassDescriptor? = - when (classId) { - CLONEABLE_CLASS_ID -> cloneable - else -> null - } - - override fun getAllContributedClassesIfPossible(packageFqName: FqName): Collection = - when (packageFqName) { - KOTLIN_FQ_NAME -> setOf(cloneable) - else -> emptySet() - } - - companion object { - private val KOTLIN_FQ_NAME = KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME - private val CLONEABLE_NAME = KotlinBuiltIns.FQ_NAMES.cloneable.shortName() - val CLONEABLE_CLASS_ID = ClassId.topLevel(KotlinBuiltIns.FQ_NAMES.cloneable.toSafe()) - } -} diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/JvmBuiltInsPackageFragmentProvider.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/JvmBuiltInsPackageFragmentProvider.kt deleted file mode 100644 index fb53ad13e2c..00000000000 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/JvmBuiltInsPackageFragmentProvider.kt +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright 2010-2016 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.builtins - -import org.jetbrains.kotlin.builtins.functions.BuiltInFictitiousFunctionClassFactory -import org.jetbrains.kotlin.descriptors.ModuleDescriptor -import org.jetbrains.kotlin.descriptors.NotFoundClasses -import org.jetbrains.kotlin.descriptors.deserialization.AdditionalClassPartsProvider -import org.jetbrains.kotlin.descriptors.deserialization.PlatformDependentDeclarationFilter -import org.jetbrains.kotlin.incremental.components.LookupTracker -import org.jetbrains.kotlin.load.kotlin.KotlinClassFinder -import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.serialization.deserialization.* -import org.jetbrains.kotlin.storage.StorageManager - -class JvmBuiltInsPackageFragmentProvider( - storageManager: StorageManager, - finder: KotlinClassFinder, - moduleDescriptor: ModuleDescriptor, - notFoundClasses: NotFoundClasses, - additionalClassPartsProvider: AdditionalClassPartsProvider, - platformDependentDeclarationFilter: PlatformDependentDeclarationFilter -) : AbstractDeserializedPackageFragmentProvider(storageManager, finder, moduleDescriptor) { - init { - components = DeserializationComponents( - storageManager, - moduleDescriptor, - DeserializationConfiguration.Default, // TODO - DeserializedClassDataFinder(this), - AnnotationAndConstantLoaderImpl(moduleDescriptor, notFoundClasses, BuiltInSerializerProtocol), - this, - LocalClassifierTypeSettings.Default, - ErrorReporter.DO_NOTHING, - LookupTracker.DO_NOTHING, - FlexibleTypeDeserializer.ThrowException, - listOf( - BuiltInFictitiousFunctionClassFactory(storageManager, moduleDescriptor), - JvmBuiltInClassDescriptorFactory(storageManager, moduleDescriptor) - ), - notFoundClasses, - ContractDeserializer.DEFAULT, - additionalClassPartsProvider, platformDependentDeclarationFilter, - BuiltInSerializerProtocol.extensionRegistry - ) - } - - override fun findPackage(fqName: FqName): DeserializedPackageFragment? = - finder.findBuiltInsData(fqName)?.let { inputStream -> - BuiltInsPackageFragmentImpl(fqName, storageManager, moduleDescriptor, inputStream) - } -} diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/CloneableClassScope.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/CloneableClassScope.kt new file mode 100644 index 00000000000..e5f07204bb0 --- /dev/null +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/CloneableClassScope.kt @@ -0,0 +1,33 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.builtins.jvm + +import org.jetbrains.kotlin.descriptors.* +import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor.Kind.DECLARATION +import org.jetbrains.kotlin.descriptors.annotations.Annotations +import org.jetbrains.kotlin.descriptors.impl.SimpleFunctionDescriptorImpl +import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns +import org.jetbrains.kotlin.resolve.scopes.GivenFunctionsMemberScope +import org.jetbrains.kotlin.storage.StorageManager + +class CloneableClassScope( + storageManager: StorageManager, + containingClass: ClassDescriptor +) : GivenFunctionsMemberScope(storageManager, containingClass) { + override fun computeDeclaredFunctions(): List = listOf( + SimpleFunctionDescriptorImpl.create(containingClass, Annotations.EMPTY, CLONE_NAME, DECLARATION, SourceElement.NO_SOURCE).apply { + initialize( + null, containingClass.thisAsReceiverParameter, emptyList(), emptyList(), containingClass.builtIns.anyType, + Modality.OPEN, Visibilities.PROTECTED + ) + } + ) + + companion object { + internal val CLONE_NAME = Name.identifier("clone") + } +} diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/platform/JavaToKotlinClassMap.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JavaToKotlinClassMap.kt similarity index 84% rename from core/descriptors.jvm/src/org/jetbrains/kotlin/platform/JavaToKotlinClassMap.kt rename to core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JavaToKotlinClassMap.kt index 98c1ac0d188..b11a26f90d3 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/platform/JavaToKotlinClassMap.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JavaToKotlinClassMap.kt @@ -3,11 +3,12 @@ * that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.platform +package org.jetbrains.kotlin.builtins.jvm import org.jetbrains.kotlin.builtins.CompanionObjectMapping import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns.FQ_NAMES +import org.jetbrains.kotlin.builtins.PlatformToKotlinClassMap import org.jetbrains.kotlin.builtins.functions.FunctionClassDescriptor import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.name.* @@ -29,9 +30,9 @@ object JavaToKotlinClassMap : PlatformToKotlinClassMap { // describes mapping for a java class that has separate readOnly and mutable equivalents in Kotlin data class PlatformMutabilityMapping( - val javaClass: ClassId, - val kotlinReadOnly: ClassId, - val kotlinMutable: ClassId + val javaClass: ClassId, + val kotlinReadOnly: ClassId, + val kotlinMutable: ClassId ) private inline fun mutabilityMapping(kotlinReadOnly: ClassId, kotlinMutable: FqName): PlatformMutabilityMapping { @@ -40,16 +41,16 @@ object JavaToKotlinClassMap : PlatformToKotlinClassMap { } val mutabilityMappings = listOf( - mutabilityMapping>(ClassId.topLevel(FQ_NAMES.iterable), FQ_NAMES.mutableIterable), - mutabilityMapping>(ClassId.topLevel(FQ_NAMES.iterator), FQ_NAMES.mutableIterator), - mutabilityMapping>(ClassId.topLevel(FQ_NAMES.collection), FQ_NAMES.mutableCollection), - mutabilityMapping>(ClassId.topLevel(FQ_NAMES.list), FQ_NAMES.mutableList), - mutabilityMapping>(ClassId.topLevel(FQ_NAMES.set), FQ_NAMES.mutableSet), - mutabilityMapping>(ClassId.topLevel(FQ_NAMES.listIterator), FQ_NAMES.mutableListIterator), - mutabilityMapping>(ClassId.topLevel(FQ_NAMES.map), FQ_NAMES.mutableMap), - mutabilityMapping>( - ClassId.topLevel(FQ_NAMES.map).createNestedClassId(FQ_NAMES.mapEntry.shortName()), FQ_NAMES.mutableMapEntry - ) + mutabilityMapping>(ClassId.topLevel(FQ_NAMES.iterable), FQ_NAMES.mutableIterable), + mutabilityMapping>(ClassId.topLevel(FQ_NAMES.iterator), FQ_NAMES.mutableIterator), + mutabilityMapping>(ClassId.topLevel(FQ_NAMES.collection), FQ_NAMES.mutableCollection), + mutabilityMapping>(ClassId.topLevel(FQ_NAMES.list), FQ_NAMES.mutableList), + mutabilityMapping>(ClassId.topLevel(FQ_NAMES.set), FQ_NAMES.mutableSet), + mutabilityMapping>(ClassId.topLevel(FQ_NAMES.listIterator), FQ_NAMES.mutableListIterator), + mutabilityMapping>(ClassId.topLevel(FQ_NAMES.map), FQ_NAMES.mutableMap), + mutabilityMapping>( + ClassId.topLevel(FQ_NAMES.map).createNestedClassId(FQ_NAMES.mapEntry.shortName()), FQ_NAMES.mutableMapEntry + ) ) init { @@ -68,13 +69,17 @@ object JavaToKotlinClassMap : PlatformToKotlinClassMap { } for (jvmType in JvmPrimitiveType.values()) { - add(ClassId.topLevel(jvmType.wrapperFqName), - ClassId.topLevel(KotlinBuiltIns.getPrimitiveFqName(jvmType.primitiveType))) + add( + ClassId.topLevel(jvmType.wrapperFqName), + ClassId.topLevel(KotlinBuiltIns.getPrimitiveFqName(jvmType.primitiveType)) + ) } for (classId in CompanionObjectMapping.allClassesWithIntrinsicCompanions()) { - add(ClassId.topLevel(FqName("kotlin.jvm.internal." + classId.shortClassName.asString() + "CompanionObject")), - classId.createNestedClassId(SpecialNames.DEFAULT_NAME_FOR_COMPANION_OBJECT)) + add( + ClassId.topLevel(FqName("kotlin.jvm.internal." + classId.shortClassName.asString() + "CompanionObject")), + classId.createNestedClassId(SpecialNames.DEFAULT_NAME_FOR_COMPANION_OBJECT) + ) } // TODO: support also functions with >= 23 parameters @@ -208,11 +213,12 @@ object JavaToKotlinClassMap : PlatformToKotlinClassMap { } private fun convertToOppositeMutability( - descriptor: ClassDescriptor, - map: Map, - mutabilityKindName: String + descriptor: ClassDescriptor, + map: Map, + mutabilityKindName: String ): ClassDescriptor { - val oppositeClassFqName = map[DescriptorUtils.getFqName(descriptor)] ?: throw IllegalArgumentException("Given class $descriptor is not a $mutabilityKindName collection") + val oppositeClassFqName = map[DescriptorUtils.getFqName(descriptor)] + ?: throw IllegalArgumentException("Given class $descriptor is not a $mutabilityKindName collection") return descriptor.builtIns.getBuiltInClassByFqName(oppositeClassFqName) } } diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JvmBuiltInClassDescriptorFactory.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JvmBuiltInClassDescriptorFactory.kt new file mode 100644 index 00000000000..85ba465d478 --- /dev/null +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JvmBuiltInClassDescriptorFactory.kt @@ -0,0 +1,56 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.builtins.jvm + +import org.jetbrains.kotlin.builtins.BuiltInsPackageFragment +import org.jetbrains.kotlin.builtins.KotlinBuiltIns +import org.jetbrains.kotlin.descriptors.* +import org.jetbrains.kotlin.descriptors.deserialization.ClassDescriptorFactory +import org.jetbrains.kotlin.descriptors.impl.ClassDescriptorImpl +import org.jetbrains.kotlin.name.ClassId +import org.jetbrains.kotlin.name.FqName +import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.storage.StorageManager +import org.jetbrains.kotlin.storage.getValue + +class JvmBuiltInClassDescriptorFactory( + storageManager: StorageManager, + private val moduleDescriptor: ModuleDescriptor, + private val computeContainingDeclaration: (ModuleDescriptor) -> DeclarationDescriptor = { module -> + module.getPackage(KOTLIN_FQ_NAME).fragments.filterIsInstance().first() + } +) : ClassDescriptorFactory { + private val cloneable by storageManager.createLazyValue { + ClassDescriptorImpl( + computeContainingDeclaration(moduleDescriptor), + CLONEABLE_NAME, Modality.ABSTRACT, ClassKind.INTERFACE, listOf(moduleDescriptor.builtIns.anyType), + SourceElement.NO_SOURCE, false, storageManager + ).apply { + initialize(CloneableClassScope(storageManager, this), emptySet(), null) + } + } + + override fun shouldCreateClass(packageFqName: FqName, name: Name): Boolean = + name == CLONEABLE_NAME && packageFqName == KOTLIN_FQ_NAME + + override fun createClass(classId: ClassId): ClassDescriptor? = + when (classId) { + CLONEABLE_CLASS_ID -> cloneable + else -> null + } + + override fun getAllContributedClassesIfPossible(packageFqName: FqName): Collection = + when (packageFqName) { + KOTLIN_FQ_NAME -> setOf(cloneable) + else -> emptySet() + } + + companion object { + private val KOTLIN_FQ_NAME = KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME + private val CLONEABLE_NAME = KotlinBuiltIns.FQ_NAMES.cloneable.shortName() + val CLONEABLE_CLASS_ID = ClassId.topLevel(KotlinBuiltIns.FQ_NAMES.cloneable.toSafe()) + } +} diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/platform/JvmBuiltIns.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JvmBuiltIns.kt similarity index 53% rename from core/descriptors.jvm/src/org/jetbrains/kotlin/platform/JvmBuiltIns.kt rename to core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JvmBuiltIns.kt index 1352e8bc2e5..8305e548013 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/platform/JvmBuiltIns.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JvmBuiltIns.kt @@ -1,34 +1,21 @@ /* - * 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. + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.platform +package org.jetbrains.kotlin.builtins.jvm -import org.jetbrains.kotlin.builtins.JvmBuiltInClassDescriptorFactory import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.deserialization.AdditionalClassPartsProvider import org.jetbrains.kotlin.descriptors.deserialization.PlatformDependentDeclarationFilter -import org.jetbrains.kotlin.load.kotlin.JvmBuiltInsSettings import org.jetbrains.kotlin.storage.StorageManager import org.jetbrains.kotlin.storage.getValue import org.jetbrains.kotlin.utils.sure class JvmBuiltIns @JvmOverloads constructor( - storageManager: StorageManager, - loadBuiltInsFromCurrentClassLoader: Boolean = true + storageManager: StorageManager, + loadBuiltInsFromCurrentClassLoader: Boolean = true ) : KotlinBuiltIns(storageManager) { // Module containing JDK classes or having them among dependencies private var ownerModuleDescriptor: ModuleDescriptor? = null @@ -42,12 +29,12 @@ class JvmBuiltIns @JvmOverloads constructor( val settings: JvmBuiltInsSettings by storageManager.createLazyValue { JvmBuiltInsSettings( - builtInsModule, storageManager, - { ownerModuleDescriptor.sure { "JvmBuiltins has not been initialized properly" } }, - { - ownerModuleDescriptor.sure { "JvmBuiltins has not been initialized properly" } - isAdditionalBuiltInsFeatureSupported - } + builtInsModule, storageManager, + { ownerModuleDescriptor.sure { "JvmBuiltins has not been initialized properly" } }, + { + ownerModuleDescriptor.sure { "JvmBuiltins has not been initialized properly" } + isAdditionalBuiltInsFeatureSupported + } ) } @@ -62,5 +49,5 @@ class JvmBuiltIns @JvmOverloads constructor( override fun getAdditionalClassPartsProvider(): AdditionalClassPartsProvider = settings override fun getClassDescriptorFactories() = - super.getClassDescriptorFactories() + JvmBuiltInClassDescriptorFactory(storageManager, builtInsModule) + super.getClassDescriptorFactories() + JvmBuiltInClassDescriptorFactory(storageManager, builtInsModule) } diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JvmBuiltInsPackageFragmentProvider.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JvmBuiltInsPackageFragmentProvider.kt new file mode 100644 index 00000000000..c05e47173e8 --- /dev/null +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JvmBuiltInsPackageFragmentProvider.kt @@ -0,0 +1,56 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.builtins.jvm + +import org.jetbrains.kotlin.builtins.functions.BuiltInFictitiousFunctionClassFactory +import org.jetbrains.kotlin.descriptors.ModuleDescriptor +import org.jetbrains.kotlin.descriptors.NotFoundClasses +import org.jetbrains.kotlin.descriptors.deserialization.AdditionalClassPartsProvider +import org.jetbrains.kotlin.descriptors.deserialization.PlatformDependentDeclarationFilter +import org.jetbrains.kotlin.incremental.components.LookupTracker +import org.jetbrains.kotlin.load.kotlin.KotlinClassFinder +import org.jetbrains.kotlin.name.FqName +import org.jetbrains.kotlin.serialization.deserialization.* +import org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInSerializerProtocol +import org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInsPackageFragmentImpl +import org.jetbrains.kotlin.storage.StorageManager + +class JvmBuiltInsPackageFragmentProvider( + storageManager: StorageManager, + finder: KotlinClassFinder, + moduleDescriptor: ModuleDescriptor, + notFoundClasses: NotFoundClasses, + additionalClassPartsProvider: AdditionalClassPartsProvider, + platformDependentDeclarationFilter: PlatformDependentDeclarationFilter +) : AbstractDeserializedPackageFragmentProvider(storageManager, finder, moduleDescriptor) { + init { + components = DeserializationComponents( + storageManager, + moduleDescriptor, + DeserializationConfiguration.Default, // TODO + DeserializedClassDataFinder(this), + AnnotationAndConstantLoaderImpl(moduleDescriptor, notFoundClasses, BuiltInSerializerProtocol), + this, + LocalClassifierTypeSettings.Default, + ErrorReporter.DO_NOTHING, + LookupTracker.DO_NOTHING, + FlexibleTypeDeserializer.ThrowException, + listOf( + BuiltInFictitiousFunctionClassFactory(storageManager, moduleDescriptor), + JvmBuiltInClassDescriptorFactory(storageManager, moduleDescriptor) + ), + notFoundClasses, + ContractDeserializer.DEFAULT, + additionalClassPartsProvider, platformDependentDeclarationFilter, + BuiltInSerializerProtocol.extensionRegistry + ) + } + + override fun findPackage(fqName: FqName): DeserializedPackageFragment? = + finder.findBuiltInsData(fqName)?.let { inputStream -> + BuiltInsPackageFragmentImpl(fqName, storageManager, moduleDescriptor, inputStream) + } +} diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/JvmBuiltInsSettings.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JvmBuiltInsSettings.kt similarity index 51% rename from core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/JvmBuiltInsSettings.kt rename to core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JvmBuiltInsSettings.kt index 1e4c1d20143..7fb1f6537e0 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/JvmBuiltInsSettings.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JvmBuiltInsSettings.kt @@ -1,24 +1,11 @@ /* - * Copyright 2010-2016 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. + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.load.kotlin +package org.jetbrains.kotlin.builtins.jvm import org.jetbrains.kotlin.builtins.BuiltInsInitializer -import org.jetbrains.kotlin.builtins.CloneableClassScope -import org.jetbrains.kotlin.builtins.JvmBuiltInClassDescriptorFactory import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.annotations.AnnotationsImpl @@ -31,11 +18,12 @@ import org.jetbrains.kotlin.descriptors.impl.PackageFragmentDescriptorImpl import org.jetbrains.kotlin.incremental.components.NoLookupLocation import org.jetbrains.kotlin.load.java.components.JavaResolverCache import org.jetbrains.kotlin.load.java.lazy.descriptors.LazyJavaClassDescriptor +import org.jetbrains.kotlin.load.kotlin.SignatureBuildingComponents +import org.jetbrains.kotlin.load.kotlin.computeJvmDescriptor +import org.jetbrains.kotlin.load.kotlin.signatures import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqNameUnsafe import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap -import org.jetbrains.kotlin.platform.createMappedTypeParametersSubstitution import org.jetbrains.kotlin.resolve.OverridingUtil import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameUnsafe @@ -54,10 +42,10 @@ import java.io.Serializable import java.util.* open class JvmBuiltInsSettings( - private val moduleDescriptor: ModuleDescriptor, - storageManager: StorageManager, - deferredOwnerModuleDescriptor: () -> ModuleDescriptor, - isAdditionalBuiltInsFeatureSupported: () -> Boolean + private val moduleDescriptor: ModuleDescriptor, + storageManager: StorageManager, + deferredOwnerModuleDescriptor: () -> ModuleDescriptor, + isAdditionalBuiltInsFeatureSupported: () -> Boolean ) : AdditionalClassPartsProvider, PlatformDependentDeclarationFilter { private val j2kClassMap = JavaToKotlinClassMap @@ -67,8 +55,8 @@ open class JvmBuiltInsSettings( private val mockSerializableType = storageManager.createMockJavaIoSerializableType() private val cloneableType by storageManager.createLazyValue { ownerModuleDescriptor.findNonGenericClassAcrossDependencies( - JvmBuiltInClassDescriptorFactory.CLONEABLE_CLASS_ID, - NotFoundClasses(storageManager, ownerModuleDescriptor) + JvmBuiltInClassDescriptorFactory.CLONEABLE_CLASS_ID, + NotFoundClasses(storageManager, ownerModuleDescriptor) ).defaultType } @@ -77,7 +65,7 @@ open class JvmBuiltInsSettings( // Most this properties are lazy because they depends on KotlinBuiltIns initialization that depends on JvmBuiltInsSettings object private val notConsideredDeprecation by storageManager.createLazyValue { moduleDescriptor.builtIns.createDeprecatedAnnotation( - "This member is not fully supported by Kotlin compiler, so it may be absent or have different signature in next major version" + "This member is not fully supported by Kotlin compiler, so it may be absent or have different signature in next major version" ).let { AnnotationsImpl(listOf(it)) } } @@ -90,8 +78,8 @@ open class JvmBuiltInsSettings( val superTypes = listOf(LazyWrappedType(this) { moduleDescriptor.builtIns.anyType }) val mockSerializableClass = ClassDescriptorImpl( - mockJavaIoPackageFragment, Name.identifier("Serializable"), Modality.ABSTRACT, ClassKind.INTERFACE, superTypes, - SourceElement.NO_SOURCE, /* isExternal = */ false, this + mockJavaIoPackageFragment, Name.identifier("Serializable"), Modality.ABSTRACT, ClassKind.INTERFACE, superTypes, + SourceElement.NO_SOURCE, false, this ) mockSerializableClass.initialize(MemberScope.Empty, emptySet(), null) @@ -109,29 +97,32 @@ open class JvmBuiltInsSettings( override fun getFunctions(name: Name, classDescriptor: ClassDescriptor): Collection { if (name == CloneableClassScope.CLONE_NAME && classDescriptor is DeserializedClassDescriptor && - KotlinBuiltIns.isArrayOrPrimitiveArray(classDescriptor)) { + KotlinBuiltIns.isArrayOrPrimitiveArray(classDescriptor) + ) { // Do not create clone for arrays deserialized from metadata in the old (1.0) runtime, because clone is declared there anyway if (classDescriptor.classProto.functionList.any { functionProto -> - classDescriptor.c.nameResolver.getName(functionProto.name) == CloneableClassScope.CLONE_NAME - }) { + classDescriptor.c.nameResolver.getName(functionProto.name) == CloneableClassScope.CLONE_NAME + }) { return emptyList() } - return listOf(createCloneForArray( + return listOf( + createCloneForArray( classDescriptor, cloneableType.memberScope.getContributedFunctions(name, NoLookupLocation.FROM_BUILTINS).single() - )) + ) + ) } if (!isAdditionalBuiltInsFeatureSupported) return emptyList() return getAdditionalFunctions(classDescriptor) { it.getContributedFunctions(name, NoLookupLocation.FROM_BUILTINS) - }.mapNotNull { - additionalMember -> + }.mapNotNull { additionalMember -> val substitutedWithKotlinTypeParameters = - additionalMember.substitute( - createMappedTypeParametersSubstitution( - additionalMember.containingDeclaration as ClassDescriptor, classDescriptor).buildSubstitutor() - ) as SimpleFunctionDescriptor + additionalMember.substitute( + createMappedTypeParametersSubstitution( + additionalMember.containingDeclaration as ClassDescriptor, classDescriptor + ).buildSubstitutor() + ) as SimpleFunctionDescriptor substitutedWithKotlinTypeParameters.newCopyBuilder().apply { setOwner(classDescriptor) @@ -167,8 +158,8 @@ open class JvmBuiltInsSettings( } private fun getAdditionalFunctions( - classDescriptor: ClassDescriptor, - functionsByScope: (MemberScope) -> Collection + classDescriptor: ClassDescriptor, + functionsByScope: (MemberScope) -> Collection ): Collection { val javaAnalogueDescriptor = classDescriptor.getJavaAnalogue() ?: return emptyList() @@ -180,29 +171,30 @@ open class JvmBuiltInsSettings( val fakeJavaClassDescriptor = javaAnalogueClassesWithCustomSupertypeCache.computeIfAbsent(javaAnalogueDescriptor.fqNameSafe) { javaAnalogueDescriptor.copy( - javaResolverCache = JavaResolverCache.EMPTY, - additionalSupertypeClassDescriptor = kotlinMutableClassIfContainer) + javaResolverCache = JavaResolverCache.EMPTY, + additionalSupertypeClassDescriptor = kotlinMutableClassIfContainer + ) } val scope = fakeJavaClassDescriptor.unsubstitutedMemberScope return functionsByScope(scope) - .filter { analogueMember -> - if (analogueMember.kind != CallableMemberDescriptor.Kind.DECLARATION) return@filter false - if (!analogueMember.visibility.isPublicAPI) return@filter false - if (KotlinBuiltIns.isDeprecated(analogueMember)) return@filter false + .filter { analogueMember -> + if (analogueMember.kind != CallableMemberDescriptor.Kind.DECLARATION) return@filter false + if (!analogueMember.visibility.isPublicAPI) return@filter false + if (KotlinBuiltIns.isDeprecated(analogueMember)) return@filter false - if (analogueMember.overriddenDescriptors.any { + if (analogueMember.overriddenDescriptors.any { it.containingDeclaration.fqNameSafe in kotlinVersions }) return@filter false - !analogueMember.isMutabilityViolation(isMutable) - } + !analogueMember.isMutabilityViolation(isMutable) + } } private fun createCloneForArray( - arrayClassDescriptor: DeserializedClassDescriptor, - cloneFromCloneable: SimpleFunctionDescriptor + arrayClassDescriptor: DeserializedClassDescriptor, + cloneFromCloneable: SimpleFunctionDescriptor ): SimpleFunctionDescriptor = cloneFromCloneable.newCopyBuilder().apply { setOwner(arrayClassDescriptor) setVisibility(Visibilities.PUBLIC) @@ -217,12 +209,11 @@ open class JvmBuiltInsSettings( if ((SignatureBuildingComponents.signature(owner, jvmDescriptor) in MUTABLE_METHOD_SIGNATURES) xor isMutable) return true return DFS.ifAny( - listOf(this), - { it.original.overriddenDescriptors } - ) { - overridden -> + listOf(this), + { it.original.overriddenDescriptors } + ) { overridden -> overridden.kind == CallableMemberDescriptor.Kind.DECLARATION && - j2kClassMap.isMutable(overridden.containingDeclaration as ClassDescriptor) + j2kClassMap.isMutable(overridden.containingDeclaration as ClassDescriptor) } } @@ -231,29 +222,29 @@ open class JvmBuiltInsSettings( val jvmDescriptor = computeJvmDescriptor() var result: JDKMemberStatus? = null return DFS.dfs( - listOf(owner), - { - // Search through mapped supertypes to determine that Set.toArray is in blacklist, while we have only - // Collection.toArray there explicitly - // Note, that we can't find j.u.Collection.toArray within overriddenDescriptors of j.u.Set.toArray - it.typeConstructor.supertypes.mapNotNull { - (it.constructor.declarationDescriptor?.original as? ClassDescriptor)?.getJavaAnalogue() - } - }, - object : DFS.AbstractNodeHandler() { - override fun beforeChildren(javaClassDescriptor: ClassDescriptor): Boolean { - val signature = SignatureBuildingComponents.signature(javaClassDescriptor, jvmDescriptor) - when (signature) { - in BLACK_LIST_METHOD_SIGNATURES -> { result = JDKMemberStatus.BLACK_LIST } - in WHITE_LIST_METHOD_SIGNATURES -> { result = JDKMemberStatus.WHITE_LIST } - in DROP_LIST_METHOD_SIGNATURES -> { result = JDKMemberStatus.DROP } - } - - return result == null + listOf(owner), + { + // Search through mapped supertypes to determine that Set.toArray is in blacklist, while we have only + // Collection.toArray there explicitly + // Note, that we can't find j.u.Collection.toArray within overriddenDescriptors of j.u.Set.toArray + it.typeConstructor.supertypes.mapNotNull { + (it.constructor.declarationDescriptor?.original as? ClassDescriptor)?.getJavaAnalogue() + } + }, + object : DFS.AbstractNodeHandler() { + override fun beforeChildren(javaClassDescriptor: ClassDescriptor): Boolean { + val signature = SignatureBuildingComponents.signature(javaClassDescriptor, jvmDescriptor) + when (signature) { + in BLACK_LIST_METHOD_SIGNATURES -> result = JDKMemberStatus.BLACK_LIST + in WHITE_LIST_METHOD_SIGNATURES -> result = JDKMemberStatus.WHITE_LIST + in DROP_LIST_METHOD_SIGNATURES -> result = JDKMemberStatus.DROP } - override fun result() = result ?: JDKMemberStatus.NOT_CONSIDERED - }) + return result == null + } + + override fun result() = result ?: JDKMemberStatus.NOT_CONSIDERED + }) } private enum class JDKMemberStatus { @@ -281,29 +272,33 @@ open class JvmBuiltInsSettings( val javaAnalogueDescriptor = classDescriptor.getJavaAnalogue() ?: return emptyList() val defaultKotlinVersion = - j2kClassMap.mapJavaToKotlin(javaAnalogueDescriptor.fqNameSafe, FallbackBuiltIns.Instance) ?: return emptyList() + j2kClassMap.mapJavaToKotlin(javaAnalogueDescriptor.fqNameSafe, FallbackBuiltIns.Instance) ?: return emptyList() val substitutor = createMappedTypeParametersSubstitution(defaultKotlinVersion, javaAnalogueDescriptor).buildSubstitutor() fun ConstructorDescriptor.isEffectivelyTheSameAs(javaConstructor: ConstructorDescriptor) = - OverridingUtil.getBothWaysOverridability(this, javaConstructor.substitute(substitutor)) == + OverridingUtil.getBothWaysOverridability(this, javaConstructor.substitute(substitutor)) == OverridingUtil.OverrideCompatibilityInfo.Result.OVERRIDABLE - return javaAnalogueDescriptor.constructors.filter { - javaConstructor -> + return javaAnalogueDescriptor.constructors.filter { javaConstructor -> javaConstructor.visibility.isPublicAPI && - defaultKotlinVersion.constructors.none { it.isEffectivelyTheSameAs(javaConstructor) } && - !javaConstructor.isTrivialCopyConstructorFor(classDescriptor) && - !KotlinBuiltIns.isDeprecated(javaConstructor) && - SignatureBuildingComponents.signature(javaAnalogueDescriptor, javaConstructor.computeJvmDescriptor()) !in BLACK_LIST_CONSTRUCTOR_SIGNATURES - }.map { - javaConstructor -> + defaultKotlinVersion.constructors.none { it.isEffectivelyTheSameAs(javaConstructor) } && + !javaConstructor.isTrivialCopyConstructorFor(classDescriptor) && + !KotlinBuiltIns.isDeprecated(javaConstructor) && + SignatureBuildingComponents.signature( + javaAnalogueDescriptor, + javaConstructor.computeJvmDescriptor() + ) !in BLACK_LIST_CONSTRUCTOR_SIGNATURES + }.map { javaConstructor -> javaConstructor.newCopyBuilder().apply { setOwner(classDescriptor) setReturnType(classDescriptor.defaultType) setPreserveSourceElement() setSubstitution(substitutor.substitution) - if (SignatureBuildingComponents.signature(javaAnalogueDescriptor, javaConstructor.computeJvmDescriptor()) !in WHITE_LIST_CONSTRUCTOR_SIGNATURES) { + if (SignatureBuildingComponents.signature( + javaAnalogueDescriptor, javaConstructor.computeJvmDescriptor() + ) !in WHITE_LIST_CONSTRUCTOR_SIGNATURES + ) { setAdditionalAnnotations(notConsideredDeprecation) } @@ -319,14 +314,14 @@ open class JvmBuiltInsSettings( val jvmDescriptor = functionDescriptor.computeJvmDescriptor() return javaAnalogueClassDescriptor - .unsubstitutedMemberScope - .getContributedFunctions(functionDescriptor.name, NoLookupLocation.FROM_BUILTINS) - .any { it.computeJvmDescriptor() == jvmDescriptor } + .unsubstitutedMemberScope + .getContributedFunctions(functionDescriptor.name, NoLookupLocation.FROM_BUILTINS) + .any { it.computeJvmDescriptor() == jvmDescriptor } } private fun ConstructorDescriptor.isTrivialCopyConstructorFor(classDescriptor: ClassDescriptor): Boolean = - valueParameters.size == 1 && - valueParameters.single().type.constructor.declarationDescriptor?.fqNameUnsafe == classDescriptor.fqNameUnsafe + valueParameters.size == 1 && + valueParameters.single().type.constructor.declarationDescriptor?.fqNameUnsafe == classDescriptor.fqNameUnsafe companion object { fun isSerializableInJava(fqName: FqNameUnsafe): Boolean { @@ -336,8 +331,7 @@ open class JvmBuiltInsSettings( val javaClassId = JavaToKotlinClassMap.mapKotlinToJava(fqName) ?: return false val classViaReflection = try { Class.forName(javaClassId.asSingleFqName().asString()) - } - catch (e: ClassNotFoundException) { + } catch (e: ClassNotFoundException) { return false } return Serializable::class.java.isAssignableFrom(classViaReflection) @@ -348,41 +342,42 @@ open class JvmBuiltInsSettings( } val DROP_LIST_METHOD_SIGNATURES: Set = - SignatureBuildingComponents.inJavaUtil( - "Collection", - "toArray()[Ljava/lang/Object;", "toArray([Ljava/lang/Object;)[Ljava/lang/Object;") + - - "java/lang/annotation/Annotation.annotationType()Ljava/lang/Class;" + SignatureBuildingComponents.inJavaUtil( + "Collection", + "toArray()[Ljava/lang/Object;", "toArray([Ljava/lang/Object;)[Ljava/lang/Object;" + ) + "java/lang/annotation/Annotation.annotationType()Ljava/lang/Class;" val BLACK_LIST_METHOD_SIGNATURES: Set = signatures { buildPrimitiveValueMethodsSet() + - inJavaUtil("List", "sort(Ljava/util/Comparator;)V") + + inJavaUtil("List", "sort(Ljava/util/Comparator;)V") + - inJavaLang("String", - "codePointAt(I)I", "codePointBefore(I)I", "codePointCount(II)I", "compareToIgnoreCase(Ljava/lang/String;)I", - "concat(Ljava/lang/String;)Ljava/lang/String;", "contains(Ljava/lang/CharSequence;)Z", - "contentEquals(Ljava/lang/CharSequence;)Z", "contentEquals(Ljava/lang/StringBuffer;)Z", - "endsWith(Ljava/lang/String;)Z", "equalsIgnoreCase(Ljava/lang/String;)Z", "getBytes()[B", "getBytes(II[BI)V", - "getBytes(Ljava/lang/String;)[B", "getBytes(Ljava/nio/charset/Charset;)[B", "getChars(II[CI)V", - "indexOf(I)I", "indexOf(II)I", "indexOf(Ljava/lang/String;)I", "indexOf(Ljava/lang/String;I)I", - "intern()Ljava/lang/String;", "isEmpty()Z", "lastIndexOf(I)I", "lastIndexOf(II)I", - "lastIndexOf(Ljava/lang/String;)I", "lastIndexOf(Ljava/lang/String;I)I", "matches(Ljava/lang/String;)Z", - "offsetByCodePoints(II)I", "regionMatches(ILjava/lang/String;II)Z", "regionMatches(ZILjava/lang/String;II)Z", - "replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", "replace(CC)Ljava/lang/String;", - "replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", - "replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;", - "split(Ljava/lang/String;I)[Ljava/lang/String;", "split(Ljava/lang/String;)[Ljava/lang/String;", - "startsWith(Ljava/lang/String;I)Z", "startsWith(Ljava/lang/String;)Z", "substring(II)Ljava/lang/String;", - "substring(I)Ljava/lang/String;", "toCharArray()[C", "toLowerCase()Ljava/lang/String;", - "toLowerCase(Ljava/util/Locale;)Ljava/lang/String;", "toUpperCase()Ljava/lang/String;", - "toUpperCase(Ljava/util/Locale;)Ljava/lang/String;", "trim()Ljava/lang/String;") + + inJavaLang( + "String", + "codePointAt(I)I", "codePointBefore(I)I", "codePointCount(II)I", "compareToIgnoreCase(Ljava/lang/String;)I", + "concat(Ljava/lang/String;)Ljava/lang/String;", "contains(Ljava/lang/CharSequence;)Z", + "contentEquals(Ljava/lang/CharSequence;)Z", "contentEquals(Ljava/lang/StringBuffer;)Z", + "endsWith(Ljava/lang/String;)Z", "equalsIgnoreCase(Ljava/lang/String;)Z", "getBytes()[B", "getBytes(II[BI)V", + "getBytes(Ljava/lang/String;)[B", "getBytes(Ljava/nio/charset/Charset;)[B", "getChars(II[CI)V", + "indexOf(I)I", "indexOf(II)I", "indexOf(Ljava/lang/String;)I", "indexOf(Ljava/lang/String;I)I", + "intern()Ljava/lang/String;", "isEmpty()Z", "lastIndexOf(I)I", "lastIndexOf(II)I", + "lastIndexOf(Ljava/lang/String;)I", "lastIndexOf(Ljava/lang/String;I)I", "matches(Ljava/lang/String;)Z", + "offsetByCodePoints(II)I", "regionMatches(ILjava/lang/String;II)Z", "regionMatches(ZILjava/lang/String;II)Z", + "replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", "replace(CC)Ljava/lang/String;", + "replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", + "replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;", + "split(Ljava/lang/String;I)[Ljava/lang/String;", "split(Ljava/lang/String;)[Ljava/lang/String;", + "startsWith(Ljava/lang/String;I)Z", "startsWith(Ljava/lang/String;)Z", "substring(II)Ljava/lang/String;", + "substring(I)Ljava/lang/String;", "toCharArray()[C", "toLowerCase()Ljava/lang/String;", + "toLowerCase(Ljava/util/Locale;)Ljava/lang/String;", "toUpperCase()Ljava/lang/String;", + "toUpperCase(Ljava/util/Locale;)Ljava/lang/String;", "trim()Ljava/lang/String;" + ) + - inJavaLang("Double", "isInfinite()Z", "isNaN()Z") + - inJavaLang("Float", "isInfinite()Z", "isNaN()Z") + + inJavaLang("Double", "isInfinite()Z", "isNaN()Z") + + inJavaLang("Float", "isInfinite()Z", "isNaN()Z") + - inJavaLang("Enum", "getDeclaringClass()Ljava/lang/Class;", "finalize()V") + inJavaLang("Enum", "getDeclaringClass()Ljava/lang/Class;", "finalize()V") } private fun buildPrimitiveValueMethodsSet(): Set = @@ -393,83 +388,102 @@ open class JvmBuiltInsSettings( } val WHITE_LIST_METHOD_SIGNATURES: Set = - signatures { - inJavaLang("CharSequence", - "codePoints()Ljava/util/stream/IntStream;", "chars()Ljava/util/stream/IntStream;") + + signatures { + inJavaLang( + "CharSequence", + "codePoints()Ljava/util/stream/IntStream;", "chars()Ljava/util/stream/IntStream;" + ) + - inJavaUtil("Iterator", - "forEachRemaining(Ljava/util/function/Consumer;)V") + + inJavaUtil( + "Iterator", + "forEachRemaining(Ljava/util/function/Consumer;)V" + ) + - inJavaLang("Iterable", - "forEach(Ljava/util/function/Consumer;)V", "spliterator()Ljava/util/Spliterator;") + + inJavaLang( + "Iterable", + "forEach(Ljava/util/function/Consumer;)V", "spliterator()Ljava/util/Spliterator;" + ) + - inJavaLang("Throwable", - "setStackTrace([Ljava/lang/StackTraceElement;)V", "fillInStackTrace()Ljava/lang/Throwable;", - "getLocalizedMessage()Ljava/lang/String;", "printStackTrace()V", "printStackTrace(Ljava/io/PrintStream;)V", - "printStackTrace(Ljava/io/PrintWriter;)V", "getStackTrace()[Ljava/lang/StackTraceElement;", - "initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;", "getSuppressed()[Ljava/lang/Throwable;", - "addSuppressed(Ljava/lang/Throwable;)V") + + inJavaLang( + "Throwable", + "setStackTrace([Ljava/lang/StackTraceElement;)V", "fillInStackTrace()Ljava/lang/Throwable;", + "getLocalizedMessage()Ljava/lang/String;", "printStackTrace()V", "printStackTrace(Ljava/io/PrintStream;)V", + "printStackTrace(Ljava/io/PrintWriter;)V", "getStackTrace()[Ljava/lang/StackTraceElement;", + "initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;", "getSuppressed()[Ljava/lang/Throwable;", + "addSuppressed(Ljava/lang/Throwable;)V" + ) + - inJavaUtil("Collection", - "spliterator()Ljava/util/Spliterator;", "parallelStream()Ljava/util/stream/Stream;", - "stream()Ljava/util/stream/Stream;", "removeIf(Ljava/util/function/Predicate;)Z") + + inJavaUtil( + "Collection", + "spliterator()Ljava/util/Spliterator;", "parallelStream()Ljava/util/stream/Stream;", + "stream()Ljava/util/stream/Stream;", "removeIf(Ljava/util/function/Predicate;)Z" + ) + - inJavaUtil("List", - "replaceAll(Ljava/util/function/UnaryOperator;)V") + + inJavaUtil( + "List", + "replaceAll(Ljava/util/function/UnaryOperator;)V" + ) + - inJavaUtil("Map", - "getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", - "forEach(Ljava/util/function/BiConsumer;)V", "replaceAll(Ljava/util/function/BiFunction;)V", - "merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;", - "computeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;", - "putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", - "replace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z", - "replace(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", - "computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;", - "compute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;") - } + inJavaUtil( + "Map", + "getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", + "forEach(Ljava/util/function/BiConsumer;)V", "replaceAll(Ljava/util/function/BiFunction;)V", + "merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;", + "computeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;", + "putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", + "replace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z", + "replace(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", + "computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;", + "compute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;" + ) + } val MUTABLE_METHOD_SIGNATURES: Set = signatures { inJavaUtil("Collection", "removeIf(Ljava/util/function/Predicate;)Z") + - inJavaUtil("List", "replaceAll(Ljava/util/function/UnaryOperator;)V", "sort(Ljava/util/Comparator;)V") + + inJavaUtil("List", "replaceAll(Ljava/util/function/UnaryOperator;)V", "sort(Ljava/util/Comparator;)V") + - inJavaUtil("Map", - "computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;", - "computeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;", - "compute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;", - "merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;", - "putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", - "remove(Ljava/lang/Object;Ljava/lang/Object;)Z", "replaceAll(Ljava/util/function/BiFunction;)V", - "replace(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", - "replace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z") + inJavaUtil( + "Map", + "computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;", + "computeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;", + "compute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;", + "merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;", + "putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", + "remove(Ljava/lang/Object;Ljava/lang/Object;)Z", "replaceAll(Ljava/util/function/BiFunction;)V", + "replace(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", + "replace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z" + ) } val BLACK_LIST_CONSTRUCTOR_SIGNATURES: Set = signatures { buildPrimitiveStringConstructorsSet() + - inJavaLang("Float", *constructors("D")) + - inJavaLang("String", *constructors( - "[C", "[CII", "[III", "[BIILjava/lang/String;", - "[BIILjava/nio/charset/Charset;", - "[BLjava/lang/String;", - "[BLjava/nio/charset/Charset;", - "[BII", "[B", - "Ljava/lang/StringBuffer;", - "Ljava/lang/StringBuilder;" - )) + inJavaLang("Float", *constructors("D")) + + inJavaLang( + "String", *constructors( + "[C", "[CII", "[III", "[BIILjava/lang/String;", + "[BIILjava/nio/charset/Charset;", + "[BLjava/lang/String;", + "[BLjava/nio/charset/Charset;", + "[BII", "[B", + "Ljava/lang/StringBuffer;", + "Ljava/lang/StringBuilder;" + ) + ) } val WHITE_LIST_CONSTRUCTOR_SIGNATURES: Set = - signatures { - inJavaLang("Throwable", *constructors("Ljava/lang/String;Ljava/lang/Throwable;ZZ")) - } + signatures { + inJavaLang("Throwable", *constructors("Ljava/lang/String;Ljava/lang/Throwable;ZZ")) + } private fun buildPrimitiveStringConstructorsSet(): Set = signatures { - listOf(JvmPrimitiveType.BOOLEAN, JvmPrimitiveType.BYTE, JvmPrimitiveType.DOUBLE, JvmPrimitiveType.FLOAT, - JvmPrimitiveType.BYTE, JvmPrimitiveType.INT, JvmPrimitiveType.LONG, JvmPrimitiveType.SHORT + listOf( + JvmPrimitiveType.BOOLEAN, JvmPrimitiveType.BYTE, JvmPrimitiveType.DOUBLE, JvmPrimitiveType.FLOAT, + JvmPrimitiveType.BYTE, JvmPrimitiveType.INT, JvmPrimitiveType.LONG, JvmPrimitiveType.SHORT ).flatMapTo(LinkedHashSet()) { // java/lang/.(Ljava/lang/String;)V inJavaLang(it.wrapperFqName.shortName().asString(), *constructors("Ljava/lang/String;")) diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/mappingUtil.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/mappingUtil.kt new file mode 100644 index 00000000000..4c38b38a83c --- /dev/null +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/mappingUtil.kt @@ -0,0 +1,23 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.builtins.jvm + +import org.jetbrains.kotlin.descriptors.ClassDescriptor +import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor +import org.jetbrains.kotlin.types.TypeConstructorSubstitution +import org.jetbrains.kotlin.types.typeUtil.asTypeProjection + +fun createMappedTypeParametersSubstitution(from: ClassDescriptor, to: ClassDescriptor): TypeConstructorSubstitution { + assert(from.declaredTypeParameters.size == to.declaredTypeParameters.size) { + "$from and $to should have same number of type parameters, " + + "but ${from.declaredTypeParameters.size} / ${to.declaredTypeParameters.size} found" + } + + return TypeConstructorSubstitution.createByConstructorsMap( + from.declaredTypeParameters.map(TypeParameterDescriptor::getTypeConstructor).zip( + to.declaredTypeParameters.map { it.defaultType.asTypeProjection() } + ).toMap()) +} diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaAnnotationDescriptor.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaAnnotationDescriptor.kt index bb637b9784e..2e9b0871463 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaAnnotationDescriptor.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaAnnotationDescriptor.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.load.java.lazy.descriptors +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor import org.jetbrains.kotlin.descriptors.annotations.Annotations import org.jetbrains.kotlin.descriptors.findNonGenericClassAcrossDependencies @@ -29,7 +30,6 @@ import org.jetbrains.kotlin.load.java.structure.* import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.renderer.DescriptorRenderer import org.jetbrains.kotlin.resolve.constants.* import org.jetbrains.kotlin.resolve.descriptorUtil.annotationClass diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassDescriptor.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassDescriptor.kt index 05701238722..e7bf1e89a8c 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassDescriptor.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassDescriptor.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.load.java.lazy.descriptors import org.jetbrains.kotlin.builtins.KotlinBuiltIns +import org.jetbrains.kotlin.builtins.jvm.createMappedTypeParametersSubstitution import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.annotations.Annotations import org.jetbrains.kotlin.descriptors.impl.ClassDescriptorBase @@ -26,7 +27,6 @@ import org.jetbrains.kotlin.load.java.structure.JavaClassifierType import org.jetbrains.kotlin.load.java.structure.JavaType import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.isValidJavaFqName -import org.jetbrains.kotlin.platform.createMappedTypeParametersSubstitution import org.jetbrains.kotlin.resolve.constants.StringValue import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameUnsafe diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/types/JavaTypeResolver.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/types/JavaTypeResolver.kt index efd71f7a9dc..5eda0a53c74 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/types/JavaTypeResolver.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/types/JavaTypeResolver.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.load.java.lazy.types +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor import org.jetbrains.kotlin.load.java.components.TypeUsage @@ -28,7 +29,6 @@ import org.jetbrains.kotlin.load.java.lazy.types.JavaTypeFlexibility.* import org.jetbrains.kotlin.load.java.structure.* import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.types.* import org.jetbrains.kotlin.types.Variance.* import org.jetbrains.kotlin.types.typeUtil.createProjection diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/signatureEnhancement.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/signatureEnhancement.kt index 893716d2669..74bda7e3c5f 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/signatureEnhancement.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/signatureEnhancement.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.load.java.typeEnhancement +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.annotations.Annotated import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor @@ -29,7 +30,6 @@ import org.jetbrains.kotlin.load.java.lazy.descriptors.isJavaField import org.jetbrains.kotlin.load.kotlin.SignatureBuildingComponents import org.jetbrains.kotlin.load.kotlin.computeJvmDescriptor import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.resolve.constants.EnumValue import org.jetbrains.kotlin.resolve.descriptorUtil.firstArgument import org.jetbrains.kotlin.types.* diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/typeEnhancement.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/typeEnhancement.kt index 2e8283eeac3..bafc8aa5243 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/typeEnhancement.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/typeEnhancement.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.load.java.typeEnhancement +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.ClassifierDescriptor import org.jetbrains.kotlin.descriptors.SourceElement @@ -31,7 +32,6 @@ import org.jetbrains.kotlin.load.java.typeEnhancement.NullabilityQualifier.NOT_N import org.jetbrains.kotlin.load.java.typeEnhancement.NullabilityQualifier.NULLABLE import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.resolve.constants.ConstantValue import org.jetbrains.kotlin.types.* import org.jetbrains.kotlin.types.typeUtil.createProjection diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/DeserializationComponentsForJava.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/DeserializationComponentsForJava.kt index 106a72a4d6b..dddcb4d7de7 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/DeserializationComponentsForJava.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/DeserializationComponentsForJava.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.load.kotlin +import org.jetbrains.kotlin.builtins.jvm.JvmBuiltIns import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.NotFoundClasses import org.jetbrains.kotlin.descriptors.deserialization.AdditionalClassPartsProvider @@ -23,7 +24,6 @@ import org.jetbrains.kotlin.descriptors.deserialization.PlatformDependentDeclara import org.jetbrains.kotlin.incremental.components.LookupTracker import org.jetbrains.kotlin.load.java.lazy.LazyJavaPackageFragmentProvider import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil -import org.jetbrains.kotlin.platform.JvmBuiltIns import org.jetbrains.kotlin.serialization.deserialization.* import org.jetbrains.kotlin.storage.StorageManager diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/methodSignatureMapping.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/methodSignatureMapping.kt index 86486f2e795..d5281be62a3 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/methodSignatureMapping.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/methodSignatureMapping.kt @@ -6,11 +6,11 @@ package org.jetbrains.kotlin.load.kotlin import org.jetbrains.kotlin.builtins.KotlinBuiltIns +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialGenericSignature import org.jetbrains.kotlin.load.java.isFromJavaOrBuiltins import org.jetbrains.kotlin.name.ClassId -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameUnsafe diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/typeSignatureMapping.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/typeSignatureMapping.kt index e4eb2b0a5dd..54d666eefd5 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/typeSignatureMapping.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/typeSignatureMapping.kt @@ -6,12 +6,12 @@ package org.jetbrains.kotlin.load.kotlin import org.jetbrains.kotlin.builtins.* +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.load.java.typeEnhancement.hasEnhancedNullability import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.SpecialNames -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameUnsafe import org.jetbrains.kotlin.resolve.isInlineClassType diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/platform/mappingUtil.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/platform/mappingUtil.kt deleted file mode 100644 index 7843e21549a..00000000000 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/platform/mappingUtil.kt +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2010-2016 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.platform - -import org.jetbrains.kotlin.descriptors.ClassDescriptor -import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor -import org.jetbrains.kotlin.types.TypeConstructorSubstitution -import org.jetbrains.kotlin.types.typeUtil.asTypeProjection - -fun createMappedTypeParametersSubstitution(from: ClassDescriptor, to: ClassDescriptor): TypeConstructorSubstitution { - assert(from.declaredTypeParameters.size == to.declaredTypeParameters.size) { - "$from and $to should have same number of type parameters, " + - "but ${from.declaredTypeParameters.size} / ${to.declaredTypeParameters.size} found" - } - - return TypeConstructorSubstitution.createByConstructorsMap( - from.declaredTypeParameters.map(TypeParameterDescriptor::getTypeConstructor).zip( - to.declaredTypeParameters.map { it.defaultType.asTypeProjection() } - ).toMap()) -} \ No newline at end of file diff --git a/core/descriptors.runtime/src/kotlin/reflect/jvm/internal/components/RuntimeModuleData.kt b/core/descriptors.runtime/src/kotlin/reflect/jvm/internal/components/RuntimeModuleData.kt index 15b64b547e5..8beb01de423 100644 --- a/core/descriptors.runtime/src/kotlin/reflect/jvm/internal/components/RuntimeModuleData.kt +++ b/core/descriptors.runtime/src/kotlin/reflect/jvm/internal/components/RuntimeModuleData.kt @@ -17,6 +17,7 @@ package kotlin.reflect.jvm.internal.components import org.jetbrains.kotlin.builtins.ReflectionTypes +import org.jetbrains.kotlin.builtins.jvm.JvmBuiltIns import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.NotFoundClasses import org.jetbrains.kotlin.descriptors.SupertypeLoopChecker @@ -38,7 +39,6 @@ import org.jetbrains.kotlin.load.kotlin.DeserializationComponentsForJava import org.jetbrains.kotlin.load.kotlin.DeserializedDescriptorResolver import org.jetbrains.kotlin.load.kotlin.JavaClassDataFinder import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.platform.JvmBuiltIns import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver import org.jetbrains.kotlin.serialization.deserialization.ContractDeserializer import org.jetbrains.kotlin.serialization.deserialization.DeserializationComponents diff --git a/core/descriptors/src/org/jetbrains/kotlin/builtins/PlatformToKotlinClassMap.java b/core/descriptors/src/org/jetbrains/kotlin/builtins/PlatformToKotlinClassMap.java new file mode 100644 index 00000000000..c5ba8d84271 --- /dev/null +++ b/core/descriptors/src/org/jetbrains/kotlin/builtins/PlatformToKotlinClassMap.java @@ -0,0 +1,25 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.builtins; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.kotlin.descriptors.ClassDescriptor; + +import java.util.Collection; +import java.util.Collections; + +public interface PlatformToKotlinClassMap { + PlatformToKotlinClassMap EMPTY = new PlatformToKotlinClassMap() { + @NotNull + @Override + public Collection mapPlatformClass(@NotNull ClassDescriptor classDescriptor) { + return Collections.emptyList(); + } + }; + + @NotNull + Collection mapPlatformClass(@NotNull ClassDescriptor classDescriptor); +} diff --git a/core/descriptors/src/org/jetbrains/kotlin/platform/PlatformToKotlinClassMap.java b/core/descriptors/src/org/jetbrains/kotlin/platform/PlatformToKotlinClassMap.java deleted file mode 100644 index 5fa8c612dae..00000000000 --- a/core/descriptors/src/org/jetbrains/kotlin/platform/PlatformToKotlinClassMap.java +++ /dev/null @@ -1,36 +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.platform; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.kotlin.descriptors.ClassDescriptor; - -import java.util.Collection; -import java.util.Collections; - -public interface PlatformToKotlinClassMap { - PlatformToKotlinClassMap EMPTY = new PlatformToKotlinClassMap() { - @NotNull - @Override - public Collection mapPlatformClass(@NotNull ClassDescriptor classDescriptor) { - return Collections.emptyList(); - } - }; - - @NotNull - Collection mapPlatformClass(@NotNull ClassDescriptor classDescriptor); -} diff --git a/core/deserialization/src/META-INF/services/org.jetbrains.kotlin.builtins.BuiltInsLoader b/core/deserialization/src/META-INF/services/org.jetbrains.kotlin.builtins.BuiltInsLoader index 718d714da84..8fda20627c0 100644 --- a/core/deserialization/src/META-INF/services/org.jetbrains.kotlin.builtins.BuiltInsLoader +++ b/core/deserialization/src/META-INF/services/org.jetbrains.kotlin.builtins.BuiltInsLoader @@ -1 +1 @@ -org.jetbrains.kotlin.builtins.BuiltInsLoaderImpl +org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInsLoaderImpl diff --git a/core/deserialization/src/org/jetbrains/kotlin/builtins/BuiltInSerializerProtocol.kt b/core/deserialization/src/org/jetbrains/kotlin/builtins/BuiltInSerializerProtocol.kt deleted file mode 100644 index de4d90e8203..00000000000 --- a/core/deserialization/src/org/jetbrains/kotlin/builtins/BuiltInSerializerProtocol.kt +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2010-2017 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.builtins - -import org.jetbrains.kotlin.metadata.builtins.BuiltInsProtoBuf -import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.protobuf.ExtensionRegistryLite -import org.jetbrains.kotlin.serialization.SerializerExtensionProtocol - -object BuiltInSerializerProtocol : SerializerExtensionProtocol( - ExtensionRegistryLite.newInstance().apply { BuiltInsProtoBuf.registerAllExtensions(this) }, - BuiltInsProtoBuf.packageFqName, - BuiltInsProtoBuf.constructorAnnotation, BuiltInsProtoBuf.classAnnotation, BuiltInsProtoBuf.functionAnnotation, - BuiltInsProtoBuf.propertyAnnotation, BuiltInsProtoBuf.enumEntryAnnotation, BuiltInsProtoBuf.compileTimeValue, - BuiltInsProtoBuf.parameterAnnotation, BuiltInsProtoBuf.typeAnnotation, BuiltInsProtoBuf.typeParameterAnnotation -) { - val BUILTINS_FILE_EXTENSION = "kotlin_builtins" - - fun getBuiltInsFilePath(fqName: FqName): String = - fqName.asString().replace('.', '/') + "/" + getBuiltInsFileName(fqName) - - fun getBuiltInsFileName(fqName: FqName): String = - shortName(fqName) + "." + BUILTINS_FILE_EXTENSION - - private fun shortName(fqName: FqName): String = - if (fqName.isRoot) "default-package" else fqName.shortName().asString() -} diff --git a/core/deserialization/src/org/jetbrains/kotlin/builtins/BuiltInsLoaderImpl.kt b/core/deserialization/src/org/jetbrains/kotlin/builtins/BuiltInsLoaderImpl.kt deleted file mode 100644 index ff9d7ea5732..00000000000 --- a/core/deserialization/src/org/jetbrains/kotlin/builtins/BuiltInsLoaderImpl.kt +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2010-2017 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.builtins - -import org.jetbrains.kotlin.descriptors.ModuleDescriptor -import org.jetbrains.kotlin.descriptors.NotFoundClasses -import org.jetbrains.kotlin.descriptors.PackageFragmentProvider -import org.jetbrains.kotlin.descriptors.PackageFragmentProviderImpl -import org.jetbrains.kotlin.descriptors.deserialization.AdditionalClassPartsProvider -import org.jetbrains.kotlin.descriptors.deserialization.ClassDescriptorFactory -import org.jetbrains.kotlin.descriptors.deserialization.PlatformDependentDeclarationFilter -import org.jetbrains.kotlin.incremental.components.LookupTracker -import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.serialization.deserialization.* -import org.jetbrains.kotlin.storage.StorageManager -import java.io.InputStream - -class BuiltInsLoaderImpl : BuiltInsLoader { - private val resourceLoader = BuiltInsResourceLoader() - - override fun createPackageFragmentProvider( - storageManager: StorageManager, - builtInsModule: ModuleDescriptor, - classDescriptorFactories: Iterable, - platformDependentDeclarationFilter: PlatformDependentDeclarationFilter, - additionalClassPartsProvider: AdditionalClassPartsProvider - ): PackageFragmentProvider { - return createBuiltInPackageFragmentProvider( - storageManager, - builtInsModule, - KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAMES, - classDescriptorFactories, - platformDependentDeclarationFilter, - additionalClassPartsProvider, - resourceLoader::loadResource - ) - } - - fun createBuiltInPackageFragmentProvider( - storageManager: StorageManager, - module: ModuleDescriptor, - packageFqNames: Set, - classDescriptorFactories: Iterable, - platformDependentDeclarationFilter: PlatformDependentDeclarationFilter, - additionalClassPartsProvider: AdditionalClassPartsProvider = AdditionalClassPartsProvider.None, - loadResource: (String) -> InputStream? - ): PackageFragmentProvider { - val packageFragments = packageFqNames.map { fqName -> - val resourcePath = BuiltInSerializerProtocol.getBuiltInsFilePath(fqName) - val inputStream = loadResource(resourcePath) ?: throw IllegalStateException("Resource not found in classpath: $resourcePath") - BuiltInsPackageFragmentImpl(fqName, storageManager, module, inputStream) - } - val provider = PackageFragmentProviderImpl(packageFragments) - - val notFoundClasses = NotFoundClasses(storageManager, module) - - val components = DeserializationComponents( - storageManager, - module, - DeserializationConfiguration.Default, - DeserializedClassDataFinder(provider), - AnnotationAndConstantLoaderImpl(module, notFoundClasses, BuiltInSerializerProtocol), - provider, - LocalClassifierTypeSettings.Default, - ErrorReporter.DO_NOTHING, - LookupTracker.DO_NOTHING, - FlexibleTypeDeserializer.ThrowException, - classDescriptorFactories, - notFoundClasses, - ContractDeserializer.DEFAULT, - additionalClassPartsProvider, - platformDependentDeclarationFilter, - BuiltInSerializerProtocol.extensionRegistry - ) - - for (packageFragment in packageFragments) { - packageFragment.initialize(components) - } - - return provider - } -} diff --git a/core/deserialization/src/org/jetbrains/kotlin/builtins/BuiltInsPackageFragmentImpl.kt b/core/deserialization/src/org/jetbrains/kotlin/builtins/BuiltInsPackageFragmentImpl.kt deleted file mode 100644 index 4fac97ec311..00000000000 --- a/core/deserialization/src/org/jetbrains/kotlin/builtins/BuiltInsPackageFragmentImpl.kt +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2010-2017 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.builtins - -import org.jetbrains.kotlin.descriptors.ModuleDescriptor -import org.jetbrains.kotlin.metadata.ProtoBuf -import org.jetbrains.kotlin.metadata.builtins.BuiltInsBinaryVersion -import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.serialization.deserialization.DeserializedPackageFragmentImpl -import org.jetbrains.kotlin.storage.StorageManager -import java.io.InputStream - -class BuiltInsPackageFragmentImpl( - fqName: FqName, - storageManager: StorageManager, - module: ModuleDescriptor, - inputStream: InputStream -) : BuiltInsPackageFragment, DeserializedPackageFragmentImpl(fqName, storageManager, module, inputStream.use { stream -> - val version = BuiltInsBinaryVersion.readFrom(stream) - - if (!version.isCompatible()) { - // TODO: report a proper diagnostic - throw UnsupportedOperationException( - "Kotlin built-in definition format version is not supported: " + - "expected ${BuiltInsBinaryVersion.INSTANCE}, actual $version. " + - "Please update Kotlin" - ) - } - - ProtoBuf.PackageFragment.parseFrom(stream, BuiltInSerializerProtocol.extensionRegistry) -}, containerSource = null) diff --git a/core/deserialization/src/org/jetbrains/kotlin/builtins/BuiltInsResourceLoader.kt b/core/deserialization/src/org/jetbrains/kotlin/builtins/BuiltInsResourceLoader.kt deleted file mode 100644 index 6f4a1922dd6..00000000000 --- a/core/deserialization/src/org/jetbrains/kotlin/builtins/BuiltInsResourceLoader.kt +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2010-2017 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.builtins - -import java.io.InputStream - -class BuiltInsResourceLoader { - fun loadResource(path: String): InputStream? { - return this::class.java.classLoader?.getResourceAsStream(path) - ?: ClassLoader.getSystemResourceAsStream(path) - } -} diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MetadataPackageFragmentProvider.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MetadataPackageFragmentProvider.kt index 6016b2c2782..1a0f26068d1 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MetadataPackageFragmentProvider.kt +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MetadataPackageFragmentProvider.kt @@ -16,7 +16,6 @@ package org.jetbrains.kotlin.serialization.deserialization -import org.jetbrains.kotlin.builtins.BuiltInSerializerProtocol import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.NotFoundClasses import org.jetbrains.kotlin.descriptors.PackagePartProvider @@ -32,6 +31,7 @@ import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.scopes.ChainedMemberScope import org.jetbrains.kotlin.resolve.scopes.MemberScope +import org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInSerializerProtocol import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedPackageMemberScope import org.jetbrains.kotlin.storage.StorageManager import java.io.InputStream diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/builtins/BuiltInSerializerProtocol.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/builtins/BuiltInSerializerProtocol.kt new file mode 100644 index 00000000000..df3bee5aead --- /dev/null +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/builtins/BuiltInSerializerProtocol.kt @@ -0,0 +1,32 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.serialization.deserialization.builtins + +import org.jetbrains.kotlin.metadata.builtins.BuiltInsProtoBuf +import org.jetbrains.kotlin.name.FqName +import org.jetbrains.kotlin.protobuf.ExtensionRegistryLite +import org.jetbrains.kotlin.serialization.SerializerExtensionProtocol + +object BuiltInSerializerProtocol : SerializerExtensionProtocol( + ExtensionRegistryLite.newInstance().apply { BuiltInsProtoBuf.registerAllExtensions(this) }, + BuiltInsProtoBuf.packageFqName, + BuiltInsProtoBuf.constructorAnnotation, BuiltInsProtoBuf.classAnnotation, BuiltInsProtoBuf.functionAnnotation, + BuiltInsProtoBuf.propertyAnnotation, BuiltInsProtoBuf.enumEntryAnnotation, BuiltInsProtoBuf.compileTimeValue, + BuiltInsProtoBuf.parameterAnnotation, BuiltInsProtoBuf.typeAnnotation, BuiltInsProtoBuf.typeParameterAnnotation +) { + const val BUILTINS_FILE_EXTENSION = "kotlin_builtins" + + fun getBuiltInsFilePath(fqName: FqName): String = + fqName.asString().replace('.', '/') + "/" + getBuiltInsFileName( + fqName + ) + + fun getBuiltInsFileName(fqName: FqName): String = + shortName(fqName) + "." + BUILTINS_FILE_EXTENSION + + private fun shortName(fqName: FqName): String = + if (fqName.isRoot) "default-package" else fqName.shortName().asString() +} diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/builtins/BuiltInsLoaderImpl.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/builtins/BuiltInsLoaderImpl.kt new file mode 100644 index 00000000000..4d14b7d1613 --- /dev/null +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/builtins/BuiltInsLoaderImpl.kt @@ -0,0 +1,87 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.serialization.deserialization.builtins + +import org.jetbrains.kotlin.builtins.BuiltInsLoader +import org.jetbrains.kotlin.builtins.KotlinBuiltIns +import org.jetbrains.kotlin.descriptors.ModuleDescriptor +import org.jetbrains.kotlin.descriptors.NotFoundClasses +import org.jetbrains.kotlin.descriptors.PackageFragmentProvider +import org.jetbrains.kotlin.descriptors.PackageFragmentProviderImpl +import org.jetbrains.kotlin.descriptors.deserialization.AdditionalClassPartsProvider +import org.jetbrains.kotlin.descriptors.deserialization.ClassDescriptorFactory +import org.jetbrains.kotlin.descriptors.deserialization.PlatformDependentDeclarationFilter +import org.jetbrains.kotlin.incremental.components.LookupTracker +import org.jetbrains.kotlin.name.FqName +import org.jetbrains.kotlin.serialization.deserialization.* +import org.jetbrains.kotlin.storage.StorageManager +import java.io.InputStream + +class BuiltInsLoaderImpl : BuiltInsLoader { + private val resourceLoader = BuiltInsResourceLoader() + + override fun createPackageFragmentProvider( + storageManager: StorageManager, + builtInsModule: ModuleDescriptor, + classDescriptorFactories: Iterable, + platformDependentDeclarationFilter: PlatformDependentDeclarationFilter, + additionalClassPartsProvider: AdditionalClassPartsProvider + ): PackageFragmentProvider { + return createBuiltInPackageFragmentProvider( + storageManager, + builtInsModule, + KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAMES, + classDescriptorFactories, + platformDependentDeclarationFilter, + additionalClassPartsProvider, + resourceLoader::loadResource + ) + } + + fun createBuiltInPackageFragmentProvider( + storageManager: StorageManager, + module: ModuleDescriptor, + packageFqNames: Set, + classDescriptorFactories: Iterable, + platformDependentDeclarationFilter: PlatformDependentDeclarationFilter, + additionalClassPartsProvider: AdditionalClassPartsProvider = AdditionalClassPartsProvider.None, + loadResource: (String) -> InputStream? + ): PackageFragmentProvider { + val packageFragments = packageFqNames.map { fqName -> + val resourcePath = BuiltInSerializerProtocol.getBuiltInsFilePath(fqName) + val inputStream = loadResource(resourcePath) ?: throw IllegalStateException("Resource not found in classpath: $resourcePath") + BuiltInsPackageFragmentImpl(fqName, storageManager, module, inputStream) + } + val provider = PackageFragmentProviderImpl(packageFragments) + + val notFoundClasses = NotFoundClasses(storageManager, module) + + val components = DeserializationComponents( + storageManager, + module, + DeserializationConfiguration.Default, + DeserializedClassDataFinder(provider), + AnnotationAndConstantLoaderImpl(module, notFoundClasses, BuiltInSerializerProtocol), + provider, + LocalClassifierTypeSettings.Default, + ErrorReporter.DO_NOTHING, + LookupTracker.DO_NOTHING, + FlexibleTypeDeserializer.ThrowException, + classDescriptorFactories, + notFoundClasses, + ContractDeserializer.DEFAULT, + additionalClassPartsProvider, + platformDependentDeclarationFilter, + BuiltInSerializerProtocol.extensionRegistry + ) + + for (packageFragment in packageFragments) { + packageFragment.initialize(components) + } + + return provider + } +} diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/builtins/BuiltInsPackageFragmentImpl.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/builtins/BuiltInsPackageFragmentImpl.kt new file mode 100644 index 00000000000..84cfcb2dfd4 --- /dev/null +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/builtins/BuiltInsPackageFragmentImpl.kt @@ -0,0 +1,35 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.serialization.deserialization.builtins + +import org.jetbrains.kotlin.builtins.BuiltInsPackageFragment +import org.jetbrains.kotlin.descriptors.ModuleDescriptor +import org.jetbrains.kotlin.metadata.ProtoBuf +import org.jetbrains.kotlin.metadata.builtins.BuiltInsBinaryVersion +import org.jetbrains.kotlin.name.FqName +import org.jetbrains.kotlin.serialization.deserialization.DeserializedPackageFragmentImpl +import org.jetbrains.kotlin.storage.StorageManager +import java.io.InputStream + +class BuiltInsPackageFragmentImpl( + fqName: FqName, + storageManager: StorageManager, + module: ModuleDescriptor, + inputStream: InputStream +) : BuiltInsPackageFragment, DeserializedPackageFragmentImpl(fqName, storageManager, module, inputStream.use { stream -> + val version = BuiltInsBinaryVersion.readFrom(stream) + + if (!version.isCompatible()) { + // TODO: report a proper diagnostic + throw UnsupportedOperationException( + "Kotlin built-in definition format version is not supported: " + + "expected ${BuiltInsBinaryVersion.INSTANCE}, actual $version. " + + "Please update Kotlin" + ) + } + + ProtoBuf.PackageFragment.parseFrom(stream, BuiltInSerializerProtocol.extensionRegistry) +}, containerSource = null) diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/builtins/BuiltInsResourceLoader.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/builtins/BuiltInsResourceLoader.kt new file mode 100644 index 00000000000..4467cafc540 --- /dev/null +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/builtins/BuiltInsResourceLoader.kt @@ -0,0 +1,15 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.serialization.deserialization.builtins + +import java.io.InputStream + +class BuiltInsResourceLoader { + fun loadResource(path: String): InputStream? { + return this::class.java.classLoader?.getResourceAsStream(path) + ?: ClassLoader.getSystemResourceAsStream(path) + } +} diff --git a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/RuntimeTypeMapper.kt b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/RuntimeTypeMapper.kt index 8190f35a259..6bc472d4d93 100644 --- a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/RuntimeTypeMapper.kt +++ b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/RuntimeTypeMapper.kt @@ -18,6 +18,7 @@ package kotlin.reflect.jvm.internal import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.PrimitiveType +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.load.java.JvmAbi import org.jetbrains.kotlin.load.java.descriptors.JavaClassConstructorDescriptor @@ -37,7 +38,6 @@ import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.NameUtils -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.resolve.DescriptorFactory import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.descriptorUtil.propertyIfAccessor diff --git a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/util.kt b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/util.kt index 2999096a609..95f92dca902 100644 --- a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/util.kt +++ b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/util.kt @@ -16,6 +16,7 @@ package kotlin.reflect.jvm.internal +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.annotations.Annotated import org.jetbrains.kotlin.descriptors.annotations.isEffectivelyInlineOnly @@ -30,7 +31,6 @@ import org.jetbrains.kotlin.metadata.deserialization.getExtensionOrNull import org.jetbrains.kotlin.metadata.jvm.JvmProtoBuf import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.protobuf.MessageLite import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.descriptorUtil.classId diff --git a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/TypeUtils.kt b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/TypeUtils.kt index b49a15105ae..39c2ebab741 100644 --- a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/TypeUtils.kt +++ b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/TypeUtils.kt @@ -18,12 +18,12 @@ package org.jetbrains.kotlin.idea.util +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor import org.jetbrains.kotlin.idea.imports.canBeReferencedViaImport import org.jetbrains.kotlin.incremental.components.NoLookupLocation -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns import org.jetbrains.kotlin.resolve.scopes.LexicalScope diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/IdePlatformSupport.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/IdePlatformSupport.kt index a28f51465af..99d410f6686 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/IdePlatformSupport.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/IdePlatformSupport.kt @@ -24,6 +24,7 @@ import org.jetbrains.kotlin.analyzer.ResolverForModuleFactory import org.jetbrains.kotlin.analyzer.common.CommonAnalyzerFacade import org.jetbrains.kotlin.builtins.DefaultBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns +import org.jetbrains.kotlin.builtins.jvm.JvmBuiltIns import org.jetbrains.kotlin.config.KotlinFacetSettingsProvider import org.jetbrains.kotlin.config.TargetPlatformKind import org.jetbrains.kotlin.context.GlobalContextImpl @@ -32,7 +33,6 @@ import org.jetbrains.kotlin.idea.caches.resolve.PlatformAnalysisSettings import org.jetbrains.kotlin.idea.framework.CommonLibraryKind import org.jetbrains.kotlin.idea.framework.JSLibraryKind import org.jetbrains.kotlin.js.resolve.JsPlatform -import org.jetbrains.kotlin.platform.JvmBuiltIns import org.jetbrains.kotlin.resolve.TargetPlatform import org.jetbrains.kotlin.resolve.jvm.JvmAnalyzerFacade import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/lightClasses/platformWrappers.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/lightClasses/platformWrappers.kt index bdbfbc2ec04..3eb7cc8e037 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/lightClasses/platformWrappers.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/lightClasses/platformWrappers.kt @@ -16,7 +16,6 @@ package org.jetbrains.kotlin.idea.caches.lightClasses - import com.intellij.openapi.util.Key import com.intellij.psi.* import com.intellij.psi.impl.InheritanceImplUtil @@ -33,6 +32,7 @@ import org.jetbrains.kotlin.asJava.classes.cannotModify import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.asJava.elements.KtLightElementBase import org.jetbrains.kotlin.builtins.DefaultBuiltIns +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.idea.KotlinLanguage import org.jetbrains.kotlin.incremental.components.NoLookupLocation import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialGenericSignature @@ -40,7 +40,6 @@ import org.jetbrains.kotlin.load.java.BuiltinSpecialProperties import org.jetbrains.kotlin.load.java.JvmAbi import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.psi.UserDataProperty private val readOnlyQualifiedNamesToJavaClass = JavaToKotlinClassMap.mutabilityMappings.associateBy { (_, readOnly, _) -> diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ProjectResolutionFacade.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ProjectResolutionFacade.kt index 07af168b025..546fa7ec153 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ProjectResolutionFacade.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ProjectResolutionFacade.kt @@ -26,6 +26,7 @@ import com.intellij.util.containers.SLRUCache import org.jetbrains.kotlin.analyzer.* import org.jetbrains.kotlin.builtins.DefaultBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns +import org.jetbrains.kotlin.builtins.jvm.JvmBuiltIns import org.jetbrains.kotlin.caches.resolve.IdePlatformSupport import org.jetbrains.kotlin.context.GlobalContextImpl import org.jetbrains.kotlin.context.withProject @@ -37,7 +38,6 @@ import org.jetbrains.kotlin.idea.compiler.IDELanguageSettingsProvider import org.jetbrains.kotlin.idea.project.IdeaEnvironment import org.jetbrains.kotlin.load.java.structure.JavaClass import org.jetbrains.kotlin.load.java.structure.impl.JavaClassImpl -import org.jetbrains.kotlin.platform.JvmBuiltIns import org.jetbrains.kotlin.psi.KtElement import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.resolve.CompositeBindingContext diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/builtIns/KotlinBuiltInDecompiler.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/builtIns/KotlinBuiltInDecompiler.kt index 4bd92010a39..fec9e369363 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/builtIns/KotlinBuiltInDecompiler.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/builtIns/KotlinBuiltInDecompiler.kt @@ -19,7 +19,6 @@ package org.jetbrains.kotlin.idea.decompiler.builtIns import com.intellij.ide.highlighter.JavaClassFileType import com.intellij.openapi.vfs.VirtualFile import org.jetbrains.annotations.TestOnly -import org.jetbrains.kotlin.builtins.BuiltInSerializerProtocol import org.jetbrains.kotlin.idea.decompiler.common.FileWithMetadata import org.jetbrains.kotlin.idea.decompiler.common.KotlinMetadataDecompiler import org.jetbrains.kotlin.metadata.ProtoBuf @@ -29,6 +28,7 @@ import org.jetbrains.kotlin.psi.stubs.KotlinStubVersions import org.jetbrains.kotlin.resolve.TargetPlatform import org.jetbrains.kotlin.serialization.deserialization.FlexibleTypeDeserializer import org.jetbrains.kotlin.serialization.deserialization.MetadataPackageFragment +import org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInSerializerProtocol import org.jetbrains.kotlin.serialization.deserialization.getClassId import java.io.ByteArrayInputStream diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/builtIns/KotlinBuiltInFileType.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/builtIns/KotlinBuiltInFileType.kt index 81736ef22cf..c81b158db19 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/builtIns/KotlinBuiltInFileType.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/builtIns/KotlinBuiltInFileType.kt @@ -18,8 +18,8 @@ package org.jetbrains.kotlin.idea.decompiler.builtIns import com.intellij.openapi.fileTypes.FileType import com.intellij.openapi.vfs.VirtualFile -import org.jetbrains.kotlin.builtins.BuiltInSerializerProtocol import org.jetbrains.kotlin.idea.KotlinIcons +import org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInSerializerProtocol object KotlinBuiltInFileType : FileType { override fun getName() = "kotlin_builtins" diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/navigation/findDecompiledDeclaration.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/navigation/findDecompiledDeclaration.kt index f0c5d5cd3db..a306fa19336 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/navigation/findDecompiledDeclaration.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/navigation/findDecompiledDeclaration.kt @@ -22,6 +22,7 @@ import com.intellij.psi.search.GlobalSearchScope import org.jetbrains.kotlin.analyzer.ModuleInfo import org.jetbrains.kotlin.builtins.DefaultBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns +import org.jetbrains.kotlin.builtins.jvm.JvmBuiltInsSettings import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.impl.TypeAliasConstructorDescriptor import org.jetbrains.kotlin.idea.caches.project.BinaryModuleInfo @@ -30,7 +31,6 @@ import org.jetbrains.kotlin.idea.decompiler.KtDecompiledFile import org.jetbrains.kotlin.idea.decompiler.textBuilder.DecompiledTextIndexer import org.jetbrains.kotlin.idea.stubindex.* import org.jetbrains.kotlin.incremental.components.NoLookupLocation -import org.jetbrains.kotlin.load.kotlin.JvmBuiltInsSettings import org.jetbrains.kotlin.psi.KtCallableDeclaration import org.jetbrains.kotlin.psi.KtClassOrObject import org.jetbrains.kotlin.psi.KtDeclaration diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/TypeInstantiationItems.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/TypeInstantiationItems.kt index 3dc05701e91..19421e7d39b 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/TypeInstantiationItems.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/TypeInstantiationItems.kt @@ -27,6 +27,7 @@ import com.intellij.psi.search.searches.ClassInheritorsSearch import org.jetbrains.kotlin.asJava.toLightClass import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.isFunctionType +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.annotations.Annotations import org.jetbrains.kotlin.idea.caches.resolve.util.resolveToDescriptor @@ -43,7 +44,6 @@ import org.jetbrains.kotlin.idea.resolve.ResolutionFacade import org.jetbrains.kotlin.idea.util.* import org.jetbrains.kotlin.incremental.components.NoLookupLocation import org.jetbrains.kotlin.load.java.sam.SamConstructorDescriptor -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.psi.KtClassOrObject import org.jetbrains.kotlin.psi.KtDeclaration import org.jetbrains.kotlin.resolve.BindingContext diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/ImportableFqNameClassifier.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/ImportableFqNameClassifier.kt index c181989b130..b5badfcf676 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/ImportableFqNameClassifier.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/ImportableFqNameClassifier.kt @@ -16,11 +16,10 @@ package org.jetbrains.kotlin.idea.core -import org.jetbrains.kotlin.builtins.DefaultBuiltIns +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.idea.util.ImportInsertHelper import org.jetbrains.kotlin.load.java.components.JavaAnnotationMapper import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.resolve.ImportPath import java.util.* diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluationBuilder.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluationBuilder.kt index e7279dd5b3c..092f6d353a6 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluationBuilder.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluationBuilder.kt @@ -45,6 +45,7 @@ import org.jetbrains.eval4j.jdi.asJdiValue import org.jetbrains.eval4j.jdi.asValue import org.jetbrains.eval4j.jdi.makeInitialFrame import org.jetbrains.kotlin.builtins.DefaultBuiltIns +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.caches.resolve.KotlinCacheService import org.jetbrains.kotlin.codegen.* import org.jetbrains.kotlin.codegen.binding.CodegenBinding @@ -70,7 +71,6 @@ import org.jetbrains.kotlin.idea.runInReadActionWithWriteActionPriorityWithPCE import org.jetbrains.kotlin.idea.util.application.runReadAction import org.jetbrains.kotlin.idea.util.attachment.attachmentByPsiFile import org.jetbrains.kotlin.idea.util.attachment.mergeAttachments -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.codeFragmentUtil.debugTypeInfo import org.jetbrains.kotlin.psi.codeFragmentUtil.suppressDiagnosticsInDebugMode diff --git a/idea/src/org/jetbrains/kotlin/idea/conversion/copy/DataForConversion.kt b/idea/src/org/jetbrains/kotlin/idea/conversion/copy/DataForConversion.kt index 683bb89fa52..3e5b5c59ab5 100644 --- a/idea/src/org/jetbrains/kotlin/idea/conversion/copy/DataForConversion.kt +++ b/idea/src/org/jetbrains/kotlin/idea/conversion/copy/DataForConversion.kt @@ -20,8 +20,8 @@ import com.intellij.lang.java.JavaLanguage import com.intellij.openapi.project.Project import com.intellij.openapi.util.TextRange import com.intellij.psi.* +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.name.FqNameUnsafe -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.psi.psiUtil.allChildren import org.jetbrains.kotlin.psi.psiUtil.elementsInRange import org.jetbrains.kotlin.psi.psiUtil.parentsWithSelf diff --git a/idea/src/org/jetbrains/kotlin/idea/conversion/copy/PlainTextPasteImportResolver.kt b/idea/src/org/jetbrains/kotlin/idea/conversion/copy/PlainTextPasteImportResolver.kt index 4d134c2df26..ae2144b531a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/conversion/copy/PlainTextPasteImportResolver.kt +++ b/idea/src/org/jetbrains/kotlin/idea/conversion/copy/PlainTextPasteImportResolver.kt @@ -19,6 +19,7 @@ package org.jetbrains.kotlin.idea.conversion.copy import com.intellij.psi.* import com.intellij.psi.search.PsiShortNamesCache import com.intellij.psi.util.PsiTreeUtil +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.DeclarationDescriptorWithVisibility import org.jetbrains.kotlin.idea.caches.project.getNullableModuleInfo @@ -30,14 +31,12 @@ import org.jetbrains.kotlin.idea.imports.canBeReferencedViaImport import org.jetbrains.kotlin.idea.references.mainReference import org.jetbrains.kotlin.idea.util.ProjectRootsUtil import org.jetbrains.kotlin.idea.util.application.runWriteAction -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.psi.KtDotQualifiedExpression import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtImportDirective import org.jetbrains.kotlin.psi.psiUtil.referenceExpression import java.util.* - class PlainTextPasteImportResolver(val dataForConversion: DataForConversion, val targetFile: KtFile) { private val file = dataForConversion.file diff --git a/idea/src/org/jetbrains/kotlin/idea/hierarchy/KotlinTypeHierarchyProvider.kt b/idea/src/org/jetbrains/kotlin/idea/hierarchy/KotlinTypeHierarchyProvider.kt index 6cf706c13ba..0fa1db097bc 100644 --- a/idea/src/org/jetbrains/kotlin/idea/hierarchy/KotlinTypeHierarchyProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/hierarchy/KotlinTypeHierarchyProvider.kt @@ -27,16 +27,15 @@ import com.intellij.openapi.project.Project import com.intellij.psi.* import com.intellij.psi.search.GlobalSearchScope import org.jetbrains.kotlin.asJava.toLightClass +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.config.TargetPlatformKind -import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny import org.jetbrains.kotlin.idea.caches.lightClasses.KtFakeLightClass -import org.jetbrains.kotlin.idea.caches.lightClasses.KtFakeLightMethod +import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny import org.jetbrains.kotlin.idea.project.targetPlatform import org.jetbrains.kotlin.idea.search.allScope import org.jetbrains.kotlin.idea.stubindex.KotlinClassShortNameIndex import org.jetbrains.kotlin.idea.util.ProjectRootsUtil import org.jetbrains.kotlin.idea.util.module -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.psi.KtClassOrObject import org.jetbrains.kotlin.psi.KtConstructor import org.jetbrains.kotlin.psi.KtNamedFunction diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/KotlinCommonIntentionActionsFactory.kt.172 b/idea/src/org/jetbrains/kotlin/idea/intentions/KotlinCommonIntentionActionsFactory.kt.172 index 6e043e9bb23..43701d71e89 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/KotlinCommonIntentionActionsFactory.kt.172 +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/KotlinCommonIntentionActionsFactory.kt.172 @@ -28,6 +28,7 @@ import com.intellij.psi.impl.source.tree.java.PsiReferenceExpressionImpl import org.jetbrains.kotlin.asJava.LightClassUtil import org.jetbrains.kotlin.asJava.elements.KtLightElement import org.jetbrains.kotlin.builtins.DefaultBuiltIns +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.idea.core.ShortenReferences import org.jetbrains.kotlin.idea.core.insertMembersAfter @@ -35,7 +36,6 @@ import org.jetbrains.kotlin.idea.quickfix.AddModifierFix import org.jetbrains.kotlin.idea.quickfix.RemoveModifierFix import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.KtPsiFactory.CallableBuilder import org.jetbrains.kotlin.psi.KtPsiFactory.CallableBuilder.Target.CONSTRUCTOR diff --git a/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/BuiltInDecompilerConsistencyTest.kt b/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/BuiltInDecompilerConsistencyTest.kt index 0e572e89942..58be7381afc 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/BuiltInDecompilerConsistencyTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/BuiltInDecompilerConsistencyTest.kt @@ -21,7 +21,6 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.search.GlobalSearchScope import com.intellij.util.indexing.FileContentImpl -import org.jetbrains.kotlin.builtins.BuiltInSerializerProtocol import org.jetbrains.kotlin.idea.caches.IDEKotlinBinaryClassCache import org.jetbrains.kotlin.idea.decompiler.builtIns.BuiltInDefinitionFile import org.jetbrains.kotlin.idea.decompiler.builtIns.KotlinBuiltInDecompiler @@ -32,6 +31,7 @@ import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescrip import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.psi.stubs.KotlinClassStub import org.jetbrains.kotlin.psi.stubs.elements.KtClassElementType +import org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInSerializerProtocol import org.junit.Assert class BuiltInDecompilerConsistencyTest : KotlinLightCodeInsightFixtureTestCase() { diff --git a/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/BuiltInDecompilerTest.kt b/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/BuiltInDecompilerTest.kt index 1698d28fe74..3c403b962a6 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/BuiltInDecompilerTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/BuiltInDecompilerTest.kt @@ -19,13 +19,13 @@ package org.jetbrains.kotlin.idea.decompiler.stubBuilder import com.intellij.psi.stubs.PsiFileStub import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase import com.intellij.util.indexing.FileContentImpl -import org.jetbrains.kotlin.builtins.BuiltInSerializerProtocol import org.jetbrains.kotlin.idea.decompiler.builtIns.KotlinBuiltInDecompiler import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor import org.jetbrains.kotlin.idea.test.PluginTestCaseBase import org.jetbrains.kotlin.metadata.builtins.BuiltInsBinaryVersion import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.psi.stubs.elements.KtFileStubBuilder +import org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInSerializerProtocol import org.jetbrains.kotlin.test.KotlinTestUtils import org.junit.Assert import java.io.File diff --git a/j2k/src/org/jetbrains/kotlin/j2k/importConversion.kt b/j2k/src/org/jetbrains/kotlin/j2k/importConversion.kt index fccd5a52c7a..1bee5ed585c 100644 --- a/j2k/src/org/jetbrains/kotlin/j2k/importConversion.kt +++ b/j2k/src/org/jetbrains/kotlin/j2k/importConversion.kt @@ -21,6 +21,7 @@ import org.jetbrains.kotlin.asJava.classes.KtLightClass import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade import org.jetbrains.kotlin.asJava.elements.KtLightDeclaration import org.jetbrains.kotlin.asJava.elements.KtLightMethod +import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl import org.jetbrains.kotlin.descriptors.PropertyDescriptor @@ -28,7 +29,6 @@ import org.jetbrains.kotlin.j2k.ast.Import import org.jetbrains.kotlin.j2k.ast.ImportList import org.jetbrains.kotlin.j2k.ast.assignPrototype import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.renderer.render import org.jetbrains.kotlin.resolve.annotations.hasJvmStaticAnnotation diff --git a/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/JsPlatformConfigurator.kt b/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/JsPlatformConfigurator.kt index 11ed611a7f3..e79c99733e9 100644 --- a/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/JsPlatformConfigurator.kt +++ b/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/JsPlatformConfigurator.kt @@ -16,13 +16,13 @@ package org.jetbrains.kotlin.js.resolve +import org.jetbrains.kotlin.builtins.PlatformToKotlinClassMap import org.jetbrains.kotlin.container.StorageComponentContainer import org.jetbrains.kotlin.container.useImpl import org.jetbrains.kotlin.container.useInstance import org.jetbrains.kotlin.js.analyze.JsNativeDiagnosticSuppressor import org.jetbrains.kotlin.js.naming.NameSuggestion import org.jetbrains.kotlin.js.resolve.diagnostics.* -import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap import org.jetbrains.kotlin.resolve.DeclarationReturnTypeSanitizer import org.jetbrains.kotlin.resolve.OverloadFilter import org.jetbrains.kotlin.resolve.OverridesBackwardCompatibilityHelper diff --git a/libraries/reflect/api/src/java9/java/kotlin/reflect/jvm/internal/impl/builtins/BuiltInsResourceLoader.java b/libraries/reflect/api/src/java9/java/kotlin/reflect/jvm/internal/impl/serialization/deserialization/builtins/BuiltInsResourceLoader.java similarity index 91% rename from libraries/reflect/api/src/java9/java/kotlin/reflect/jvm/internal/impl/builtins/BuiltInsResourceLoader.java rename to libraries/reflect/api/src/java9/java/kotlin/reflect/jvm/internal/impl/serialization/deserialization/builtins/BuiltInsResourceLoader.java index b71de6dd4cb..c7164e9d4c9 100644 --- a/libraries/reflect/api/src/java9/java/kotlin/reflect/jvm/internal/impl/builtins/BuiltInsResourceLoader.java +++ b/libraries/reflect/api/src/java9/java/kotlin/reflect/jvm/internal/impl/serialization/deserialization/builtins/BuiltInsResourceLoader.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package kotlin.reflect.jvm.internal.impl.builtins; +package kotlin.reflect.jvm.internal.impl.serialization.deserialization.builtins; import kotlin.Unit; diff --git a/libraries/reflect/api/src/java9/java/module-info.java b/libraries/reflect/api/src/java9/java/module-info.java index 23143dedc33..0834777bdf0 100644 --- a/libraries/reflect/api/src/java9/java/module-info.java +++ b/libraries/reflect/api/src/java9/java/module-info.java @@ -10,7 +10,7 @@ module kotlin.reflect { uses org.jetbrains.kotlin.resolve.ExternalOverridabilityCondition; uses org.jetbrains.kotlin.util.ModuleVisibilityHelper; - provides org.jetbrains.kotlin.builtins.BuiltInsLoader with org.jetbrains.kotlin.builtins.BuiltInsLoaderImpl; + provides org.jetbrains.kotlin.builtins.BuiltInsLoader with org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInsLoaderImpl; provides org.jetbrains.kotlin.resolve.ExternalOverridabilityCondition with org.jetbrains.kotlin.load.java.FieldOverridabilityCondition, org.jetbrains.kotlin.load.java.ErasedOverridabilityCondition,