Drop ModuleParameters, inline defaultImports everywhere

This commit is contained in:
Alexander Udalov
2016-10-11 10:47:14 +03:00
parent d335aea682
commit 2f616bdd33
13 changed files with 66 additions and 87 deletions
@@ -18,7 +18,6 @@ package org.jetbrains.kotlin.load.kotlin.reflect
import org.jetbrains.kotlin.builtins.ReflectionTypes
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.ModuleParameters
import org.jetbrains.kotlin.descriptors.SupertypeLoopChecker
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
import org.jetbrains.kotlin.incremental.components.LookupTracker
@@ -46,9 +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, ModuleParameters.Empty, builtIns
)
val module = ModuleDescriptorImpl(Name.special("<runtime module for $classLoader>"), storageManager, emptyList(), builtIns)
val reflectKotlinClassFinder = ReflectKotlinClassFinder(classLoader)
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.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;
@@ -81,9 +82,7 @@ public abstract class KotlinBuiltIns {
protected KotlinBuiltIns(@NotNull StorageManager storageManager) {
this.storageManager = storageManager;
builtInsModule = new ModuleDescriptorImpl(
BUILTINS_MODULE_NAME, storageManager, ModuleParameters.Empty.INSTANCE, this
);
builtInsModule = new ModuleDescriptorImpl(BUILTINS_MODULE_NAME, storageManager, Collections.<ImportPath>emptyList(), this);
PackageFragmentProvider packageFragmentProvider = BuiltInsPackageFragmentProviderKt.createBuiltInPackageFragmentProvider(
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.types.TypeSubstitutor
interface ModuleDescriptor : DeclarationDescriptor, ModuleParameters {
interface ModuleDescriptor : DeclarationDescriptor {
override fun getContainingDeclaration(): DeclarationDescriptor? = null
val builtIns: KotlinBuiltIns
@@ -41,17 +41,11 @@ interface ModuleDescriptor : DeclarationDescriptor, ModuleParameters {
fun getSubPackagesOf(fqName: FqName, nameFilter: (Name) -> Boolean): Collection<FqName>
val defaultImports: List<ImportPath>
val effectivelyExcludedImports: List<FqName>
fun <T> getCapability(capability: Capability<T>): T?
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
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.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.name.isChildOf
import org.jetbrains.kotlin.name.isSubpackageOf
import org.jetbrains.kotlin.resolve.ImportPath
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
import org.jetbrains.kotlin.storage.StorageManager
@@ -34,10 +38,10 @@ import java.lang.IllegalArgumentException
class ModuleDescriptorImpl @JvmOverloads constructor(
moduleName: Name,
private val storageManager: StorageManager,
private val moduleParameters: ModuleParameters,
override val defaultImports: List<ImportPath>,
override val builtIns: KotlinBuiltIns,
private val capabilities: Map<ModuleDescriptor.Capability<*>, Any?> = emptyMap()
) : DeclarationDescriptorImpl(Annotations.EMPTY, moduleName), ModuleDescriptor, ModuleParameters by moduleParameters {
) : DeclarationDescriptorImpl(Annotations.EMPTY, moduleName), ModuleDescriptor {
init {
if (!moduleName.isSpecial) {
throw IllegalArgumentException("Module name must be special: $moduleName")