Builtins are passed into builtins module

Fixes circular dependency
This commit is contained in:
Pavel V. Talanov
2015-07-07 14:45:18 +03:00
parent 5dc5d77e60
commit 155f00578d
2 changed files with 9 additions and 5 deletions
@@ -111,7 +111,7 @@ public class KotlinBuiltIns {
private KotlinBuiltIns() { private KotlinBuiltIns() {
LockBasedStorageManager storageManager = new LockBasedStorageManager(); LockBasedStorageManager storageManager = new LockBasedStorageManager();
builtInsModule = new ModuleDescriptorImpl( builtInsModule = new ModuleDescriptorImpl(
Name.special("<built-ins module>"), storageManager, ModuleParameters.Empty.INSTANCE$ Name.special("<built-ins module>"), storageManager, ModuleParameters.Empty.INSTANCE$, this
); );
PackageFragmentProvider packageFragmentProvider = BuiltinsPackage.createBuiltInPackageFragmentProvider( PackageFragmentProvider packageFragmentProvider = BuiltinsPackage.createBuiltInPackageFragmentProvider(
@@ -32,7 +32,8 @@ import kotlin.properties.Delegates
public class ModuleDescriptorImpl( public class ModuleDescriptorImpl(
moduleName: Name, moduleName: Name,
private val storageManager: StorageManager, private val storageManager: StorageManager,
private val moduleParameters: ModuleParameters private val moduleParameters: ModuleParameters,
override val builtIns: KotlinBuiltIns
) : DeclarationDescriptorImpl(Annotations.EMPTY, moduleName), ModuleDescriptor, ModuleParameters by moduleParameters { ) : DeclarationDescriptorImpl(Annotations.EMPTY, moduleName), ModuleDescriptor, ModuleParameters by moduleParameters {
init { init {
if (!moduleName.isSpecial()) { if (!moduleName.isSpecial()) {
@@ -40,6 +41,12 @@ public class ModuleDescriptorImpl(
} }
} }
public constructor(
moduleName: Name,
storageManager: StorageManager,
moduleParameters: ModuleParameters
) : this(moduleName, storageManager, moduleParameters, KotlinBuiltIns.getInstance())
private var dependencies: ModuleDependencies? = null private var dependencies: ModuleDependencies? = null
private var packageFragmentProviderForModuleContent: PackageFragmentProvider? = null private var packageFragmentProviderForModuleContent: PackageFragmentProvider? = null
@@ -102,9 +109,6 @@ public class ModuleDescriptorImpl(
assert(friend != this) { "Attempt to make module $id a friend to itself" } assert(friend != this) { "Attempt to make module $id a friend to itself" }
friendModules.add(friend) friendModules.add(friend)
} }
override val builtIns: KotlinBuiltIns
get() = KotlinBuiltIns.getInstance()
} }
public interface ModuleDependencies { public interface ModuleDependencies {