From 2d4b1d9219cea7204f1bf12f941a196574dbed98 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Tue, 10 Feb 2015 17:34:10 +0300 Subject: [PATCH] Switched to use of new import insertion API in a test (but had to use a hack!) --- ...AbstractEditorForEvaluateExpressionTest.kt | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/AbstractEditorForEvaluateExpressionTest.kt b/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/AbstractEditorForEvaluateExpressionTest.kt index d8a51ee4ee1..5310b0d3047 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/AbstractEditorForEvaluateExpressionTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/AbstractEditorForEvaluateExpressionTest.kt @@ -19,17 +19,14 @@ package org.jetbrains.kotlin.idea.debugger.evaluate import org.jetbrains.kotlin.checkers.AbstractJetPsiCheckerTest import org.jetbrains.kotlin.completion.AbstractJvmBasicCompletionTest import com.intellij.testFramework.fixtures.JavaCodeInsightTestFixture -import com.intellij.psi.PsiElement import com.intellij.openapi.util.io.FileUtil import java.io.File import org.jetbrains.kotlin.psi.JetPsiFactory import org.jetbrains.kotlin.idea.util.ImportInsertHelper import org.jetbrains.kotlin.psi.JetFile import com.intellij.openapi.application.ApplicationManager -import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.test.InTextDirectivesUtils import org.jetbrains.kotlin.psi.JetCodeFragment -import org.jetbrains.kotlin.idea.caches.resolve.analyzeFully import org.jetbrains.kotlin.psi.JetTypeReference import com.intellij.psi.util.PsiTreeUtil import org.jetbrains.kotlin.resolve.BindingContext @@ -37,6 +34,14 @@ import org.jetbrains.kotlin.completion.ExpectedCompletionUtils import org.jetbrains.kotlin.psi.JetElement import org.jetbrains.kotlin.completion.handlers.AbstractCompletionHandlerTest import com.intellij.codeInsight.completion.CompletionType +import org.jetbrains.kotlin.resolve.JetModuleUtil +import org.jetbrains.kotlin.resolve.QualifiedExpressionResolver +import org.jetbrains.kotlin.resolve.BindingTraceContext +import org.jetbrains.kotlin.resolve.QualifiedExpressionResolver.LookupMode +import org.jetbrains.kotlin.idea.caches.resolve.* +import com.intellij.psi.* +import com.intellij.psi.util.PsiModificationTracker +import com.intellij.psi.impl.PsiModificationTrackerImpl public abstract class AbstractCodeFragmentHighlightingTest : AbstractJetPsiCheckerTest() { override fun doTest(filePath: String) { @@ -49,8 +54,17 @@ public abstract class AbstractCodeFragmentHighlightingTest : AbstractJetPsiCheck ApplicationManager.getApplication()?.runWriteAction { val fileText = FileUtil.loadFile(File(filePath), true) + val file = myFixture.getFile() as JetFile InTextDirectivesUtils.findListWithPrefixes(fileText, "// IMPORT: ").forEach { - ImportInsertHelper.getInstance(getProject()).addImportDirectiveIfNeeded(FqName(it), (myFixture.getFile() as JetFile)) + val importDirective = JetPsiFactory(getProject()).createImportDirective(it) + val moduleDescriptor = file.getResolutionFacade().findModuleDescriptor(file) + val scope = JetModuleUtil.getSubpackagesOfRootScope(moduleDescriptor) + val descriptor = QualifiedExpressionResolver() + .processImportReference(importDirective, scope, scope, null, BindingTraceContext(), LookupMode.EVERYTHING) + .singleOrNull() ?: error("Could not resolve descriptor to import: $it") + ImportInsertHelper.getInstance(getProject()).importDescriptor(file, descriptor) + //TODO: it's a hack! we need to discuss it + (PsiModificationTracker.SERVICE.getInstance(getProject()) as PsiModificationTrackerImpl).incOutOfCodeBlockModificationCounter() } }