Workaround to allow QualifiedExpressionResolver to be created without an Injector. Should be fixed by code owner.

This commit is contained in:
Ilya Ryzhenkov
2015-04-21 16:04:01 +03:00
parent 79388d0dbf
commit bcb0b499f4
5 changed files with 24 additions and 8 deletions
@@ -30,6 +30,8 @@ import org.jetbrains.kotlin.renderer.DescriptorRenderer
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import com.intellij.psi.PsiDocumentManager
import org.jetbrains.kotlin.di.InjectorForTests
import org.jetbrains.kotlin.test.JetTestUtils
public abstract class AbstractAddImportTest : AbstractImportsTest() {
override fun doTest(file: JetFile) {
@@ -45,7 +47,7 @@ public abstract class AbstractAddImportTest : AbstractImportsTest() {
val importDirective = JetPsiFactory(getProject()).createImportDirective(descriptorName)
val moduleDescriptor = file.getResolutionFacade().findModuleDescriptor(file)
val scope = JetModuleUtil.getSubpackagesOfRootScope(moduleDescriptor)
val descriptors = QualifiedExpressionResolver()
val descriptors = InjectorForTests(getProject(), moduleDescriptor).getQualifiedExpressionResolver()
.processImportReference(importDirective, scope, scope, BindingTraceContext(), LookupMode.EVERYTHING)
.getAllDescriptors()
.filter(filter)
@@ -23,6 +23,7 @@ import com.intellij.psi.PsiElement
import com.intellij.psi.util.PsiTreeUtil
import com.intellij.testFramework.fixtures.JavaCodeInsightTestFixture
import org.jetbrains.kotlin.checkers.AbstractJetPsiCheckerTest
import org.jetbrains.kotlin.di.InjectorForTests
import org.jetbrains.kotlin.idea.caches.resolve.analyzeFully
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
import org.jetbrains.kotlin.idea.completion.test.AbstractJvmBasicCompletionTest
@@ -57,7 +58,7 @@ public abstract class AbstractCodeFragmentHighlightingTest : AbstractJetPsiCheck
val importDirective = JetPsiFactory(getProject()).createImportDirective(it)
val moduleDescriptor = file.getResolutionFacade().findModuleDescriptor(file)
val scope = JetModuleUtil.getSubpackagesOfRootScope(moduleDescriptor)
val descriptor = QualifiedExpressionResolver()
val descriptor = InjectorForTests(getProject(), moduleDescriptor).getQualifiedExpressionResolver()
.processImportReference(importDirective, scope, scope, BindingTraceContext(), LookupMode.EVERYTHING)
.getAllDescriptors()
.singleOrNull() ?: error("Could not resolve descriptor to import: $it")