From 8f2092fe792d6db51b6c2c197654c04cb71ea16a Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Fri, 5 Dec 2014 20:23:23 +0100 Subject: [PATCH] extract method for creating type mapper for a file --- .../jet/plugin/debugger/JetPositionManager.kt | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.kt b/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.kt index b1c71a6a0ae..4543bec6c92 100644 --- a/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.kt +++ b/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.kt @@ -189,17 +189,8 @@ public class JetPositionManager(private val myDebugProcess: DebugProcess) : Posi if (value == null) { value = CachedValuesManager.getManager(file.getProject()).createCachedValue(object : CachedValueProvider { override fun compute(): CachedValueProvider.Result? { - val project = file.getProject() - val packageFacadeScope = key.second.contentScope() - val packageFiles = PackageIndexUtil.findFilesWithExactPackage(key.first, packageFacadeScope, project) - - val analysisResult = KotlinCacheService.getInstance(project).getAnalysisResults(packageFiles) - analysisResult.throwIfError() - - val state = GenerationState(project, ClassBuilderFactories.THROW_EXCEPTION, analysisResult.moduleDescriptor, - analysisResult.bindingContext, ArrayList(packageFiles)) - state.beforeCompile() - return CachedValueProvider.Result(state.getTypeMapper(), PsiModificationTracker.MODIFICATION_COUNT) + val typeMapper = createTypeMapper(file, key.second) + return CachedValueProvider.Result(typeMapper, PsiModificationTracker.MODIFICATION_COUNT) } }, false) @@ -249,6 +240,21 @@ public class JetPositionManager(private val myDebugProcess: DebugProcess) : Posi } class object { + public fun createTypeMapper(file: JetFile, moduleInfo: IdeaModuleInfo): JetTypeMapper { + val project = file.getProject() + val packageFacadeScope = moduleInfo.contentScope() + val packageFiles = PackageIndexUtil.findFilesWithExactPackage(file.getPackageFqName(), packageFacadeScope, project) + + val analysisResult = KotlinCacheService.getInstance(project).getAnalysisResults(packageFiles) + analysisResult.throwIfError() + + val state = GenerationState(project, ClassBuilderFactories.THROW_EXCEPTION, analysisResult.moduleDescriptor, + analysisResult.bindingContext, ArrayList(packageFiles)) + state.beforeCompile() + val typeMapper = state.getTypeMapper() + return typeMapper + } + public fun getClassNameForElement(notPositionedElement: PsiElement?, typeMapper: JetTypeMapper, file: JetFile, isInLibrary: Boolean): String? { val element = getElementToCalculateClassName(notPositionedElement) when {