Drop ModuleParameters, inline defaultImports everywhere
This commit is contained in:
+25
-30
@@ -17,8 +17,6 @@
|
|||||||
package org.jetbrains.kotlin.resolve.jvm.platform
|
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.name.FqName
|
|
||||||
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
|
||||||
@@ -28,34 +26,31 @@ import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
|||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
object JvmPlatform : TargetPlatform("JVM") {
|
object JvmPlatform : TargetPlatform("JVM") {
|
||||||
override val defaultModuleParameters = object : ModuleParameters {
|
override val defaultImports: List<ImportPath>
|
||||||
override val defaultImports: List<ImportPath>
|
get() = ArrayList<ImportPath>().apply {
|
||||||
get() = DEFAULT_IMPORTS_FOR_JVM
|
add(ImportPath("java.lang.*"))
|
||||||
}
|
add(ImportPath("kotlin.*"))
|
||||||
|
add(ImportPath("kotlin.annotation.*"))
|
||||||
|
add(ImportPath("kotlin.jvm.*"))
|
||||||
|
add(ImportPath("kotlin.collections.*"))
|
||||||
|
add(ImportPath("kotlin.coroutines.*"))
|
||||||
|
add(ImportPath("kotlin.ranges.*"))
|
||||||
|
add(ImportPath("kotlin.sequences.*"))
|
||||||
|
add(ImportPath("kotlin.text.*"))
|
||||||
|
add(ImportPath("kotlin.io.*"))
|
||||||
|
|
||||||
|
fun addAllClassifiersFromScope(scope: MemberScope) {
|
||||||
|
for (descriptor in scope.getContributedDescriptors(DescriptorKindFilter.CLASSIFIERS, MemberScope.ALL_NAME_FILTER)) {
|
||||||
|
add(ImportPath(DescriptorUtils.getFqNameSafe(descriptor), false))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val builtIns = DefaultBuiltIns.Instance
|
||||||
|
for (builtinPackageFragment in builtIns.builtInsPackageFragments) {
|
||||||
|
addAllClassifiersFromScope(builtinPackageFragment.getMemberScope())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
override val platformConfigurator: PlatformConfigurator = JvmPlatformConfigurator
|
override val platformConfigurator: PlatformConfigurator = JvmPlatformConfigurator
|
||||||
}
|
}
|
||||||
|
|
||||||
private val DEFAULT_IMPORTS_FOR_JVM: List<ImportPath> = ArrayList<ImportPath>().apply {
|
|
||||||
add(ImportPath("java.lang.*"))
|
|
||||||
add(ImportPath("kotlin.*"))
|
|
||||||
add(ImportPath("kotlin.annotation.*"))
|
|
||||||
add(ImportPath("kotlin.jvm.*"))
|
|
||||||
add(ImportPath("kotlin.collections.*"))
|
|
||||||
add(ImportPath("kotlin.coroutines.*"))
|
|
||||||
add(ImportPath("kotlin.ranges.*"))
|
|
||||||
add(ImportPath("kotlin.sequences.*"))
|
|
||||||
add(ImportPath("kotlin.text.*"))
|
|
||||||
add(ImportPath("kotlin.io.*"))
|
|
||||||
|
|
||||||
fun addAllClassifiersFromScope(scope: MemberScope) {
|
|
||||||
for (descriptor in scope.getContributedDescriptors(DescriptorKindFilter.CLASSIFIERS, MemberScope.ALL_NAME_FILTER)) {
|
|
||||||
add(ImportPath(DescriptorUtils.getFqNameSafe(descriptor), false))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val builtIns = DefaultBuiltIns.Instance
|
|
||||||
for (builtinPackageFragment in builtIns.builtInsPackageFragments) {
|
|
||||||
addAllClassifiersFromScope(builtinPackageFragment.getMemberScope())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -19,10 +19,10 @@ package org.jetbrains.kotlin.context
|
|||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||||
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.resolve.ImportPath
|
||||||
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
|
||||||
@@ -100,11 +100,11 @@ fun ProjectContext.withModule(module: ModuleDescriptor): ModuleContext = ModuleC
|
|||||||
fun ContextForNewModule(
|
fun ContextForNewModule(
|
||||||
project: Project,
|
project: Project,
|
||||||
moduleName: Name,
|
moduleName: Name,
|
||||||
parameters: ModuleParameters,
|
defaultImports: List<ImportPath>,
|
||||||
builtIns: KotlinBuiltIns
|
builtIns: KotlinBuiltIns
|
||||||
): MutableModuleContext {
|
): MutableModuleContext {
|
||||||
val projectContext = ProjectContext(project)
|
val projectContext = ProjectContext(project)
|
||||||
val module = ModuleDescriptorImpl(moduleName, projectContext.storageManager, parameters, builtIns)
|
val module = ModuleDescriptorImpl(moduleName, projectContext.storageManager, defaultImports, builtIns)
|
||||||
return MutableModuleContextImpl(module, projectContext)
|
return MutableModuleContextImpl(module, projectContext)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.container.StorageComponentContainer
|
|||||||
import org.jetbrains.kotlin.container.composeContainer
|
import org.jetbrains.kotlin.container.composeContainer
|
||||||
import org.jetbrains.kotlin.container.useInstance
|
import org.jetbrains.kotlin.container.useInstance
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleParameters
|
|
||||||
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.platform.PlatformToKotlinClassMap
|
||||||
@@ -33,18 +32,14 @@ import org.jetbrains.kotlin.resolve.scopes.SyntheticScopes
|
|||||||
import org.jetbrains.kotlin.storage.StorageManager
|
import org.jetbrains.kotlin.storage.StorageManager
|
||||||
import org.jetbrains.kotlin.types.DynamicTypesSettings
|
import org.jetbrains.kotlin.types.DynamicTypesSettings
|
||||||
|
|
||||||
abstract class TargetPlatform(
|
abstract class TargetPlatform(val platformName: String) {
|
||||||
val platformName: String
|
override fun toString() = platformName
|
||||||
) {
|
|
||||||
override fun toString(): String {
|
|
||||||
return platformName
|
|
||||||
}
|
|
||||||
|
|
||||||
abstract val platformConfigurator: PlatformConfigurator
|
abstract val platformConfigurator: PlatformConfigurator
|
||||||
abstract val defaultModuleParameters: ModuleParameters
|
abstract val defaultImports: List<ImportPath>
|
||||||
|
|
||||||
object Default : TargetPlatform("Default") {
|
object Default : TargetPlatform("Default") {
|
||||||
override val defaultModuleParameters = ModuleParameters.Empty
|
override val defaultImports = emptyList<ImportPath>()
|
||||||
override val platformConfigurator =
|
override val platformConfigurator =
|
||||||
object : PlatformConfigurator(DynamicTypesSettings(), listOf(), listOf(), listOf(), listOf(), listOf(),
|
object : PlatformConfigurator(DynamicTypesSettings(), listOf(), listOf(), listOf(), listOf(), listOf(),
|
||||||
IdentifierChecker.DEFAULT, OverloadFilter.DEFAULT, PlatformToKotlinClassMap.EMPTY) {
|
IdentifierChecker.DEFAULT, OverloadFilter.DEFAULT, PlatformToKotlinClassMap.EMPTY) {
|
||||||
@@ -115,7 +110,7 @@ fun TargetPlatform.createModule(
|
|||||||
storageManager: StorageManager,
|
storageManager: StorageManager,
|
||||||
builtIns: KotlinBuiltIns,
|
builtIns: KotlinBuiltIns,
|
||||||
capabilities: Map<ModuleDescriptor.Capability<*>, Any?> = emptyMap()
|
capabilities: Map<ModuleDescriptor.Capability<*>, Any?> = emptyMap()
|
||||||
) = ModuleDescriptorImpl(name, storageManager, defaultModuleParameters, builtIns, capabilities)
|
) = ModuleDescriptorImpl(name, storageManager, defaultImports, builtIns, capabilities)
|
||||||
|
|
||||||
|
|
||||||
fun createContainer(id: String, platform: TargetPlatform, init: StorageComponentContainer.() -> Unit)
|
fun createContainer(id: String, platform: TargetPlatform, init: StorageComponentContainer.() -> Unit)
|
||||||
|
|||||||
@@ -961,9 +961,7 @@ public class KotlinTestUtils {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static ModuleDescriptorImpl createEmptyModule(@NotNull String name, @NotNull TargetPlatform platform, KotlinBuiltIns builtIns) {
|
public static ModuleDescriptorImpl createEmptyModule(@NotNull String name, @NotNull TargetPlatform platform, KotlinBuiltIns builtIns) {
|
||||||
return new ModuleDescriptorImpl(
|
return new ModuleDescriptorImpl(Name.special(name), LockBasedStorageManager.NO_LOCKS, platform.getDefaultImports(), builtIns);
|
||||||
Name.special(name), LockBasedStorageManager.NO_LOCKS, platform.getDefaultModuleParameters(), builtIns
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
@@ -28,7 +28,6 @@ import org.jetbrains.kotlin.builtins.functions.BuiltInFictitiousFunctionClassFac
|
|||||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment;
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment;
|
||||||
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime;
|
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime;
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleParameters;
|
|
||||||
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor;
|
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor;
|
||||||
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;
|
||||||
@@ -38,6 +37,7 @@ import org.jetbrains.kotlin.renderer.DescriptorRenderer;
|
|||||||
import org.jetbrains.kotlin.renderer.DescriptorRendererModifier;
|
import org.jetbrains.kotlin.renderer.DescriptorRendererModifier;
|
||||||
import org.jetbrains.kotlin.renderer.DescriptorRendererOptions;
|
import org.jetbrains.kotlin.renderer.DescriptorRendererOptions;
|
||||||
import org.jetbrains.kotlin.renderer.OverrideRenderingPolicy;
|
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.LazyResolveTestUtilsKt;
|
||||||
import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyPackageDescriptor;
|
import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyPackageDescriptor;
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.AdditionalClassPartsProvider;
|
import org.jetbrains.kotlin.serialization.deserialization.AdditionalClassPartsProvider;
|
||||||
@@ -51,6 +51,7 @@ import org.jetbrains.kotlin.test.util.RecursiveDescriptorComparator;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
@@ -109,7 +110,7 @@ public class LoadBuiltinsTest extends KotlinTestWithEnvironment {
|
|||||||
private static PackageFragmentProvider createBuiltInsPackageFragmentProvider() {
|
private static PackageFragmentProvider createBuiltInsPackageFragmentProvider() {
|
||||||
LockBasedStorageManager storageManager = new LockBasedStorageManager();
|
LockBasedStorageManager storageManager = new LockBasedStorageManager();
|
||||||
ModuleDescriptorImpl builtInsModule = new ModuleDescriptorImpl(
|
ModuleDescriptorImpl builtInsModule = new ModuleDescriptorImpl(
|
||||||
KotlinBuiltIns.BUILTINS_MODULE_NAME, storageManager, ModuleParameters.Empty.INSTANCE, DefaultBuiltIns.getInstance()
|
KotlinBuiltIns.BUILTINS_MODULE_NAME, storageManager, Collections.<ImportPath>emptyList(), DefaultBuiltIns.getInstance()
|
||||||
);
|
);
|
||||||
|
|
||||||
PackageFragmentProvider packageFragmentProvider = createBuiltInPackageFragmentProvider(
|
PackageFragmentProvider packageFragmentProvider = createBuiltInPackageFragmentProvider(
|
||||||
|
|||||||
+1
-4
@@ -18,7 +18,6 @@ package org.jetbrains.kotlin.load.kotlin.reflect
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.builtins.ReflectionTypes
|
import org.jetbrains.kotlin.builtins.ReflectionTypes
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleParameters
|
|
||||||
import org.jetbrains.kotlin.descriptors.SupertypeLoopChecker
|
import org.jetbrains.kotlin.descriptors.SupertypeLoopChecker
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||||
@@ -46,9 +45,7 @@ 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(
|
val module = ModuleDescriptorImpl(Name.special("<runtime module for $classLoader>"), storageManager, emptyList(), 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)
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import org.jetbrains.kotlin.name.FqName;
|
|||||||
import org.jetbrains.kotlin.name.FqNameUnsafe;
|
import org.jetbrains.kotlin.name.FqNameUnsafe;
|
||||||
import org.jetbrains.kotlin.name.Name;
|
import org.jetbrains.kotlin.name.Name;
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
||||||
|
import org.jetbrains.kotlin.resolve.ImportPath;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.AdditionalClassPartsProvider;
|
import org.jetbrains.kotlin.serialization.deserialization.AdditionalClassPartsProvider;
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.PlatformDependentDeclarationFilter;
|
import org.jetbrains.kotlin.serialization.deserialization.PlatformDependentDeclarationFilter;
|
||||||
@@ -81,9 +82,7 @@ public abstract class KotlinBuiltIns {
|
|||||||
|
|
||||||
protected KotlinBuiltIns(@NotNull StorageManager storageManager) {
|
protected KotlinBuiltIns(@NotNull StorageManager storageManager) {
|
||||||
this.storageManager = storageManager;
|
this.storageManager = storageManager;
|
||||||
builtInsModule = new ModuleDescriptorImpl(
|
builtInsModule = new ModuleDescriptorImpl(BUILTINS_MODULE_NAME, storageManager, Collections.<ImportPath>emptyList(), this);
|
||||||
BUILTINS_MODULE_NAME, storageManager, ModuleParameters.Empty.INSTANCE, this
|
|
||||||
);
|
|
||||||
|
|
||||||
PackageFragmentProvider packageFragmentProvider = BuiltInsPackageFragmentProviderKt.createBuiltInPackageFragmentProvider(
|
PackageFragmentProvider packageFragmentProvider = BuiltInsPackageFragmentProviderKt.createBuiltInPackageFragmentProvider(
|
||||||
storageManager, builtInsModule, BUILT_INS_PACKAGE_FQ_NAMES,
|
storageManager, builtInsModule, BUILT_INS_PACKAGE_FQ_NAMES,
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.name.Name
|
|||||||
import org.jetbrains.kotlin.resolve.ImportPath
|
import org.jetbrains.kotlin.resolve.ImportPath
|
||||||
import org.jetbrains.kotlin.types.TypeSubstitutor
|
import org.jetbrains.kotlin.types.TypeSubstitutor
|
||||||
|
|
||||||
interface ModuleDescriptor : DeclarationDescriptor, ModuleParameters {
|
interface ModuleDescriptor : DeclarationDescriptor {
|
||||||
override fun getContainingDeclaration(): DeclarationDescriptor? = null
|
override fun getContainingDeclaration(): DeclarationDescriptor? = null
|
||||||
|
|
||||||
val builtIns: KotlinBuiltIns
|
val builtIns: KotlinBuiltIns
|
||||||
@@ -41,17 +41,11 @@ interface ModuleDescriptor : DeclarationDescriptor, ModuleParameters {
|
|||||||
|
|
||||||
fun getSubPackagesOf(fqName: FqName, nameFilter: (Name) -> Boolean): Collection<FqName>
|
fun getSubPackagesOf(fqName: FqName, nameFilter: (Name) -> Boolean): Collection<FqName>
|
||||||
|
|
||||||
|
val defaultImports: List<ImportPath>
|
||||||
|
|
||||||
|
val effectivelyExcludedImports: List<FqName>
|
||||||
|
|
||||||
fun <T> getCapability(capability: Capability<T>): T?
|
fun <T> getCapability(capability: Capability<T>): T?
|
||||||
|
|
||||||
class Capability<T>(val name: String)
|
class Capability<T>(val name: String)
|
||||||
|
|
||||||
val effectivelyExcludedImports: List<FqName>
|
|
||||||
}
|
|
||||||
|
|
||||||
interface ModuleParameters {
|
|
||||||
val defaultImports: List<ImportPath>
|
|
||||||
|
|
||||||
object Empty : ModuleParameters {
|
|
||||||
override val defaultImports: List<ImportPath> = emptyList()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,12 +17,16 @@
|
|||||||
package org.jetbrains.kotlin.descriptors.impl
|
package org.jetbrains.kotlin.descriptors.impl
|
||||||
|
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||||
|
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
|
||||||
|
import org.jetbrains.kotlin.descriptors.PackageViewDescriptor
|
||||||
|
import org.jetbrains.kotlin.descriptors.TypeAliasDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||||
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.name.isChildOf
|
import org.jetbrains.kotlin.name.isChildOf
|
||||||
import org.jetbrains.kotlin.name.isSubpackageOf
|
import org.jetbrains.kotlin.name.isSubpackageOf
|
||||||
|
import org.jetbrains.kotlin.resolve.ImportPath
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
|
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
import org.jetbrains.kotlin.storage.StorageManager
|
import org.jetbrains.kotlin.storage.StorageManager
|
||||||
@@ -34,10 +38,10 @@ import java.lang.IllegalArgumentException
|
|||||||
class ModuleDescriptorImpl @JvmOverloads constructor(
|
class ModuleDescriptorImpl @JvmOverloads constructor(
|
||||||
moduleName: Name,
|
moduleName: Name,
|
||||||
private val storageManager: StorageManager,
|
private val storageManager: StorageManager,
|
||||||
private val moduleParameters: ModuleParameters,
|
override val defaultImports: List<ImportPath>,
|
||||||
override val builtIns: KotlinBuiltIns,
|
override val builtIns: KotlinBuiltIns,
|
||||||
private val capabilities: Map<ModuleDescriptor.Capability<*>, Any?> = emptyMap()
|
private val capabilities: Map<ModuleDescriptor.Capability<*>, Any?> = emptyMap()
|
||||||
) : DeclarationDescriptorImpl(Annotations.EMPTY, moduleName), ModuleDescriptor, ModuleParameters by moduleParameters {
|
) : DeclarationDescriptorImpl(Annotations.EMPTY, moduleName), ModuleDescriptor {
|
||||||
init {
|
init {
|
||||||
if (!moduleName.isSpecial) {
|
if (!moduleName.isSpecial) {
|
||||||
throw IllegalArgumentException("Module name must be special: $moduleName")
|
throw IllegalArgumentException("Module name must be special: $moduleName")
|
||||||
|
|||||||
+1
-1
@@ -237,7 +237,7 @@ public class SourceNavigationHelper {
|
|||||||
@NotNull Project project
|
@NotNull Project project
|
||||||
) {
|
) {
|
||||||
MutableModuleContext newModuleContext = ContextKt.ContextForNewModule(
|
MutableModuleContext newModuleContext = ContextKt.ContextForNewModule(
|
||||||
project, Name.special("<library module>"), JvmPlatform.INSTANCE.getDefaultModuleParameters(), DefaultBuiltIns.getInstance()
|
project, Name.special("<library module>"), JvmPlatform.INSTANCE.getDefaultImports(), DefaultBuiltIns.getInstance()
|
||||||
);
|
);
|
||||||
|
|
||||||
newModuleContext.setDependencies(newModuleContext.getModule(), newModuleContext.getModule().getBuiltIns().getBuiltInsModule());
|
newModuleContext.setDependencies(newModuleContext.getModule(), newModuleContext.getModule().getBuiltIns().getBuiltInsModule());
|
||||||
|
|||||||
+1
-2
@@ -18,7 +18,6 @@ package org.jetbrains.kotlin.idea.decompiler.textBuilder
|
|||||||
|
|
||||||
import com.intellij.openapi.vfs.VirtualFile
|
import com.intellij.openapi.vfs.VirtualFile
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleParameters
|
|
||||||
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
|
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
|
||||||
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
|
||||||
@@ -61,7 +60,7 @@ abstract class DeserializerForDecompilerBase(
|
|||||||
protected fun createDummyPackageFragment(fqName: FqName): MutablePackageFragmentDescriptor =
|
protected fun createDummyPackageFragment(fqName: FqName): MutablePackageFragmentDescriptor =
|
||||||
MutablePackageFragmentDescriptor(moduleDescriptor, fqName)
|
MutablePackageFragmentDescriptor(moduleDescriptor, fqName)
|
||||||
|
|
||||||
private fun createDummyModule(name: String) = ModuleDescriptorImpl(Name.special("<$name>"), storageManager, ModuleParameters.Empty, builtIns)
|
private fun createDummyModule(name: String) = ModuleDescriptorImpl(Name.special("<$name>"), storageManager, emptyList(), builtIns)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
moduleDescriptor.initialize(packageFragmentProvider)
|
moduleDescriptor.initialize(packageFragmentProvider)
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ private fun convertNonStaticImport(fqName: FqName, isOnDemand: Boolean, target:
|
|||||||
private fun renderImportName(fqName: FqName, isOnDemand: Boolean)
|
private fun renderImportName(fqName: FqName, isOnDemand: Boolean)
|
||||||
= if (isOnDemand) fqName.render() + ".*" else fqName.render()
|
= if (isOnDemand) fqName.render() + ".*" else fqName.render()
|
||||||
|
|
||||||
private val DEFAULT_IMPORTS_SET: Set<FqName> = JvmPlatform.defaultModuleParameters.defaultImports
|
private val DEFAULT_IMPORTS_SET: Set<FqName> = JvmPlatform.defaultImports
|
||||||
.filter { it.isAllUnder }
|
.filter { it.isAllUnder }
|
||||||
.map { it.fqnPart() }
|
.map { it.fqnPart() }
|
||||||
.toSet()
|
.toSet()
|
||||||
|
|||||||
@@ -19,27 +19,24 @@ package org.jetbrains.kotlin.js.resolve
|
|||||||
import com.google.common.collect.ImmutableList
|
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.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
|
||||||
|
|
||||||
object JsPlatform : TargetPlatform("JS") {
|
object JsPlatform : TargetPlatform("JS") {
|
||||||
override val defaultModuleParameters = object : ModuleParameters {
|
override val defaultImports: List<ImportPath> = ImmutableList.of(
|
||||||
override val defaultImports: List<ImportPath> = ImmutableList.of(
|
ImportPath("java.lang.*"),
|
||||||
ImportPath("java.lang.*"),
|
ImportPath("kotlin.*"),
|
||||||
ImportPath("kotlin.*"),
|
ImportPath("kotlin.annotation.*"),
|
||||||
ImportPath("kotlin.annotation.*"),
|
ImportPath("kotlin.collections.*"),
|
||||||
ImportPath("kotlin.collections.*"),
|
ImportPath("kotlin.ranges.*"),
|
||||||
ImportPath("kotlin.ranges.*"),
|
ImportPath("kotlin.sequences.*"),
|
||||||
ImportPath("kotlin.sequences.*"),
|
ImportPath("kotlin.text.*"),
|
||||||
ImportPath("kotlin.text.*"),
|
ImportPath("kotlin.js.*")
|
||||||
ImportPath("kotlin.js.*")
|
)
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
override val platformConfigurator: PlatformConfigurator = JsPlatformConfigurator
|
override val platformConfigurator: PlatformConfigurator = JsPlatformConfigurator
|
||||||
|
|
||||||
val builtIns: KotlinBuiltIns
|
val builtIns: KotlinBuiltIns
|
||||||
get() = DefaultBuiltIns.Instance
|
get() = DefaultBuiltIns.Instance
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user