Move PlatformToKotlinClassMap out from ModuleParameters
Configure it in the same way as other platform-specific components instead, simplify some code
This commit is contained in:
@@ -19,8 +19,6 @@ package org.jetbrains.kotlin.resolve.jvm.platform
|
|||||||
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleParameters
|
import org.jetbrains.kotlin.descriptors.ModuleParameters
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.platform.JavaToKotlinClassMap
|
|
||||||
import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap
|
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||||
import org.jetbrains.kotlin.resolve.ImportPath
|
import org.jetbrains.kotlin.resolve.ImportPath
|
||||||
import org.jetbrains.kotlin.resolve.PlatformConfigurator
|
import org.jetbrains.kotlin.resolve.PlatformConfigurator
|
||||||
@@ -31,8 +29,6 @@ import java.util.*
|
|||||||
|
|
||||||
object JvmPlatform : TargetPlatform("JVM") {
|
object JvmPlatform : TargetPlatform("JVM") {
|
||||||
override val defaultModuleParameters = object : ModuleParameters {
|
override val defaultModuleParameters = object : ModuleParameters {
|
||||||
override val platformToKotlinClassMap: PlatformToKotlinClassMap
|
|
||||||
get() = JavaToKotlinClassMap.INSTANCE
|
|
||||||
override val defaultImports: List<ImportPath>
|
override val defaultImports: List<ImportPath>
|
||||||
get() = DEFAULT_IMPORTS_FOR_JVM
|
get() = DEFAULT_IMPORTS_FOR_JVM
|
||||||
override val excludedImports: List<FqName>
|
override val excludedImports: List<FqName>
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.descriptors.ModuleParameters
|
|||||||
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
|
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap
|
|
||||||
import org.jetbrains.kotlin.resolve.TargetPlatform
|
import org.jetbrains.kotlin.resolve.TargetPlatform
|
||||||
import org.jetbrains.kotlin.resolve.createModule
|
import org.jetbrains.kotlin.resolve.createModule
|
||||||
import org.jetbrains.kotlin.storage.ExceptionTracker
|
import org.jetbrains.kotlin.storage.ExceptionTracker
|
||||||
@@ -41,9 +40,6 @@ interface ProjectContext : GlobalContext {
|
|||||||
|
|
||||||
interface ModuleContext : ProjectContext {
|
interface ModuleContext : ProjectContext {
|
||||||
val module: ModuleDescriptor
|
val module: ModuleDescriptor
|
||||||
|
|
||||||
val platformToKotlinClassMap: PlatformToKotlinClassMap
|
|
||||||
get() = module.platformToKotlinClassMap
|
|
||||||
}
|
}
|
||||||
|
|
||||||
interface MutableModuleContext: ModuleContext {
|
interface MutableModuleContext: ModuleContext {
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ fun StorageComponentContainer.configureModule(
|
|||||||
useInstance(moduleContext.project)
|
useInstance(moduleContext.project)
|
||||||
useInstance(moduleContext.storageManager)
|
useInstance(moduleContext.storageManager)
|
||||||
useInstance(moduleContext.module.builtIns)
|
useInstance(moduleContext.module.builtIns)
|
||||||
useInstance(moduleContext.platformToKotlinClassMap)
|
|
||||||
|
|
||||||
useInstance(platform)
|
useInstance(platform)
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -32,7 +32,6 @@ import org.jetbrains.kotlin.load.kotlin.DeserializationComponentsForJava
|
|||||||
import org.jetbrains.kotlin.load.kotlin.DeserializedDescriptorResolver
|
import org.jetbrains.kotlin.load.kotlin.DeserializedDescriptorResolver
|
||||||
import org.jetbrains.kotlin.load.kotlin.JavaClassDataFinder
|
import org.jetbrains.kotlin.load.kotlin.JavaClassDataFinder
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.platform.JavaToKotlinClassMap
|
|
||||||
import org.jetbrains.kotlin.platform.JvmBuiltIns
|
import org.jetbrains.kotlin.platform.JvmBuiltIns
|
||||||
import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver
|
import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.DeserializationComponents
|
import org.jetbrains.kotlin.serialization.deserialization.DeserializationComponents
|
||||||
@@ -46,8 +45,9 @@ class RuntimeModuleData private constructor(val deserialization: Deserialization
|
|||||||
fun create(classLoader: ClassLoader): RuntimeModuleData {
|
fun create(classLoader: ClassLoader): RuntimeModuleData {
|
||||||
val storageManager = LockBasedStorageManager()
|
val storageManager = LockBasedStorageManager()
|
||||||
val builtIns = JvmBuiltIns(storageManager)
|
val builtIns = JvmBuiltIns(storageManager)
|
||||||
val module = ModuleDescriptorImpl(Name.special("<runtime module for $classLoader>"), storageManager,
|
val module = ModuleDescriptorImpl(
|
||||||
ModuleParameters(emptyList(), emptyList(), JavaToKotlinClassMap.INSTANCE), builtIns)
|
Name.special("<runtime module for $classLoader>"), storageManager, ModuleParameters.Empty, builtIns
|
||||||
|
)
|
||||||
|
|
||||||
val reflectKotlinClassFinder = ReflectKotlinClassFinder(classLoader)
|
val reflectKotlinClassFinder = ReflectKotlinClassFinder(classLoader)
|
||||||
val deserializedDescriptorResolver = DeserializedDescriptorResolver(RuntimeErrorReporter)
|
val deserializedDescriptorResolver = DeserializedDescriptorResolver(RuntimeErrorReporter)
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ package org.jetbrains.kotlin.descriptors
|
|||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap
|
|
||||||
import org.jetbrains.kotlin.resolve.ImportPath
|
import org.jetbrains.kotlin.resolve.ImportPath
|
||||||
import org.jetbrains.kotlin.types.TypeSubstitutor
|
import org.jetbrains.kotlin.types.TypeSubstitutor
|
||||||
|
|
||||||
@@ -50,17 +49,8 @@ interface ModuleDescriptor : DeclarationDescriptor, ModuleParameters {
|
|||||||
interface ModuleParameters {
|
interface ModuleParameters {
|
||||||
val defaultImports: List<ImportPath>
|
val defaultImports: List<ImportPath>
|
||||||
val excludedImports: List<FqName> get() = emptyList()
|
val excludedImports: List<FqName> get() = emptyList()
|
||||||
val platformToKotlinClassMap: PlatformToKotlinClassMap
|
|
||||||
|
|
||||||
object Empty: ModuleParameters {
|
object Empty : ModuleParameters {
|
||||||
override val defaultImports: List<ImportPath> = emptyList()
|
override val defaultImports: List<ImportPath> = emptyList()
|
||||||
override val platformToKotlinClassMap: PlatformToKotlinClassMap = PlatformToKotlinClassMap.EMPTY
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun ModuleParameters(defaultImports: List<ImportPath>, excludedImports: List<FqName>, platformToKotlinClassMap: PlatformToKotlinClassMap): ModuleParameters =
|
|
||||||
object : ModuleParameters {
|
|
||||||
override val defaultImports: List<ImportPath> = defaultImports
|
|
||||||
override val excludedImports: List<FqName> get() = excludedImports
|
|
||||||
override val platformToKotlinClassMap: PlatformToKotlinClassMap = platformToKotlinClassMap
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -23,14 +23,13 @@ import org.jetbrains.kotlin.builtins.DefaultBuiltIns;
|
|||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
|
||||||
import org.jetbrains.kotlin.descriptors.*;
|
import org.jetbrains.kotlin.descriptors.*;
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ClassDescriptorImpl;
|
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ClassConstructorDescriptorImpl;
|
import org.jetbrains.kotlin.descriptors.impl.ClassConstructorDescriptorImpl;
|
||||||
|
import org.jetbrains.kotlin.descriptors.impl.ClassDescriptorImpl;
|
||||||
import org.jetbrains.kotlin.descriptors.impl.PropertyDescriptorImpl;
|
import org.jetbrains.kotlin.descriptors.impl.PropertyDescriptorImpl;
|
||||||
import org.jetbrains.kotlin.descriptors.impl.TypeParameterDescriptorImpl;
|
import org.jetbrains.kotlin.descriptors.impl.TypeParameterDescriptorImpl;
|
||||||
import org.jetbrains.kotlin.incremental.components.LookupLocation;
|
import org.jetbrains.kotlin.incremental.components.LookupLocation;
|
||||||
import org.jetbrains.kotlin.name.FqName;
|
import org.jetbrains.kotlin.name.FqName;
|
||||||
import org.jetbrains.kotlin.name.Name;
|
import org.jetbrains.kotlin.name.Name;
|
||||||
import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap;
|
|
||||||
import org.jetbrains.kotlin.resolve.ImportPath;
|
import org.jetbrains.kotlin.resolve.ImportPath;
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt;
|
import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter;
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter;
|
||||||
@@ -57,12 +56,6 @@ public class ErrorUtils {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
@Override
|
|
||||||
public PlatformToKotlinClassMap getPlatformToKotlinClassMap() {
|
|
||||||
throw new IllegalStateException("Should not be called!");
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public List<ImportPath> getDefaultImports() {
|
public List<ImportPath> getDefaultImports() {
|
||||||
|
|||||||
+2
-14
@@ -46,8 +46,6 @@ import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl;
|
|||||||
import org.jetbrains.kotlin.context.ContextKt;
|
import org.jetbrains.kotlin.context.ContextKt;
|
||||||
import org.jetbrains.kotlin.context.MutableModuleContext;
|
import org.jetbrains.kotlin.context.MutableModuleContext;
|
||||||
import org.jetbrains.kotlin.descriptors.CallableDescriptor;
|
import org.jetbrains.kotlin.descriptors.CallableDescriptor;
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptorKt;
|
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleParameters;
|
|
||||||
import org.jetbrains.kotlin.frontend.di.InjectionKt;
|
import org.jetbrains.kotlin.frontend.di.InjectionKt;
|
||||||
import org.jetbrains.kotlin.idea.stubindex.*;
|
import org.jetbrains.kotlin.idea.stubindex.*;
|
||||||
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil;
|
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil;
|
||||||
@@ -56,7 +54,6 @@ import org.jetbrains.kotlin.name.ClassId;
|
|||||||
import org.jetbrains.kotlin.name.FqName;
|
import org.jetbrains.kotlin.name.FqName;
|
||||||
import org.jetbrains.kotlin.name.Name;
|
import org.jetbrains.kotlin.name.Name;
|
||||||
import org.jetbrains.kotlin.platform.JavaToKotlinClassMap;
|
import org.jetbrains.kotlin.platform.JavaToKotlinClassMap;
|
||||||
import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap;
|
|
||||||
import org.jetbrains.kotlin.psi.*;
|
import org.jetbrains.kotlin.psi.*;
|
||||||
import org.jetbrains.kotlin.resolve.BindingTraceContext;
|
import org.jetbrains.kotlin.resolve.BindingTraceContext;
|
||||||
import org.jetbrains.kotlin.resolve.TargetPlatform;
|
import org.jetbrains.kotlin.resolve.TargetPlatform;
|
||||||
@@ -239,17 +236,8 @@ public class SourceNavigationHelper {
|
|||||||
@NotNull Collection<KtNamedDeclaration> candidates,
|
@NotNull Collection<KtNamedDeclaration> candidates,
|
||||||
@NotNull Project project
|
@NotNull Project project
|
||||||
) {
|
) {
|
||||||
|
|
||||||
TargetPlatform platform = TargetPlatform.Default.INSTANCE;
|
|
||||||
ModuleParameters defaultJvmModuleParameters = JvmPlatform.INSTANCE.getDefaultModuleParameters();
|
|
||||||
MutableModuleContext newModuleContext = ContextKt.ContextForNewModule(
|
MutableModuleContext newModuleContext = ContextKt.ContextForNewModule(
|
||||||
project, Name.special("<library module>"),
|
project, Name.special("<library module>"), JvmPlatform.INSTANCE.getDefaultModuleParameters(), DefaultBuiltIns.getInstance()
|
||||||
ModuleDescriptorKt.ModuleParameters(
|
|
||||||
defaultJvmModuleParameters.getDefaultImports(),
|
|
||||||
defaultJvmModuleParameters.getExcludedImports(),
|
|
||||||
PlatformToKotlinClassMap.EMPTY
|
|
||||||
),
|
|
||||||
DefaultBuiltIns.getInstance()
|
|
||||||
);
|
);
|
||||||
|
|
||||||
newModuleContext.setDependencies(newModuleContext.getModule(), newModuleContext.getModule().getBuiltIns().getBuiltInsModule());
|
newModuleContext.setDependencies(newModuleContext.getModule(), newModuleContext.getModule().getBuiltIns().getBuiltInsModule());
|
||||||
@@ -263,7 +251,7 @@ public class SourceNavigationHelper {
|
|||||||
newModuleContext,
|
newModuleContext,
|
||||||
providerFactory,
|
providerFactory,
|
||||||
new BindingTraceContext(),
|
new BindingTraceContext(),
|
||||||
platform,
|
TargetPlatform.Default.INSTANCE,
|
||||||
LanguageVersionSettingsImpl.DEFAULT // TODO: see KT-12410
|
LanguageVersionSettingsImpl.DEFAULT // TODO: see KT-12410
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ import com.google.common.collect.ImmutableList
|
|||||||
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleParameters
|
import org.jetbrains.kotlin.descriptors.ModuleParameters
|
||||||
import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap
|
|
||||||
import org.jetbrains.kotlin.resolve.ImportPath
|
import org.jetbrains.kotlin.resolve.ImportPath
|
||||||
import org.jetbrains.kotlin.resolve.PlatformConfigurator
|
import org.jetbrains.kotlin.resolve.PlatformConfigurator
|
||||||
import org.jetbrains.kotlin.resolve.TargetPlatform
|
import org.jetbrains.kotlin.resolve.TargetPlatform
|
||||||
@@ -37,9 +36,6 @@ object JsPlatform : TargetPlatform("JS") {
|
|||||||
ImportPath("kotlin.text.*"),
|
ImportPath("kotlin.text.*"),
|
||||||
ImportPath("kotlin.js.*")
|
ImportPath("kotlin.js.*")
|
||||||
)
|
)
|
||||||
|
|
||||||
override val platformToKotlinClassMap: PlatformToKotlinClassMap
|
|
||||||
get() = PlatformToKotlinClassMap.EMPTY
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override val platformConfigurator: PlatformConfigurator = JsPlatformConfigurator
|
override val platformConfigurator: PlatformConfigurator = JsPlatformConfigurator
|
||||||
|
|||||||
Reference in New Issue
Block a user