Get rid of ModuleDescriptor#defaultImports, use DefaultImportProvider
This commit is contained in:
@@ -22,7 +22,6 @@ import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
|
||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.resolve.ImportPath
|
||||
import org.jetbrains.kotlin.resolve.TargetPlatform
|
||||
import org.jetbrains.kotlin.resolve.createModule
|
||||
import org.jetbrains.kotlin.storage.ExceptionTracker
|
||||
@@ -97,14 +96,9 @@ fun ModuleContext(module: ModuleDescriptor, project: Project): ModuleContext =
|
||||
fun GlobalContext.withProject(project: Project): ProjectContext = ProjectContextImpl(project, this)
|
||||
fun ProjectContext.withModule(module: ModuleDescriptor): ModuleContext = ModuleContextImpl(module, this)
|
||||
|
||||
fun ContextForNewModule(
|
||||
project: Project,
|
||||
moduleName: Name,
|
||||
defaultImports: List<ImportPath>,
|
||||
builtIns: KotlinBuiltIns
|
||||
): MutableModuleContext {
|
||||
fun ContextForNewModule(project: Project, moduleName: Name, builtIns: KotlinBuiltIns): MutableModuleContext {
|
||||
val projectContext = ProjectContext(project)
|
||||
val module = ModuleDescriptorImpl(moduleName, projectContext.storageManager, defaultImports, builtIns)
|
||||
val module = ModuleDescriptorImpl(moduleName, projectContext.storageManager, builtIns)
|
||||
return MutableModuleContextImpl(module, projectContext)
|
||||
}
|
||||
|
||||
|
||||
@@ -110,7 +110,7 @@ fun TargetPlatform.createModule(
|
||||
storageManager: StorageManager,
|
||||
builtIns: KotlinBuiltIns,
|
||||
capabilities: Map<ModuleDescriptor.Capability<*>, Any?> = emptyMap()
|
||||
) = ModuleDescriptorImpl(name, storageManager, defaultImports, builtIns, capabilities)
|
||||
) = ModuleDescriptorImpl(name, storageManager, builtIns, capabilities)
|
||||
|
||||
|
||||
fun createContainer(id: String, platform: TargetPlatform, init: StorageComponentContainer.() -> Unit)
|
||||
|
||||
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.isChildOf
|
||||
import org.jetbrains.kotlin.name.isSubpackageOf
|
||||
import org.jetbrains.kotlin.resolve.ImportPath
|
||||
import org.jetbrains.kotlin.resolve.TargetPlatform
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
|
||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||
import org.jetbrains.kotlin.storage.StorageManager
|
||||
@@ -31,11 +32,11 @@ import org.jetbrains.kotlin.utils.addToStdlib.check
|
||||
|
||||
class DefaultImportProvider(
|
||||
storageManager: StorageManager,
|
||||
private val moduleDescriptor: ModuleDescriptor
|
||||
moduleDescriptor: ModuleDescriptor,
|
||||
private val targetPlatform: TargetPlatform
|
||||
) {
|
||||
// TODO: get rid of ModuleDescriptor#defaultImports
|
||||
val defaultImports: List<ImportPath>
|
||||
get() = moduleDescriptor.defaultImports
|
||||
get() = targetPlatform.defaultImports
|
||||
|
||||
val excludedImports: List<FqName> by storageManager.createLazyValue {
|
||||
val packagesWithAliases = listOf(KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME, KotlinBuiltIns.TEXT_PACKAGE_FQ_NAME)
|
||||
|
||||
@@ -961,7 +961,7 @@ public class KotlinTestUtils {
|
||||
|
||||
@NotNull
|
||||
public static ModuleDescriptorImpl createEmptyModule(@NotNull String name, @NotNull TargetPlatform platform, KotlinBuiltIns builtIns) {
|
||||
return new ModuleDescriptorImpl(Name.special(name), LockBasedStorageManager.NO_LOCKS, platform.getDefaultImports(), builtIns);
|
||||
return new ModuleDescriptorImpl(Name.special(name), LockBasedStorageManager.NO_LOCKS, builtIns);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -37,7 +37,6 @@ import org.jetbrains.kotlin.renderer.DescriptorRenderer;
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRendererModifier;
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRendererOptions;
|
||||
import org.jetbrains.kotlin.renderer.OverrideRenderingPolicy;
|
||||
import org.jetbrains.kotlin.resolve.ImportPath;
|
||||
import org.jetbrains.kotlin.resolve.lazy.LazyResolveTestUtilsKt;
|
||||
import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyPackageDescriptor;
|
||||
import org.jetbrains.kotlin.serialization.deserialization.AdditionalClassPartsProvider;
|
||||
@@ -51,7 +50,6 @@ import org.jetbrains.kotlin.test.util.RecursiveDescriptorComparator;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.InputStream;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@@ -109,9 +107,8 @@ public class LoadBuiltinsTest extends KotlinTestWithEnvironment {
|
||||
@NotNull
|
||||
private static PackageFragmentProvider createBuiltInsPackageFragmentProvider() {
|
||||
LockBasedStorageManager storageManager = new LockBasedStorageManager();
|
||||
ModuleDescriptorImpl builtInsModule = new ModuleDescriptorImpl(
|
||||
KotlinBuiltIns.BUILTINS_MODULE_NAME, storageManager, Collections.<ImportPath>emptyList(), DefaultBuiltIns.getInstance()
|
||||
);
|
||||
ModuleDescriptorImpl builtInsModule =
|
||||
new ModuleDescriptorImpl(KotlinBuiltIns.BUILTINS_MODULE_NAME, storageManager, DefaultBuiltIns.getInstance());
|
||||
|
||||
PackageFragmentProvider packageFragmentProvider = createBuiltInPackageFragmentProvider(
|
||||
storageManager, builtInsModule, BUILT_INS_PACKAGE_FQ_NAMES,
|
||||
|
||||
+1
-1
@@ -45,7 +45,7 @@ class RuntimeModuleData private constructor(val deserialization: Deserialization
|
||||
fun create(classLoader: ClassLoader): RuntimeModuleData {
|
||||
val storageManager = LockBasedStorageManager()
|
||||
val builtIns = JvmBuiltIns(storageManager)
|
||||
val module = ModuleDescriptorImpl(Name.special("<runtime module for $classLoader>"), storageManager, emptyList(), builtIns)
|
||||
val module = ModuleDescriptorImpl(Name.special("<runtime module for $classLoader>"), storageManager, builtIns)
|
||||
|
||||
val reflectKotlinClassFinder = ReflectKotlinClassFinder(classLoader)
|
||||
val deserializedDescriptorResolver = DeserializedDescriptorResolver(RuntimeErrorReporter)
|
||||
|
||||
@@ -30,7 +30,6 @@ import org.jetbrains.kotlin.name.FqName;
|
||||
import org.jetbrains.kotlin.name.FqNameUnsafe;
|
||||
import org.jetbrains.kotlin.name.Name;
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
||||
import org.jetbrains.kotlin.resolve.ImportPath;
|
||||
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||
import org.jetbrains.kotlin.serialization.deserialization.AdditionalClassPartsProvider;
|
||||
import org.jetbrains.kotlin.serialization.deserialization.PlatformDependentDeclarationFilter;
|
||||
@@ -82,7 +81,7 @@ public abstract class KotlinBuiltIns {
|
||||
|
||||
protected KotlinBuiltIns(@NotNull StorageManager storageManager) {
|
||||
this.storageManager = storageManager;
|
||||
builtInsModule = new ModuleDescriptorImpl(BUILTINS_MODULE_NAME, storageManager, Collections.<ImportPath>emptyList(), this);
|
||||
builtInsModule = new ModuleDescriptorImpl(BUILTINS_MODULE_NAME, storageManager, this);
|
||||
|
||||
PackageFragmentProvider packageFragmentProvider = BuiltInsPackageFragmentProviderKt.createBuiltInPackageFragmentProvider(
|
||||
storageManager, builtInsModule, BUILT_INS_PACKAGE_FQ_NAMES,
|
||||
|
||||
@@ -19,7 +19,6 @@ package org.jetbrains.kotlin.descriptors
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.resolve.ImportPath
|
||||
import org.jetbrains.kotlin.types.TypeSubstitutor
|
||||
|
||||
interface ModuleDescriptor : DeclarationDescriptor {
|
||||
@@ -41,8 +40,6 @@ interface ModuleDescriptor : DeclarationDescriptor {
|
||||
|
||||
fun getSubPackagesOf(fqName: FqName, nameFilter: (Name) -> Boolean): Collection<FqName>
|
||||
|
||||
val defaultImports: List<ImportPath>
|
||||
|
||||
/**
|
||||
* @return dependent modules in the same order in which this module depends on them. Does not include `this`
|
||||
*/
|
||||
|
||||
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.descriptors.PackageViewDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.resolve.ImportPath
|
||||
import org.jetbrains.kotlin.storage.StorageManager
|
||||
import org.jetbrains.kotlin.utils.sure
|
||||
import java.lang.IllegalArgumentException
|
||||
@@ -31,7 +30,6 @@ import java.lang.IllegalArgumentException
|
||||
class ModuleDescriptorImpl @JvmOverloads constructor(
|
||||
moduleName: Name,
|
||||
private val storageManager: StorageManager,
|
||||
override val defaultImports: List<ImportPath>,
|
||||
override val builtIns: KotlinBuiltIns,
|
||||
private val capabilities: Map<ModuleDescriptor.Capability<*>, Any?> = emptyMap()
|
||||
) : DeclarationDescriptorImpl(Annotations.EMPTY, moduleName), ModuleDescriptor {
|
||||
|
||||
@@ -30,7 +30,6 @@ import org.jetbrains.kotlin.descriptors.impl.TypeParameterDescriptorImpl;
|
||||
import org.jetbrains.kotlin.incremental.components.LookupLocation;
|
||||
import org.jetbrains.kotlin.name.FqName;
|
||||
import org.jetbrains.kotlin.name.Name;
|
||||
import org.jetbrains.kotlin.resolve.ImportPath;
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt;
|
||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter;
|
||||
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||
@@ -56,12 +55,6 @@ public class ErrorUtils {
|
||||
return null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public List<ImportPath> getDefaultImports() {
|
||||
return emptyList();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Annotations getAnnotations() {
|
||||
@@ -70,9 +63,7 @@ public class ErrorUtils {
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Collection<FqName> getSubPackagesOf(
|
||||
@NotNull FqName fqName, @NotNull Function1<? super Name, Boolean> nameFilter
|
||||
) {
|
||||
public Collection<FqName> getSubPackagesOf(@NotNull FqName fqName, @NotNull Function1<? super Name, Boolean> nameFilter) {
|
||||
return emptyList();
|
||||
}
|
||||
|
||||
|
||||
+2
-4
@@ -57,7 +57,6 @@ import org.jetbrains.kotlin.platform.JavaToKotlinClassMap;
|
||||
import org.jetbrains.kotlin.psi.*;
|
||||
import org.jetbrains.kotlin.resolve.BindingTraceContext;
|
||||
import org.jetbrains.kotlin.resolve.TargetPlatform;
|
||||
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform;
|
||||
import org.jetbrains.kotlin.resolve.lazy.KotlinCodeAnalyzer;
|
||||
import org.jetbrains.kotlin.resolve.lazy.ResolveSession;
|
||||
import org.jetbrains.kotlin.resolve.lazy.declarations.FileBasedDeclarationProviderFactory;
|
||||
@@ -236,9 +235,8 @@ public class SourceNavigationHelper {
|
||||
@NotNull Collection<KtNamedDeclaration> candidates,
|
||||
@NotNull Project project
|
||||
) {
|
||||
MutableModuleContext newModuleContext = ContextKt.ContextForNewModule(
|
||||
project, Name.special("<library module>"), JvmPlatform.INSTANCE.getDefaultImports(), DefaultBuiltIns.getInstance()
|
||||
);
|
||||
MutableModuleContext newModuleContext =
|
||||
ContextKt.ContextForNewModule(project, Name.special("<library module>"), DefaultBuiltIns.getInstance());
|
||||
|
||||
newModuleContext.setDependencies(newModuleContext.getModule(), newModuleContext.getModule().getBuiltIns().getBuiltInsModule());
|
||||
|
||||
|
||||
+1
-1
@@ -60,7 +60,7 @@ abstract class DeserializerForDecompilerBase(
|
||||
protected fun createDummyPackageFragment(fqName: FqName): MutablePackageFragmentDescriptor =
|
||||
MutablePackageFragmentDescriptor(moduleDescriptor, fqName)
|
||||
|
||||
private fun createDummyModule(name: String) = ModuleDescriptorImpl(Name.special("<$name>"), storageManager, emptyList(), builtIns)
|
||||
private fun createDummyModule(name: String) = ModuleDescriptorImpl(Name.special("<$name>"), storageManager, builtIns)
|
||||
|
||||
init {
|
||||
moduleDescriptor.initialize(packageFragmentProvider)
|
||||
|
||||
Reference in New Issue
Block a user