[Misc] Provide meaningful debugName for StorageManager everywhere
This commit is contained in:
+1
-1
@@ -90,7 +90,7 @@ object CommonResolverForModuleFactory : ResolverForModuleFactory() {
|
|||||||
@Suppress("NAME_SHADOWING")
|
@Suppress("NAME_SHADOWING")
|
||||||
val resolver = ResolverForProjectImpl(
|
val resolver = ResolverForProjectImpl(
|
||||||
"sources for metadata serializer",
|
"sources for metadata serializer",
|
||||||
ProjectContext(project),
|
ProjectContext(project, "metadata serializer"),
|
||||||
listOf(moduleInfo),
|
listOf(moduleInfo),
|
||||||
modulesContent = { ModuleContent(it, files, GlobalSearchScope.allScope(project)) },
|
modulesContent = { ModuleContent(it, files, GlobalSearchScope.allScope(project)) },
|
||||||
moduleLanguageSettingsProvider = object : LanguageSettingsProvider {
|
moduleLanguageSettingsProvider = object : LanguageSettingsProvider {
|
||||||
|
|||||||
+1
-1
@@ -276,7 +276,7 @@ object TopDownAnalyzerFacadeForJVM {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun createModuleContext(project: Project, configuration: CompilerConfiguration): MutableModuleContext {
|
private fun createModuleContext(project: Project, configuration: CompilerConfiguration): MutableModuleContext {
|
||||||
val projectContext = ProjectContext(project)
|
val projectContext = ProjectContext(project, "TopDownAnalyzer for JVM")
|
||||||
val builtIns = JvmBuiltIns(projectContext.storageManager, JvmBuiltIns.Kind.FROM_DEPENDENCIES)
|
val builtIns = JvmBuiltIns(projectContext.storageManager, JvmBuiltIns.Kind.FROM_DEPENDENCIES)
|
||||||
return ContextForNewModule(
|
return ContextForNewModule(
|
||||||
projectContext, Name.special("<${configuration.getNotNull(CommonConfigurationKeys.MODULE_NAME)}>"), builtIns, null
|
projectContext, Name.special("<${configuration.getNotNull(CommonConfigurationKeys.MODULE_NAME)}>"), builtIns, null
|
||||||
|
|||||||
@@ -83,14 +83,14 @@ class MutableModuleContextImpl(
|
|||||||
projectContext: ProjectContext
|
projectContext: ProjectContext
|
||||||
) : MutableModuleContext, ProjectContext by projectContext
|
) : MutableModuleContext, ProjectContext by projectContext
|
||||||
|
|
||||||
fun GlobalContext(): GlobalContextImpl {
|
fun GlobalContext(debugName: String): GlobalContextImpl {
|
||||||
val tracker = ExceptionTracker()
|
val tracker = ExceptionTracker()
|
||||||
return GlobalContextImpl(LockBasedStorageManager.createWithExceptionHandling("GlobalContext", tracker), tracker)
|
return GlobalContextImpl(LockBasedStorageManager.createWithExceptionHandling(debugName, tracker), tracker)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun ProjectContext(project: Project): ProjectContext = ProjectContextImpl(project, GlobalContext())
|
fun ProjectContext(project: Project, debugName: String): ProjectContext = ProjectContextImpl(project, GlobalContext(debugName))
|
||||||
fun ModuleContext(module: ModuleDescriptor, project: Project): ModuleContext =
|
fun ModuleContext(module: ModuleDescriptor, project: Project, debugName: String): ModuleContext =
|
||||||
ModuleContextImpl(module, ProjectContext(project))
|
ModuleContextImpl(module, ProjectContext(project, debugName))
|
||||||
|
|
||||||
fun GlobalContext.withProject(project: Project): ProjectContext = ProjectContextImpl(project, this)
|
fun GlobalContext.withProject(project: Project): ProjectContext = ProjectContextImpl(project, this)
|
||||||
fun ProjectContext.withModule(module: ModuleDescriptor): ModuleContext = ModuleContextImpl(module, this)
|
fun ProjectContext.withModule(module: ModuleDescriptor): ModuleContext = ModuleContextImpl(module, this)
|
||||||
|
|||||||
+1
-1
@@ -39,7 +39,7 @@ fun createResolveSessionForFiles(
|
|||||||
syntheticFiles: Collection<KtFile>,
|
syntheticFiles: Collection<KtFile>,
|
||||||
addBuiltIns: Boolean
|
addBuiltIns: Boolean
|
||||||
): ResolveSession {
|
): ResolveSession {
|
||||||
val projectContext = ProjectContext(project)
|
val projectContext = ProjectContext(project, "lazy resolve test utils")
|
||||||
val testModule = TestModule(addBuiltIns)
|
val testModule = TestModule(addBuiltIns)
|
||||||
val resolverForProject = ResolverForProjectImpl(
|
val resolverForProject = ResolverForProjectImpl(
|
||||||
"test",
|
"test",
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ import org.jetbrains.kotlin.types.expressions.FakeCallResolver
|
|||||||
fun createContainerForTests(project: Project, module: ModuleDescriptor): ContainerForTests {
|
fun createContainerForTests(project: Project, module: ModuleDescriptor): ContainerForTests {
|
||||||
return ContainerForTests(createContainer("Tests", JvmPlatformCompilerServices) {
|
return ContainerForTests(createContainer("Tests", JvmPlatformCompilerServices) {
|
||||||
configureModule(
|
configureModule(
|
||||||
ModuleContext(module, project),
|
ModuleContext(module, project, "container for tests"),
|
||||||
JvmPlatforms.defaultJvmPlatform,
|
JvmPlatforms.defaultJvmPlatform,
|
||||||
JvmPlatformCompilerServices,
|
JvmPlatformCompilerServices,
|
||||||
BindingTraceContext(),
|
BindingTraceContext(),
|
||||||
|
|||||||
+1
-1
@@ -72,7 +72,7 @@ class MultiModuleJavaAnalysisCustomTest : KtUsefulTestCase() {
|
|||||||
val moduleDirs = File(PATH_TO_TEST_ROOT_DIR).listFiles { it -> it.isDirectory }!!
|
val moduleDirs = File(PATH_TO_TEST_ROOT_DIR).listFiles { it -> it.isDirectory }!!
|
||||||
val environment = createEnvironment(moduleDirs)
|
val environment = createEnvironment(moduleDirs)
|
||||||
val modules = setupModules(environment, moduleDirs)
|
val modules = setupModules(environment, moduleDirs)
|
||||||
val projectContext = ProjectContext(environment.project)
|
val projectContext = ProjectContext(environment.project, "MultiModuleJavaAnalysisTest")
|
||||||
val builtIns = JvmBuiltIns(projectContext.storageManager, JvmBuiltIns.Kind.FROM_CLASS_LOADER)
|
val builtIns = JvmBuiltIns(projectContext.storageManager, JvmBuiltIns.Kind.FROM_CLASS_LOADER)
|
||||||
val resolverForProject = ResolverForProjectImpl(
|
val resolverForProject = ResolverForProjectImpl(
|
||||||
"test",
|
"test",
|
||||||
|
|||||||
@@ -76,7 +76,10 @@ class JsVersionRequirementTest : AbstractVersionRequirementTest() {
|
|||||||
|
|
||||||
private fun createModule(environment: KotlinCoreEnvironment): MutableModuleContext {
|
private fun createModule(environment: KotlinCoreEnvironment): MutableModuleContext {
|
||||||
val config = JsConfig(environment.project, environment.configuration)
|
val config = JsConfig(environment.project, environment.configuration)
|
||||||
return ContextForNewModule(ProjectContext(environment.project), Name.special("<test>"), JsPlatformCompilerServices.builtIns, null).apply {
|
return ContextForNewModule(
|
||||||
|
ProjectContext(environment.project, "ProjectContext"),
|
||||||
|
Name.special("<test>"), JsPlatformCompilerServices.builtIns, null
|
||||||
|
).apply {
|
||||||
setDependencies(listOf(module) + config.moduleDescriptors + module.builtIns.builtInsModule)
|
setDependencies(listOf(module) + config.moduleDescriptors + module.builtIns.builtInsModule)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ public class DefaultModalityModifiersTest extends KotlinTestWithEnvironment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private ClassDescriptorWithResolutionScopes createClassDescriptor(ClassKind kind, KtClass aClass) {
|
private ClassDescriptorWithResolutionScopes createClassDescriptor(ClassKind kind, KtClass aClass) {
|
||||||
ModuleContext moduleContext = ContextKt.ModuleContext(root, getProject());
|
ModuleContext moduleContext = ContextKt.ModuleContext(root, getProject(), "DefaultModalityModifiersTest");
|
||||||
Collection<KtFile> files = Collections.singleton(aClass.getContainingKtFile());
|
Collection<KtFile> files = Collections.singleton(aClass.getContainingKtFile());
|
||||||
|
|
||||||
StorageComponentContainer container = createContainerForLazyResolve(
|
StorageComponentContainer container = createContainerForLazyResolve(
|
||||||
|
|||||||
+1
-1
@@ -308,7 +308,7 @@ internal object IDELightClassContexts {
|
|||||||
val container = createContainer("LightClassStub", JvmPlatformCompilerServices) {
|
val container = createContainer("LightClassStub", JvmPlatformCompilerServices) {
|
||||||
val jvmTarget = IDELanguageSettingsProvider.getTargetPlatform(moduleInfo, project) as? JvmTarget ?: JvmTarget.DEFAULT
|
val jvmTarget = IDELanguageSettingsProvider.getTargetPlatform(moduleInfo, project) as? JvmTarget ?: JvmTarget.DEFAULT
|
||||||
configureModule(
|
configureModule(
|
||||||
ModuleContext(moduleDescriptor, project), JvmPlatforms.jvmPlatformByTargetVersion(jvmTarget),
|
ModuleContext(moduleDescriptor, project, "ad hoc resolve"), JvmPlatforms.jvmPlatformByTargetVersion(jvmTarget),
|
||||||
JvmPlatformCompilerServices, trace,
|
JvmPlatformCompilerServices, trace,
|
||||||
IDELanguageSettingsProvider.getLanguageVersionSettings(moduleInfo, project)
|
IDELanguageSettingsProvider.getLanguageVersionSettings(moduleInfo, project)
|
||||||
)
|
)
|
||||||
|
|||||||
+12
-10
@@ -119,7 +119,7 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
|
|||||||
getOrBuildGlobalFacade(settings).facadeForSdk
|
getOrBuildGlobalFacade(settings).facadeForSdk
|
||||||
}
|
}
|
||||||
|
|
||||||
val globalContext = globalFacade.globalContext.contextWithNewLockAndCompositeExceptionTracker()
|
val globalContext = globalFacade.globalContext.contextWithNewLockAndCompositeExceptionTracker("facadeForScriptDependencies")
|
||||||
return ProjectResolutionFacade(
|
return ProjectResolutionFacade(
|
||||||
"facadeForScriptDependencies",
|
"facadeForScriptDependencies",
|
||||||
resolverForScriptDependenciesName,
|
resolverForScriptDependenciesName,
|
||||||
@@ -136,7 +136,7 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
|
|||||||
|
|
||||||
|
|
||||||
private inner class GlobalFacade(settings: PlatformAnalysisSettings) {
|
private inner class GlobalFacade(settings: PlatformAnalysisSettings) {
|
||||||
private val sdkContext = GlobalContext()
|
private val sdkContext = GlobalContext(resolverForSdkName)
|
||||||
val facadeForSdk = ProjectResolutionFacade(
|
val facadeForSdk = ProjectResolutionFacade(
|
||||||
"facadeForSdk", "$resolverForSdkName ${settings.sdk}",
|
"facadeForSdk", "$resolverForSdkName ${settings.sdk}",
|
||||||
project, sdkContext, settings,
|
project, sdkContext, settings,
|
||||||
@@ -149,7 +149,7 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
|
|||||||
reuseDataFrom = null
|
reuseDataFrom = null
|
||||||
)
|
)
|
||||||
|
|
||||||
private val librariesContext = sdkContext.contextWithNewLockAndCompositeExceptionTracker()
|
private val librariesContext = sdkContext.contextWithNewLockAndCompositeExceptionTracker(resolverForLibrariesName)
|
||||||
val facadeForLibraries = ProjectResolutionFacade(
|
val facadeForLibraries = ProjectResolutionFacade(
|
||||||
"facadeForLibraries", "$resolverForLibrariesName for platform ${settings.sdk}",
|
"facadeForLibraries", "$resolverForLibrariesName for platform ${settings.sdk}",
|
||||||
project, librariesContext, settings,
|
project, librariesContext, settings,
|
||||||
@@ -162,7 +162,7 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
private val modulesContext = librariesContext.contextWithNewLockAndCompositeExceptionTracker()
|
private val modulesContext = librariesContext.contextWithNewLockAndCompositeExceptionTracker(resolverForModulesName)
|
||||||
val facadeForModules = ProjectResolutionFacade(
|
val facadeForModules = ProjectResolutionFacade(
|
||||||
"facadeForModules", "$resolverForModulesName for platform ${settings.platform}",
|
"facadeForModules", "$resolverForModulesName for platform ${settings.platform}",
|
||||||
project, modulesContext, settings,
|
project, modulesContext, settings,
|
||||||
@@ -259,7 +259,7 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
|
|||||||
specialModuleInfo is ModuleSourceInfo -> {
|
specialModuleInfo is ModuleSourceInfo -> {
|
||||||
val dependentModules = specialModuleInfo.getDependentModules()
|
val dependentModules = specialModuleInfo.getDependentModules()
|
||||||
val modulesFacade = globalFacade(settings)
|
val modulesFacade = globalFacade(settings)
|
||||||
val globalContext = modulesFacade.globalContext.contextWithNewLockAndCompositeExceptionTracker()
|
val globalContext = modulesFacade.globalContext.contextWithNewLockAndCompositeExceptionTracker("facadeForSpecialModuleInfo (ModuleSourceInfo)")
|
||||||
makeProjectResolutionFacade(
|
makeProjectResolutionFacade(
|
||||||
"facadeForSpecialModuleInfo (ModuleSourceInfo)",
|
"facadeForSpecialModuleInfo (ModuleSourceInfo)",
|
||||||
globalContext,
|
globalContext,
|
||||||
@@ -272,7 +272,7 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
|
|||||||
val facadeForScriptDependencies = createFacadeForScriptDependencies(
|
val facadeForScriptDependencies = createFacadeForScriptDependencies(
|
||||||
ScriptDependenciesInfo.ForFile(project, specialModuleInfo.scriptFile, specialModuleInfo.scriptDefinition)
|
ScriptDependenciesInfo.ForFile(project, specialModuleInfo.scriptFile, specialModuleInfo.scriptDefinition)
|
||||||
)
|
)
|
||||||
val globalContext = facadeForScriptDependencies.globalContext.contextWithNewLockAndCompositeExceptionTracker()
|
val globalContext = facadeForScriptDependencies.globalContext.contextWithNewLockAndCompositeExceptionTracker("facadeForSpecialModuleInfo (ScriptModuleInfo)")
|
||||||
makeProjectResolutionFacade(
|
makeProjectResolutionFacade(
|
||||||
"facadeForSpecialModuleInfo (ScriptModuleInfo)",
|
"facadeForSpecialModuleInfo (ScriptModuleInfo)",
|
||||||
globalContext,
|
globalContext,
|
||||||
@@ -283,7 +283,7 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
|
|||||||
}
|
}
|
||||||
specialModuleInfo is ScriptDependenciesInfo -> facadeForScriptDependenciesForProject
|
specialModuleInfo is ScriptDependenciesInfo -> facadeForScriptDependenciesForProject
|
||||||
specialModuleInfo is ScriptDependenciesSourceInfo -> {
|
specialModuleInfo is ScriptDependenciesSourceInfo -> {
|
||||||
val globalContext = facadeForScriptDependenciesForProject.globalContext.contextWithNewLockAndCompositeExceptionTracker()
|
val globalContext = facadeForScriptDependenciesForProject.globalContext.contextWithNewLockAndCompositeExceptionTracker("facadeForSpecialModuleInfo (ScriptDependenciesSourceInfo)")
|
||||||
makeProjectResolutionFacade(
|
makeProjectResolutionFacade(
|
||||||
"facadeForSpecialModuleInfo (ScriptDependenciesSourceInfo)",
|
"facadeForSpecialModuleInfo (ScriptDependenciesSourceInfo)",
|
||||||
globalContext,
|
globalContext,
|
||||||
@@ -295,9 +295,11 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
|
|||||||
|
|
||||||
specialModuleInfo is LibrarySourceInfo || specialModuleInfo === NotUnderContentRootModuleInfo -> {
|
specialModuleInfo is LibrarySourceInfo || specialModuleInfo === NotUnderContentRootModuleInfo -> {
|
||||||
val librariesFacade = librariesFacade(settings)
|
val librariesFacade = librariesFacade(settings)
|
||||||
val globalContext = librariesFacade.globalContext.contextWithNewLockAndCompositeExceptionTracker()
|
val debugName = "facadeForSpecialModuleInfo (LibrarySourceInfo or NotUnderContentRootModuleInfo)"
|
||||||
|
val globalContext = librariesFacade.globalContext.contextWithNewLockAndCompositeExceptionTracker(debugName)
|
||||||
|
|
||||||
makeProjectResolutionFacade(
|
makeProjectResolutionFacade(
|
||||||
"facadeForSpecialModuleInfo (LibrarySourceInfo or NotUnderContentRootModuleInfo)",
|
debugName,
|
||||||
globalContext,
|
globalContext,
|
||||||
reuseDataFrom = librariesFacade,
|
reuseDataFrom = librariesFacade,
|
||||||
moduleFilter = { it == specialModuleInfo }
|
moduleFilter = { it == specialModuleInfo }
|
||||||
@@ -309,7 +311,7 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
|
|||||||
// currently the only known scenario is when we cannot determine that file is a library source
|
// currently the only known scenario is when we cannot determine that file is a library source
|
||||||
// (file under both classes and sources root)
|
// (file under both classes and sources root)
|
||||||
LOG.warn("Creating cache with synthetic files ($files) in classes of library $specialModuleInfo")
|
LOG.warn("Creating cache with synthetic files ($files) in classes of library $specialModuleInfo")
|
||||||
val globalContext = GlobalContext()
|
val globalContext = GlobalContext("facadeForSpecialModuleInfo for file under both classes and root")
|
||||||
makeProjectResolutionFacade(
|
makeProjectResolutionFacade(
|
||||||
"facadeForSpecialModuleInfo for file under both classes and root",
|
"facadeForSpecialModuleInfo for file under both classes and root",
|
||||||
globalContext
|
globalContext
|
||||||
|
|||||||
+2
-2
@@ -9,10 +9,10 @@ import org.jetbrains.kotlin.context.GlobalContextImpl
|
|||||||
import org.jetbrains.kotlin.storage.ExceptionTracker
|
import org.jetbrains.kotlin.storage.ExceptionTracker
|
||||||
import org.jetbrains.kotlin.storage.LockBasedStorageManager
|
import org.jetbrains.kotlin.storage.LockBasedStorageManager
|
||||||
|
|
||||||
internal fun GlobalContextImpl.contextWithNewLockAndCompositeExceptionTracker(): GlobalContextImpl {
|
internal fun GlobalContextImpl.contextWithNewLockAndCompositeExceptionTracker(debugName: String): GlobalContextImpl {
|
||||||
val newExceptionTracker = CompositeExceptionTracker(this.exceptionTracker)
|
val newExceptionTracker = CompositeExceptionTracker(this.exceptionTracker)
|
||||||
return GlobalContextImpl(
|
return GlobalContextImpl(
|
||||||
LockBasedStorageManager.createWithExceptionHandling("GlobalContextUtils", newExceptionTracker),
|
LockBasedStorageManager.createWithExceptionHandling(debugName, newExceptionTracker),
|
||||||
newExceptionTracker
|
newExceptionTracker
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ object TopDownAnalyzerFacadeForJS {
|
|||||||
|
|
||||||
val moduleName = configuration[CommonConfigurationKeys.MODULE_NAME]!!
|
val moduleName = configuration[CommonConfigurationKeys.MODULE_NAME]!!
|
||||||
val context = ContextForNewModule(
|
val context = ContextForNewModule(
|
||||||
ProjectContext(project),
|
ProjectContext(project, "TopDownAnalyzer for JS"),
|
||||||
Name.special("<$moduleName>"),
|
Name.special("<$moduleName>"),
|
||||||
builtIns,
|
builtIns,
|
||||||
platform = null
|
platform = null
|
||||||
|
|||||||
Reference in New Issue
Block a user