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() {
LockBasedStorageManager storageManager = new LockBasedStorageManager();
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(
@@ -32,7 +32,8 @@ import kotlin.properties.Delegates
public class ModuleDescriptorImpl(
moduleName: Name,
private val storageManager: StorageManager,
private val moduleParameters: ModuleParameters
private val moduleParameters: ModuleParameters,
override val builtIns: KotlinBuiltIns
) : DeclarationDescriptorImpl(Annotations.EMPTY, moduleName), ModuleDescriptor, ModuleParameters by moduleParameters {
init {
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 packageFragmentProviderForModuleContent: PackageFragmentProvider? = null
@@ -102,9 +109,6 @@ public class ModuleDescriptorImpl(
assert(friend != this) { "Attempt to make module $id a friend to itself" }
friendModules.add(friend)
}
override val builtIns: KotlinBuiltIns
get() = KotlinBuiltIns.getInstance()
}
public interface ModuleDependencies {