Add capabilities to moduleDescriptor as a way to put user data into module
Add OriginCapability to ide modules
This commit is contained in:
@@ -116,6 +116,8 @@ public interface ModuleInfo {
|
||||
public fun dependencies(): List<ModuleInfo>
|
||||
public fun friends(): Collection<ModuleInfo> = listOf()
|
||||
public fun dependencyOnBuiltins(): DependencyOnBuiltins = DependenciesOnBuiltins.LAST
|
||||
val capabilities: Map<ModuleDescriptor.Capability<*>, Any?>
|
||||
get() = emptyMap()
|
||||
|
||||
//TODO: (module refactoring) provide dependency on builtins after runtime in IDEA
|
||||
public interface DependencyOnBuiltins {
|
||||
@@ -158,7 +160,7 @@ public abstract class AnalyzerFacade<in P : PlatformAnalysisParameters> {
|
||||
val descriptorByModule = HashMap<M, ModuleDescriptorImpl>()
|
||||
modules.forEach {
|
||||
module ->
|
||||
descriptorByModule[module] = targetPlatform.createModule(module.name, storageManager)
|
||||
descriptorByModule[module] = targetPlatform.createModule(module.name, storageManager, module.capabilities)
|
||||
}
|
||||
return ResolverForProjectImpl(debugName, descriptorByModule, delegateResolver)
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.container.StorageComponentContainer
|
||||
import org.jetbrains.kotlin.container.useInstance
|
||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ModuleParameters
|
||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
@@ -88,8 +89,10 @@ open class PlatformConfigurator(
|
||||
}
|
||||
}
|
||||
|
||||
@JvmOverloads
|
||||
fun TargetPlatform.createModule(
|
||||
name: Name,
|
||||
storageManager: StorageManager
|
||||
) = ModuleDescriptorImpl(name, storageManager, defaultModuleParameters, builtIns)
|
||||
storageManager: StorageManager,
|
||||
capabilities: Map<ModuleDescriptor.Capability<*>, Any?> = emptyMap()
|
||||
) = ModuleDescriptorImpl(name, storageManager, defaultModuleParameters, builtIns, capabilities)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user